Managed Agents — Endpoint Reference

Snapshot 2026-08-04 16:17:00 UTC · version 1

published
C
Collider.club487 cards · 9.8/10 MDRSS

All endpoints require x-api-key and anthropic-version: 2023-06-01 headers. Managed Agents endpoints additionally require the anthropic-beta header. Use it to give an agent explicit responsibilities, steps and constraints.

MARKDOWN SNAPSHOT

Loading…

Direct .mdRaw + metadata0 commentsMDRSS 9.8/10
INDEXABLE MARKDOWN SNAPSHOT

Research document

Open canonical .md

Managed Agents — Endpoint Reference

All endpoints require x-api-key and anthropic-version: 2023-06-01 headers. Managed Agents endpoints additionally require the anthropic-beta header. Use it to give an agent explicit responsibilities, steps and constraints.

Editorial note: curated source snapshot published by Collider.club under the MIT License. Source attribution is preserved in the front matter.

Source snapshot

Managed Agents — Endpoint Reference

All endpoints require x-api-key and anthropic-version: 2023-06-01 headers. Managed Agents endpoints additionally require the anthropic-beta header.

Most users should define agents and environments as version-controlled YAML applied with the ant CLI — see shared/anthropic-cli.md. The endpoints below are the underlying API that the CLI and SDKs drive.

Beta Headers

anthropic-beta: managed-agents-2026-04-01

The SDK adds this header automatically for all client.beta.{agents,environments,sessions,vaults,memory_stores,deployments,deployment_runs}.* calls. Skills endpoints use skills-2025-10-02; Files endpoints use files-api-2025-04-14.


SDK Method Reference

All resources are under the beta namespace. Python and TypeScript share identical method names.

Resource Python / TypeScript (client.beta.*) Go (client.Beta.*)
Agents agents.create / retrieve / update / list / archive Agents.New / Get / Update / List / Archive
Agent Versions agents.versions.list Agents.Versions.List
Environments environments.create / retrieve / update / list / delete / archive Environments.New / Get / Update / List / Delete / Archive
Environment Work (self-hosted) environments.work.poller / stats / stop See shared/managed-agents-self-hosted-sandboxes.md
Sessions sessions.create / retrieve / update / list / delete / archive Sessions.New / Get / Update / List / Delete / Archive
Session Events sessions.events.list / send / stream Sessions.Events.List / Send / StreamEvents
Session Threads sessions.threads.list / retrieve / archive; sessions.threads.events.list / stream Sessions.Threads.List / Get / Archive; Sessions.Threads.Events.List / StreamEvents
Session Resources sessions.resources.add / retrieve / update / list / delete Sessions.Resources.Add / Get / Update / List / Delete
Deployments deployments.create / pause / unpause / archive / run Not yet documented — WebFetch the SDK repo (shared/live-sources.md)
Deployment Runs deployment_runs.list / retrieve (TS: deploymentRuns.*) Not yet documented — WebFetch the SDK repo (shared/live-sources.md)
Vaults vaults.create / retrieve / update / list / delete / archive Vaults.New / Get / Update / List / Delete / Archive
Credentials vaults.credentials.create / retrieve / update / list / delete / archive / mcp_oauth_validate Vaults.Credentials.New / Get / Update / List / Delete / Archive / McpOauthValidate
Memory Stores memory_stores.create / retrieve / update / list / delete / archive MemoryStores.New / Get / Update / List / Delete / Archive
Memories memory_stores.memories.create / retrieve / update / list / delete MemoryStores.Memories.New / Get / Update / List / Delete
Memory Versions memory_stores.memory_versions.list / retrieve / redact MemoryStores.MemoryVersions.List / Get / Redact

Naming quirks to watch for:

  • Agents and Session Threads have no delete — only archive. Archive is permanent: the agent becomes read-only, new sessions cannot reference it, and there is no unarchive. Confirm with the user before archiving a production agent. Environments, Sessions, Vaults, Credentials, and Memory Stores have both delete and archive; Session Resources, Files, Skills, and Memories are delete-only; Memory Versions have neither — only redact.
  • Session resources use add (not create).
  • Go's event stream is StreamEvents (not Stream).
  • The self-hosted worker is not under client.beta.* — it's EnvironmentWorker from anthropic.lib.environments / @anthropic-ai/sdk/helpers/beta/environments; only environments.work.poller/stats/stop are client methods.

