Create Agent
post /v1/agents
Create Agent
Header Parameters
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 22 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07"
-
-
Body Parameters
-
model: BetaManagedAgentsModel or BetaManagedAgentsModelConfigParamsModel identifier. Accepts the model string, e.g.
claude-opus-4-6, or amodel_configobject for additional configuration control-
BetaManagedAgentsModel = "claude-opus-4-7" or "claude-opus-4-6" or "claude-sonnet-4-6" or 6 more or stringThe model that will power your agent.
See models for additional details and options.
-
"claude-opus-4-7" or "claude-opus-4-6" or "claude-sonnet-4-6" or 6 moreThe model that will power your agent.
See models for additional details and options.
-
"claude-opus-4-7"Frontier intelligence for long-running agents and coding
-
"claude-opus-4-6"Most intelligent model for building agents and coding
-
"claude-sonnet-4-6"Best combination of speed and intelligence
-
"claude-haiku-4-5"Fastest model with near-frontier intelligence
-
"claude-haiku-4-5-20251001"Fastest model with near-frontier intelligence
-
"claude-opus-4-5"Premium model combining maximum intelligence with practical performance
-
"claude-opus-4-5-20251101"Premium model combining maximum intelligence with practical performance
-
"claude-sonnet-4-5"High-performance model for agents and coding
-
"claude-sonnet-4-5-20250929"High-performance model for agents and coding
-
-
string
-
-
BetaManagedAgentsModelConfigParams object { id, speed }An object that defines additional configuration control over model use
-
id: BetaManagedAgentsModelThe model that will power your agent.
See models for additional details and options.
-
speed: optional "standard" or "fast"Inference speed mode.
fastprovides significantly faster output token generation at premium pricing. Not all models supportfast; invalid combinations are rejected at create time.-
"standard" -
"fast"
-
-
-
-
name: stringHuman-readable name for the agent. 1-256 characters.
-
description: optional stringDescription of what the agent does. Up to 2048 characters.
-
mcp_servers: optional array of BetaManagedAgentsURLMCPServerParamsMCP servers this agent connects to. Maximum 20. Names must be unique within the array.
-
name: stringUnique name for this server, referenced by mcp_toolset configurations. 1-255 characters.
-
type: "url""url"
-
url: stringEndpoint URL for the MCP server.
-
-
metadata: optional map[string]Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars.
-
multiagent: optional BetaManagedAgentsMultiagentParamsA coordinator topology: the session's primary thread orchestrates work by spawning session threads, each running an agent drawn from the
agentsroster.-
agents: array of BetaManagedAgentsMultiagentRosterEntryParamsAgents 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 resolvingselfand string forms); at most oneself. Referenced agents must exist, must not be archived, and must not themselves havemultiagentset (depth limit 1).-
string -
BetaManagedAgentsAgentParams object { id, type, version }Specification for an Agent. Provide a specific
versionor use the short-formagent="agent_id"for the most recent version-
id: stringThe
agentID. -
type: "agent""agent"
-
version: optional numberThe specific
agentversion to use. Omit to use the latest version. Must be at least 1 if specified.
-
-
BetaManagedAgentsMultiagentSelfParams object { type }Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference.
-
type: "self""self"
-
-
-
type: "coordinator""coordinator"
-
-
skills: optional array of BetaManagedAgentsSkillParamsSkills available to the agent. Maximum 20.
-
BetaManagedAgentsAnthropicSkillParams object { skill_id, type, version }An Anthropic-managed skill.
-
skill_id: stringIdentifier of the Anthropic skill (e.g., "xlsx").
-
type: "anthropic""anthropic"
-
version: optional stringVersion to pin. Defaults to latest if omitted.
-
-
BetaManagedAgentsCustomSkillParams object { skill_id, type, version }A user-created custom skill.
-
skill_id: stringTagged ID of the custom skill (e.g., "skill_01XJ5...").
-
type: "custom""custom"
-
version: optional stringVersion to pin. Defaults to latest if omitted.
-
-
-
system: optional stringSystem prompt for the agent. Up to 100,000 characters.
-
tools: optional array of BetaManagedAgentsAgentToolset20260401Params or BetaManagedAgentsMCPToolsetParams or BetaManagedAgentsCustomToolParamsTool configurations available to the agent. Maximum of 128 tools across all toolsets allowed.
-
BetaManagedAgentsAgentToolset20260401Params object { type, configs, default_config }Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent.
-
type: "agent_toolset_20260401""agent_toolset_20260401"
-
configs: optional array of BetaManagedAgentsAgentToolConfigParamsPer-tool configuration overrides.
-
name: "bash" or "edit" or "read" or 5 moreBuilt-in agent tool identifier.
-
"bash" -
"edit" -
"read" -
"write" -
"glob" -
"grep" -
"web_fetch" -
"web_search"
-
-
enabled: optional booleanWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy object { type }Tool calls are automatically approved without user confirmation.
-
type: "always_allow""always_allow"
-
-
BetaManagedAgentsAlwaysAskPolicy object { type }Tool calls require user confirmation before execution.
-
type: "always_ask""always_ask"
-
-
-
-
default_config: optional BetaManagedAgentsAgentToolsetDefaultConfigParamsDefault configuration for all tools in a toolset.
-
enabled: optional booleanWhether tools are enabled and available to Claude by default. Defaults to true if not specified.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy object { type }Tool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy object { type }Tool calls require user confirmation before execution.
-
-
-
-
BetaManagedAgentsMCPToolsetParams object { mcp_server_name, type, configs, default_config }Configuration for tools from an MCP server defined in
mcp_servers.-
mcp_server_name: stringName of the MCP server. Must match a server name from the mcp_servers array. 1-255 characters.
-
type: "mcp_toolset""mcp_toolset"
-
configs: optional array of BetaManagedAgentsMCPToolConfigParamsPer-tool configuration overrides.
-
name: stringName of the MCP tool to configure. 1-128 characters.
-
enabled: optional booleanWhether this tool is enabled. Overrides the
default_configsetting. -
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy object { type }Tool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy object { type }Tool calls require user confirmation before execution.
-
-
-
default_config: optional BetaManagedAgentsMCPToolsetDefaultConfigParamsDefault configuration for all tools from an MCP server.
-
enabled: optional booleanWhether tools are enabled by default. Defaults to true if not specified.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy object { type }Tool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy object { type }Tool calls require user confirmation before execution.
-
-
-
-
BetaManagedAgentsCustomToolParams object { description, input_schema, name, type }A custom tool that is executed by the API client rather than the agent. When the agent calls this tool, an
agent.custom_tool_useevent is emitted and the session goes idle, waiting for the client to provide the result via auser.custom_tool_resultevent.-
description: stringDescription of what the tool does, shown to the agent to help it decide when to use the tool. 1-1024 characters.
-
input_schema: BetaManagedAgentsCustomToolInputSchemaJSON Schema for custom tool input parameters.
-
properties: optional map[unknown]JSON Schema properties defining the tool's input parameters.
-
required: optional array of stringList of required property names.
-
type: optional "object"Must be 'object' for tool input schemas.
"object"
-
-
name: stringUnique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens.
-
type: "custom""custom"
-
-
Returns
-
BetaManagedAgentsAgent object { id, archived_at, created_at, 12 more }A Managed Agents
agent.-
id: string -
archived_at: stringA timestamp in RFC 3339 format
-
created_at: stringA timestamp in RFC 3339 format
-
description: string -
mcp_servers: array of BetaManagedAgentsMCPServerURLDefinition-
name: string -
type: "url""url"
-
url: string
-
-
metadata: map[string] -
model: BetaManagedAgentsModelConfigModel identifier and configuration.
-
id: BetaManagedAgentsModelThe model that will power your agent.
See models for additional details and options.
-
"claude-opus-4-7" or "claude-opus-4-6" or "claude-sonnet-4-6" or 6 moreThe model that will power your agent.
See models for additional details and options.
-
"claude-opus-4-7"Frontier intelligence for long-running agents and coding
-
"claude-opus-4-6"Most intelligent model for building agents and coding
-
"claude-sonnet-4-6"Best combination of speed and intelligence
-
"claude-haiku-4-5"Fastest model with near-frontier intelligence
-
"claude-haiku-4-5-20251001"Fastest model with near-frontier intelligence
-
"claude-opus-4-5"Premium model combining maximum intelligence with practical performance
-
"claude-opus-4-5-20251101"Premium model combining maximum intelligence with practical performance
-
"claude-sonnet-4-5"High-performance model for agents and coding
-
"claude-sonnet-4-5-20250929"High-performance model for agents and coding
-
-
string
-
-
speed: optional "standard" or "fast"Inference speed mode.
fastprovides significantly faster output token generation at premium pricing. Not all models supportfast; invalid combinations are rejected at create time.-
"standard" -
"fast"
-
-
-
multiagent: BetaManagedAgentsMultiagentResolved coordinator topology with a concrete agent roster.
-
agents: array of BetaManagedAgentsAgentReferenceAgents the coordinator may spawn as session threads, each resolved to a specific version.
-
id: string -
type: "agent""agent"
-
version: number
-
-
type: "coordinator""coordinator"
-
-
name: string -
skills: array of BetaManagedAgentsAnthropicSkill or BetaManagedAgentsCustomSkill-
BetaManagedAgentsAnthropicSkill object { skill_id, type, version }A resolved Anthropic-managed skill.
-
skill_id: string -
type: "anthropic""anthropic"
-
version: string
-
-
BetaManagedAgentsCustomSkill object { skill_id, type, version }A resolved user-created custom skill.
-
skill_id: string -
type: "custom""custom"
-
version: string
-
-
-
system: string -
tools: array of BetaManagedAgentsAgentToolset20260401 or BetaManagedAgentsMCPToolset or BetaManagedAgentsCustomTool-
BetaManagedAgentsAgentToolset20260401 object { configs, default_config, type }-
configs: array of BetaManagedAgentsAgentToolConfig-
enabled: boolean -
name: "bash" or "edit" or "read" or 5 moreBuilt-in agent tool identifier.
-
"bash" -
"edit" -
"read" -
"write" -
"glob" -
"grep" -
"web_fetch" -
"web_search"
-
-
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy object { type }Tool calls are automatically approved without user confirmation.
-
type: "always_allow""always_allow"
-
-
BetaManagedAgentsAlwaysAskPolicy object { type }Tool calls require user confirmation before execution.
-
type: "always_ask""always_ask"
-
-
-
-
default_config: BetaManagedAgentsAgentToolsetDefaultConfigResolved default configuration for agent tools.
-
enabled: boolean -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy object { type }Tool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy object { type }Tool calls require user confirmation before execution.
-
-
-
type: "agent_toolset_20260401""agent_toolset_20260401"
-
-
BetaManagedAgentsMCPToolset object { configs, default_config, mcp_server_name, type }-
configs: array of BetaManagedAgentsMCPToolConfig-
enabled: boolean -
name: string -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy object { type }Tool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy object { type }Tool calls require user confirmation before execution.
-
-
-
default_config: BetaManagedAgentsMCPToolsetDefaultConfigResolved default configuration for all tools from an MCP server.
-
enabled: boolean -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy object { type }Tool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy object { type }Tool calls require user confirmation before execution.
-
-
-
mcp_server_name: string -
type: "mcp_toolset""mcp_toolset"
-
-
BetaManagedAgentsCustomTool object { description, input_schema, name, type }A custom tool as returned in API responses.
-
description: string -
input_schema: BetaManagedAgentsCustomToolInputSchemaJSON Schema for custom tool input parameters.
-
properties: optional map[unknown]JSON Schema properties defining the tool's input parameters.
-
required: optional array of stringList of required property names.
-
type: optional "object"Must be 'object' for tool input schemas.
"object"
-
-
name: string -
type: "custom""custom"
-
-
-
type: "agent""agent"
-
updated_at: stringA timestamp in RFC 3339 format
-
version: numberThe agent's current version. Starts at 1 and increments when the agent is modified.
-
Example
curl https://api.anthropic.com/v1/agents \
-H 'Content-Type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H 'anthropic-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" \
-d "{
\"model\": \"claude-sonnet-4-6\",
\"name\": \"My First Agent\",
\"description\": \"A general-purpose starter agent.\",
\"metadata\": {
\"foo\": \"bar\"
},
\"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\": \"agent_toolset_20260401\"
}
]
}"
Response
{
"id": "agent_011CZkYpogX7uDKUyvBTophP",
"archived_at": null,
"created_at": "2026-03-15T10:00:00Z",
"description": "A general-purpose starter agent.",
"mcp_servers": [
{
"name": "example-mcp",
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse"
}
],
"metadata": {
"foo": "bar"
},
"model": {
"id": "claude-sonnet-4-6",
"speed": "standard"
},
"multiagent": {
"agents": [
{
"id": "agent_011CZkYqphY8vELVzwCUpqiQ",
"type": "agent",
"version": 1
}
],
"type": "coordinator"
},
"name": "My First Agent",
"skills": [
{
"skill_id": "xlsx",
"type": "anthropic",
"version": "1"
},
{
"skill_id": "skill_011CZkZFNu9hAbo3jZPRgTlx",
"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"
}
}
],
"default_config": {
"enabled": true,
"permission_policy": {
"type": "always_ask"
}
},
"type": "agent_toolset_20260401"
}
],
"type": "agent",
"updated_at": "2026-03-15T10:00:00Z",
"version": 1
}