Agent shorthand: agent on session create accepts three forms — a bare string (agent="agent_abc123", latest version), a pinned reference {type: "agent", id, version}, or {type: "agent_with_overrides", id, version?, model?, system?, tools?, mcp_servers?, skills?} to override those fields for this session only (see shared/managed-agents-core.md → Override agent configuration for a session).

Model shorthand: model on agent create accepts either a bare string (model="claude-opus-5" — uses standard speed) or the full config object, which takes speed and effort alongside id: {id: "claude-opus-5", speed: "fast"}, {id: "claude-opus-5", effort: "high"}. effort accepts a level string (low/medium/high/xhigh/max) or {type: "<level>"}, and is agent-configuration only — an effort inside a per-session model override is ignored. See shared/managed-agents-core.md → Effort on the agent model. Note: speed: "fast" is supported on Claude Opus 5 and Opus 4.8 — on the Claude API only, which includes Managed Agents but not Amazon Bedrock, Google Cloud, or Microsoft Foundry. Opus 4.7 fast mode has been removed; speed: "fast" on Opus 4.7 returns an error.


Agents

Step one of every flow. Sessions require a pre-created agent — there is no inline agent config under managed-agents-2026-04-01.

Method Path Operation Description
GET /v1/agents ListAgents List agents
POST /v1/agents CreateAgent Create a saved agent configuration
GET /v1/agents/{agent_id} GetAgent Get agent details
POST /v1/agents/{agent_id} UpdateAgent Update agent configuration. version is optional: supply it (≥ 1) for optimistic concurrency — a mismatch returns 409 — or omit it for an unconditional last-write-wins update.
POST /v1/agents/{agent_id}/archive ArchiveAgent Archive an agent. Makes it read-only; existing sessions continue, new sessions cannot reference it. No unarchive — this is the terminal state.
GET /v1/agents/{agent_id}/versions ListAgentVersions List agent versions

Sessions

Method Path Operation Description
GET /v1/sessions ListSessions List sessions (paginated)
POST /v1/sessions CreateSession Create a new session
GET /v1/sessions/{session_id} GetSession Get session details
POST /v1/sessions/{session_id} UpdateSession Update session metadata/title, or agent.tools/agent.mcp_servers/vault_ids (session-local override; session must be idle). See shared/managed-agents-core.md → Updating the agent configuration mid-session.
DELETE /v1/sessions/{session_id} DeleteSession Delete a session
POST /v1/sessions/{session_id}/archive ArchiveSession Archive a session

Events

Method Path Operation Description
GET /v1/sessions/{session_id}/events ListEvents List events (polling, paginated)
POST /v1/sessions/{session_id}/events SendEvents Send events (user message, tool result)
GET /v1/sessions/{session_id}/events/stream StreamEvents Stream events via SSE. Optional event_deltas[]=agent.message / agent.thinking opts in to live-preview event_start/event_delta events — see shared/managed-agents-events.md § Live previews.

Session Threads

Per-subagent event streams in multiagent sessions. See shared/managed-agents-multiagent.md.

Method Path Operation Description
GET /v1/sessions/{session_id}/threads ListThreads List threads (paginated)
GET /v1/sessions/{session_id}/threads/{thread_id} GetThread Retrieve one thread (carries agent snapshot, status, parent_thread_id, stats, usage)
POST /v1/sessions/{session_id}/threads/{thread_id}/archive ArchiveThread Archive a thread
GET /v1/sessions/{session_id}/threads/{thread_id}/events ListThreadEvents List past events for one thread (paginated)
GET /v1/sessions/{session_id}/threads/{thread_id}/stream StreamThreadEvents Stream one thread via SSE (SDK: threads.events.stream)

Session Resources

Method Path Operation Description
GET /v1/sessions/{session_id}/resources ListResources List resources attached to session
POST /v1/sessions/{session_id}/resources AddResource Attach file or github_repository resource (SDK method: add, not create). memory_store resources attach at session-create time only.
GET /v1/sessions/{session_id}/resources/{resource_id} GetResource Get a single resource
POST /v1/sessions/{session_id}/resources/{resource_id} UpdateResource Update resource
DELETE /v1/sessions/{session_id}/resources/{resource_id} DeleteResource Remove resource from session

Environments

Method Path Operation Description
POST /v1/environments CreateEnvironment Create environment
GET /v1/environments ListEnvironments List environments
GET /v1/environments/{environment_id} GetEnvironment Get environment details
POST /v1/environments/{environment_id} UpdateEnvironment Update environment
DELETE /v1/environments/{environment_id} DeleteEnvironment Delete environment. Returns 204.
POST /v1/environments/{environment_id}/archive ArchiveEnvironment Archive environment. Makes it read-only; existing sessions continue, new sessions cannot reference it. No unarchive — this is the terminal state.
GET /v1/environments/{environment_id}/work/stats WorkQueueStats Self-hosted work-queue depth/pending/workers. x-api-key auth. See shared/managed-agents-self-hosted-sandboxes.md.
POST /v1/environments/{environment_id}/work/{work_id}/stop StopWork Self-hosted: stop a claimed work item. x-api-key auth.

For type: "self_hosted", config is the bare {"type": "self_hosted"}networking and packages do not apply.

Deployments

Scheduled deployments (depl_ IDs) run an agent on a recurring cron schedule — each firing creates a session. See shared/managed-agents-scheduled-deployments.md for the conceptual guide (cron/DST semantics, failure behavior, lifecycle).

Method Path Operation Description
POST /v1/deployments CreateDeployment Create a scheduled deployment
POST /v1/deployments/{deployment_id}/pause PauseDeployment Suppress scheduled triggers (reversible; manual runs still allowed)
POST /v1/deployments/{deployment_id}/unpause UnpauseDeployment Resume from the next occurrence (no backfill)
POST /v1/deployments/{deployment_id}/archive ArchiveDeployment Terminal — schedule stops, deployment becomes immutable
POST /v1/deployments/{deployment_id}/run RunDeployment Trigger a manual run immediately (trigger_context.type: "manual"); works while paused

Deployment Runs

Each trigger attempt (scheduled or manual) writes a deployment_run record (drun_ IDs) carrying either the created session_id or an error.type (environment_archived, agent_archived, vault_not_found, session_rate_limited, service_unavailable).

Method Path Operation Description
GET /v1/deployment_runs?deployment_id=... ListDeploymentRuns List runs for a deployment (paginated; filter failures with has_error=true)
GET /v1/deployment_runs/{deployment_run_id} GetDeploymentRun Retrieve a single run by ID (a deployment_run.* webhook event carries this as data.id)

Vaults

Vaults store credentials that Anthropic manages on your behalf — MCP credentials (OAuth with auto-refresh, or static bearer tokens) and environment_variable credentials substituted into outbound requests at egress. Attach to sessions via vault_ids. See managed-agents-tools.md §Vaults for the conceptual guide and credential shapes.

Method Path Operation Description
POST /v1/vaults CreateVault Create a vault
GET /v1/vaults ListVaults List vaults
GET /v1/vaults/{vault_id} GetVault Get vault details
POST /v1/vaults/{vault_id} UpdateVault Update vault
DELETE /v1/vaults/{vault_id} DeleteVault Delete vault
POST /v1/vaults/{vault_id}/archive ArchiveVault Archive vault

Credentials

Credentials are individual secrets stored inside a vault.

Method Path Operation Description
POST /v1/vaults/{vault_id}/credentials CreateCredential Create a credential
GET /v1/vaults/{vault_id}/credentials ListCredentials List credentials in vault
GET /v1/vaults/{vault_id}/credentials/{credential_id} GetCredential Get credential metadata
POST /v1/vaults/{vault_id}/credentials/{credential_id} UpdateCredential Update credential
DELETE /v1/vaults/{vault_id}/credentials/{credential_id} DeleteCredential Delete credential
POST /v1/vaults/{vault_id}/credentials/{credential_id}/archive ArchiveCredential Archive credential
POST /v1/vaults/{vault_id}/credentials/{credential_id}/mcp_oauth_validate McpOauthValidate Validate an MCP OAuth credential

Memory Stores

Workspace-scoped persistent memory that survives across sessions. Attach to a session via a {"type": "memory_store", "memory_store_id": ...} entry in resources[] (session-create time only). See shared/managed-agents-memory.md for the conceptual guide, the FUSE-mount agent interface, preconditions, and versioning.

Method Path Operation Description
POST /v1/memory_stores CreateMemoryStore Create a store (name, description, metadata)
GET /v1/memory_stores ListMemoryStores List stores (include_archived, created_at_{gte,lte})
GET /v1/memory_stores/{memory_store_id} GetMemoryStore Get store details
POST /v1/memory_stores/{memory_store_id} UpdateMemoryStore Update store
DELETE /v1/memory_stores/{memory_store_id} DeleteMemoryStore Delete store
POST /v1/memory_stores/{memory_store_id}/archive ArchiveMemoryStore Archive store. Makes it read-only; existing sessions continue, new sessions cannot reference it. No unarchive.

Memories

Individual text documents inside a store (≤ 100KB each). create creates at a path and returns 409 (memory_path_conflict_error, with conflicting_memory_id) if the path is occupied; update mutates by mem_... ID (rename and/or content). Only update accepts a precondition ({"type": "content_sha256", "content_sha256": ...}) — on mismatch returns 409 (memory_precondition_failed_error). List endpoints accept view: "basic"|"full" (controls whether content is populated; retrieve defaults to full).

Method Path Operation Description
GET /v1/memory_stores/{memory_store_id}/memories ListMemories Returns Memory | MemoryPrefix; filter by path_prefix, depth
POST /v1/memory_stores/{memory_store_id}/memories CreateMemory Create at path (SDK: memories.create); 409 memory_path_conflict_error if occupied
GET /v1/memory_stores/{memory_store_id}/memories/{memory_id} GetMemory Read one memory (defaults to view="full")
PATCH /v1/memory_stores/{memory_store_id}/memories/{memory_id} UpdateMemory Change content, path, or both by ID; optional precondition
DELETE /v1/memory_stores/{memory_store_id}/memories/{memory_id} DeleteMemory Delete (optional expected_content_sha256)

Memory Versions

Immutable per-mutation snapshots (memver_...) — the audit and rollback surface. operationcreated / modified / deleted.

Method Path Operation Description
GET /v1/memory_stores/{memory_store_id}/memory_versions ListMemoryVersions Newest-first; filter by memory_id, operation, session_id, api_key_id, created_at_{gte,lte}
GET /v1/memory_stores/{memory_store_id}/memory_versions/{version_id} GetMemoryVersion List fields + full content
POST /v1/memory_stores/{memory_store_id}/memory_versions/{version_id}/redact RedactMemoryVersion Clear content/content_sha256/content_size_bytes/path; preserve actor + timestamps

Files

Method Path Operation Description
POST /v1/files UploadFile Upload a file
GET /v1/files ListFiles List files
GET /v1/files/{file_id} GetFile Get file metadata (SDK method: retrieve_metadata)
GET /v1/files/{file_id}/content DownloadFile Download file content
DELETE /v1/files/{file_id} DeleteFile Delete a file

Skills

Method Path Operation Description
POST /v1/skills CreateSkill Create a skill
GET /v1/skills ListSkills List skills
GET /v1/skills/{skill_id} GetSkill Get skill details
DELETE /v1/skills/{skill_id} DeleteSkill Delete a skill
POST /v1/skills/{skill_id}/versions CreateVersion Create skill version
GET /v1/skills/{skill_id}/versions ListVersions List skill versions
GET /v1/skills/{skill_id}/versions/{version} GetVersion Get skill version
DELETE /v1/skills/{skill_id}/versions/{version} DeleteVersion Delete skill version

Request/Response Schema Quick Reference

CreateAgent Request Body

Always start here. model, system, tools, mcp_servers, skills are top-level fields on this object — they do NOT go on the session.

{
  "name": "string (required, 1-256 chars)",
  "model": "claude-opus-5 (required — bare string, or {id, speed?, effort?} object)",
  "description": "string (optional, up to 2048 chars)",
  "system": "string (optional, up to 100,000 chars)",
  "tools": [
    { "type": "agent_toolset_20260401" }
  ],
  "skills": [
    { "type": "anthropic", "skill_id": "xlsx" },
    { "type": "custom", "skill_id": "skill_abc123", "version": "1" }
  ],
  "mcp_servers": [
    {
      "type": "url",
      "name": "github",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  ],
  "multiagent": {
    "type": "coordinator",
    "agents": [
      "agent_abc123",
      { "type": "agent", "id": "agent_def456", "version": 4 },
      { "type": "self" }
    ]
  },
  "metadata": {
    "key": "value (max 16 pairs, keys ≤64 chars, values ≤512 chars)"
  }
}

Limits: tools max 128, skills max 20, mcp_servers max 20 (unique names). multiagent.agents 1–20 entries (string ID | {type:"agent",id,version?} | {type:"self"}) — see shared/managed-agents-multiagent.md.

CreateSession Request Body

{
  "agent": "agent_abc123 (required — string shorthand for latest version, or {type: \"agent\", id, version} object)",
  "environment_id": "env_abc123 (required)",
  "title": "string (optional)",
  "resources": [
    {
      "type": "github_repository",
      "url": "https://github.com/owner/repo (required)",
      "authorization_token": "ghp_... (required)",
      "mount_path": "/workspace/repo (optional — defaults to /workspace/<repo-name>)",
      "checkout": { "type": "branch", "name": "main" }
    }
  ],
  "initial_events": [
    { "type": "user.message", "content": [{ "type": "text", "text": "Review the auth module." }] }
  ],
  "vault_ids": ["vlt_abc123 (optional — vault credentials: MCP auth + environment variables)"],
  "metadata": {
    "key": "value"
  }
}

The agent field accepts a string ID, {type: "agent", id, version}, or {type: "agent_with_overrides", id, version?, ...} for session-local overrides of model/system/tools/mcp_servers/skills. Outside the overrides form, those fields live on the agent, not here. An effort inside a model override is ignored — set it on the agent.

initial_events (optional, max 50) sends events at creation and starts the agent loop in the same call. Only user.message and user.define_outcome are accepted — no system.message, and none of the tool-result kinds. Validation is all-or-nothing. See shared/managed-agents-core.md → Seeding a session with initial_events.

checkout accepts {type: "branch", name: "..."} or {type: "commit", sha: "..."}. Omit for the repo's default branch.

CreateEnvironment Request Body

{
  "name": "string (required)",
  "description": "string (optional)",
  "config": {
    "type": "cloud | self_hosted",
    "networking": {
      "type": "unrestricted | limited (union — see SDK types)"
    },
    "packages": { }
  },
  "metadata": { "key": "value" }
}

CreateDeployment Request Body

{
  "name": "Weekly compliance scan",
  "agent": "agent_abc123 (required — same shapes as CreateSession)",
  "environment_id": "env_abc123 (required)",
  "initial_events": [
    { "type": "user.message", "content": [{ "type": "text", "text": "Run the weekly compliance scan." }] }
  ],
  "schedule": {
    "type": "cron",
    "expression": "0 20 * * 5",
    "timezone": "America/New_York"
  }
}

Optional session config (resources, vault_ids, etc.) is supported the same way as on CreateSession. Response includes status, paused_reason, and schedule.upcoming_runs_at (next fire times). See shared/managed-agents-scheduled-deployments.md.

SendEvents Request Body

{
  "events": [
    {
      "type": "user.message",
      "content": [
        {
          "type": "text",
          "text": "Hello"
        }
      ]
    }
  ]
}

system.message events (append system-level context for this turn and later ones) use the same envelope with type: "system.message" — supported on Claude Opus 5, Claude Opus 4.8, Claude Sonnet 5, Claude Fable 5, and Claude Mythos 5, checked against the agent's primary model only; see shared/managed-agents-events.md § Adding system context mid-session.

Define Outcome Event

{
  "type": "user.define_outcome",
  "description": "Build a DCF model for Costco in .xlsx",
  "rubric": { "type": "file", "file_id": "file_01..." },
  "max_iterations": 5
}

rubric is required: {type: "text", content} or {type: "file", file_id}. max_iterations default 3, max 20. Echoed back with outcome_id + processed_at. See shared/managed-agents-outcomes.md.

Tool Result Event

{
  "type": "user.custom_tool_result",
  "custom_tool_use_id": "sevt_abc123",
  "content": [{ "type": "text", "text": "Result data" }],
  "is_error": false
}

Error Handling

Managed Agents endpoints use the standard Anthropic API error format. Errors are returned with an HTTP status code and a JSON body containing type, error, and request_id:

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "Description of what went wrong"
  },
  "request_id": "req_011CRv1W3XQ8XpFikNYG7RnE"
}

Include the request_id when reporting issues to Anthropic — it lets us trace the request end-to-end. The inner error.type is one of the following:

Status Error type Description
400 invalid_request_error The request was malformed or missing required parameters
401 authentication_error Invalid or missing API key
403 permission_error The API key doesn't have permission for this operation
404 not_found_error The requested resource doesn't exist
409 invalid_request_error The request conflicts with the resource's current state (e.g., sending to an archived session)
413 request_too_large The request body exceeds the maximum allowed size
429 rate_limit_error Too many requests — check rate limit headers for retry timing
500 api_error An internal server error occurred
529 overloaded_error The service is temporarily overloaded — retry with backoff

Note that 409 Conflict carries error.type: "invalid_request_error" (there is no separate conflict_error type); inspect both the HTTP status and the message to distinguish conflicts from other invalid requests.


Pagination

Most Managed Agents list endpoints use the page / next_page cursor scheme:

Field Where Notes
limit query Max items per page
page query Opaque cursor from a previous response — pass a next_page or prev_page value here
order query asc / desc on endpoints that support sorting. A cursor encodes the order of the request that produced it — reusing it with a different order returns 400. Other params (filters, limit) can change between paginated requests.
next_page response Cursor for the next page; null when there are no more results
prev_page response Cursor for the previous page on endpoints that support backward pagination — currently only GET /v1/sessions. null on the first page. On endpoints that don't support it, the field is absent (not null).

Every SDK exposes an auto-paginating iterator that follows next_page. In Python and TypeScript, iterate the list result directly; the other SDKs expose the iterator via a separate method (iterating the plain list result returns one page). SDK auto-pagination is forward-only — to go back a page, read prev_page from the response and pass it back as the page parameter yourself.

⚠️ Some endpoints use a different cursor scheme: Message Batches, Files, Models, and several Admin API endpoints take after_id/before_id and return has_more/first_id/last_id instead of page/next_page. Some page-scheme endpoints (e.g. GET /v1/skills) also return a has_more boolean alongside next_page. Check the endpoint's reference page for its exact pagination fields.


Rate Limits

Managed Agents endpoints have per-organization request-per-minute (RPM) limits, separate from your Messages API token limits. Model inference inside a session still draws from your organization's standard ITPM/OTPM limits.

Endpoint group Scope RPM Max concurrent
Create operations (Agents, Sessions, Vaults) organization 300
All other operations (Agents, Sessions, Vaults) organization 600
All operations (Environments) organization 60 5

Files and Skills endpoints use the standard tier-based rate limits.

When a limit is exceeded the API returns 429 with a rate_limit_error (see Error Handling for the response envelope) and a retry-after header indicating how many seconds to wait before retrying. The Anthropic SDK reads this header and retries automatically.


About Collider.club

This card belongs to the curated knowledge base of Collider.club — a closed business club for entrepreneurs, engineers, investors and domain experts building projects for international markets. Members work across DeFi, AI/ML, FinTech, Web3, banking, hardware and venture capital, and the club runs closed sessions on high-margin niches with anonymous speakers.

  • Club: https://collider.club
  • Collection: Collider.club curated card library (mdrss-card/v2)
  • Maintainer: Collider.club editorial team

License

MIT License — Copyright (c) 2026 Collider.club. Full text: LICENSE · https://opensource.org/licenses/MIT

MARKDOWN METRICS
2211words
33headings
6links
9code blocks
MDRSS ASSESSMENT
Scam / risk5/100low
Evidence100/100high confidence
Why MDRSS assigned this score
  • evidence comes from multiple domains
  • some evidence URLs look like primary-source hosts
Evidence (4)
concept:agent-design-and-orchestrationorg:collider-club

Discussion 0

Sign in to join the discussion.