Create agent

POST/v1/agents

Create a new agent configuration. Managed models include Claude, OpenAI, Gemini, DeepSeek, and Kimi entries. Team and Enterprise workspaces can also use connected external models from /agents/models.

How to call this endpoint

Every ACP API request uses bearer authentication. The examples here show the actual request path, auth header, and body shape that the platform expects.

Path, query, and header parameters

These parameters control which ACP object the endpoint acts on and how the request is processed.

Path parameters
None.
Query parameters
None.

Body schema

Content type: application/json · Required

FieldTypeRequiredDescription
idstringNoOptional custom agent ID.
namestringYesHuman-readable agent name.
descriptionstringNoShort summary of the agent's purpose.
modelstringYesModel identifier for the agent. Built-in managed models: - `claude-opus-4-7` - `claude-opus-4-6` - `claude-sonnet-4-5` - `claude-haiku-4-5` - `gpt-5.5-pro` - `gpt-5.5` - `gpt-5.4` - `gpt-5.4-mini` - `gpt-5.4-nano` - `gemini-3-flash` - `gemini-3-1-flash` - `gemini-3-1-pro` - `deepseek-v4-pro` - `deepseek-v4-flash` - `kimi-k2.6` Team and Enterprise workspaces can also use connected external models in the form `external:{providerType}:{urlEncodedModelId}`. Use `GET /agents/models` to discover the exact managed and external model IDs available in the current workspace.
instructionsstringNoSystem instructions that define how the agent should operate.
binaryClaude Code CLINoExecution binary used for the agent runtime.
reasoningEffortminimal | low | medium | highNoReasoning intensity used by the execution runtime.
enabledSkillsstring[]NoSkill IDs enabled for the agent.
deepResearchModelgemini-3-flash-preview | gemini-3-pro-previewNoOptional model override used by the deep research skill when enabled.
permissionSetobjectNoAgent permission policy. The shape is intentionally subject-typed so it can also be reused for human users and teams later.
permissionSet.version1No
permissionSet.subjectTypeagent | human_user | teamNo
permissionSet.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resourcesobjectNo
permissionSet.resources.agentsobjectNo
permissionSet.resources.agents.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.agents.rulesobject[]No
permissionSet.resources.agents.rules[].idstringNoOptional stable rule ID.
permissionSet.resources.agents.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
permissionSet.resources.agents.rules[].pathstringNoOptional file or directory path for path-scoped rules.
permissionSet.resources.agents.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.agents.rules[].notestringNoOptional human-readable note for the rule.
permissionSet.resources.skillsobjectNo
permissionSet.resources.skills.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.skills.rulesobject[]No
permissionSet.resources.skills.rules[].idstringNoOptional stable rule ID.
permissionSet.resources.skills.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
permissionSet.resources.skills.rules[].pathstringNoOptional file or directory path for path-scoped rules.
permissionSet.resources.skills.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.skills.rules[].notestringNoOptional human-readable note for the rule.
permissionSet.resources.serversobjectNo
permissionSet.resources.servers.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.servers.rulesobject[]No
permissionSet.resources.servers.rules[].idstringNoOptional stable rule ID.
permissionSet.resources.servers.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
permissionSet.resources.servers.rules[].pathstringNoOptional file or directory path for path-scoped rules.
permissionSet.resources.servers.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.servers.rules[].notestringNoOptional human-readable note for the rule.
permissionSet.resources.computersobjectNo
permissionSet.resources.computers.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.computers.rulesobject[]No
permissionSet.resources.computers.rules[].idstringNoOptional stable rule ID.
permissionSet.resources.computers.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
permissionSet.resources.computers.rules[].pathstringNoOptional file or directory path for path-scoped rules.
permissionSet.resources.computers.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.computers.rules[].notestringNoOptional human-readable note for the rule.
permissionSet.resources.filesobjectNo
permissionSet.resources.files.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.files.rulesobject[]No
permissionSet.resources.files.rules[].idstringNoOptional stable rule ID.
permissionSet.resources.files.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
permissionSet.resources.files.rules[].pathstringNoOptional file or directory path for path-scoped rules.
permissionSet.resources.files.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.files.rules[].notestringNoOptional human-readable note for the rule.
permissionSet.resources.directoriesobjectNo
permissionSet.resources.directories.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.directories.rulesobject[]No
permissionSet.resources.directories.rules[].idstringNoOptional stable rule ID.
permissionSet.resources.directories.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
permissionSet.resources.directories.rules[].pathstringNoOptional file or directory path for path-scoped rules.
permissionSet.resources.directories.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.directories.rules[].notestringNoOptional human-readable note for the rule.
permissionSet.resources.projectsobjectNo
permissionSet.resources.projects.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.projects.rulesobject[]No
permissionSet.resources.projects.rules[].idstringNoOptional stable rule ID.
permissionSet.resources.projects.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
permissionSet.resources.projects.rules[].pathstringNoOptional file or directory path for path-scoped rules.
permissionSet.resources.projects.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
permissionSet.resources.projects.rules[].notestringNoOptional human-readable note for the rule.
metadataobjectNoOptional agent metadata, including advanced workspace-specific configuration.
isDefaultbooleanNoInternal/default-agent flag. Most clients should omit this.
isSystembooleanNoInternal/system-agent flag. Most clients should omit this.

What the API returns

Each response code below includes the documented payload shape for the ACP API.

201Agent createdapplication/json
FieldTypeRequiredDescription
agentobjectNo
agent.idstringNoUnique identifier.
agent.userIdstringNoUser ID.
agent.projectIdstringNoProject ID.
agent.namestringNoHuman-readable name.
agent.descriptionstringNoHuman-readable description.
agent.modelstringNoModel identifier for the agent. Built-in managed models: - `claude-opus-4-7` - `claude-opus-4-6` - `claude-sonnet-4-5` - `claude-haiku-4-5` - `gpt-5.5-pro` - `gpt-5.5` - `gpt-5.4` - `gpt-5.4-mini` - `gpt-5.4-nano` - `gemini-3-flash` - `gemini-3-1-flash` - `gemini-3-1-pro` - `deepseek-v4-pro` - `deepseek-v4-flash` - `kimi-k2.6` Team and Enterprise workspaces can also use connected external models in the form `external:{providerType}:{urlEncodedModelId}`. Use `GET /agents/models` to discover the exact managed and external model IDs available in the current workspace.
agent.instructionsstringNo
agent.binaryClaude Code CLINoExecution binary used for the agent runtime.
agent.reasoningEffortminimal | low | medium | highNoReasoning intensity used by the execution runtime.
agent.enabledSkillsstring[]NoSkill IDs enabled for this agent, for example `deep_research` or custom installed skills.
agent.deepResearchModelgemini-3-flash-preview | gemini-3-pro-previewNoOptional model override used by the deep research skill when enabled.
agent.permissionSetobjectNoAgent permission policy. The shape is intentionally subject-typed so it can also be reused for human users and teams later.
agent.permissionSet.version1No
agent.permissionSet.subjectTypeagent | human_user | teamNo
agent.permissionSet.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resourcesobjectNo
agent.permissionSet.resources.agentsobjectNo
agent.permissionSet.resources.agents.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.agents.rulesobject[]No
agent.permissionSet.resources.agents.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.agents.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.agents.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.agents.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.agents.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.skillsobjectNo
agent.permissionSet.resources.skills.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.skills.rulesobject[]No
agent.permissionSet.resources.skills.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.skills.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.skills.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.skills.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.skills.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.serversobjectNo
agent.permissionSet.resources.servers.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.servers.rulesobject[]No
agent.permissionSet.resources.servers.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.servers.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.servers.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.servers.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.servers.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.computersobjectNo
agent.permissionSet.resources.computers.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.computers.rulesobject[]No
agent.permissionSet.resources.computers.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.computers.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.computers.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.computers.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.computers.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.filesobjectNo
agent.permissionSet.resources.files.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.files.rulesobject[]No
agent.permissionSet.resources.files.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.files.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.files.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.files.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.files.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.directoriesobjectNo
agent.permissionSet.resources.directories.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.directories.rulesobject[]No
agent.permissionSet.resources.directories.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.directories.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.directories.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.directories.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.directories.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.projectsobjectNo
agent.permissionSet.resources.projects.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.projects.rulesobject[]No
agent.permissionSet.resources.projects.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.projects.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.projects.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.projects.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.projects.rules[].notestringNoOptional human-readable note for the rule.
agent.isDefaultbooleanNo
agent.isSystembooleanNo
agent.isActivebooleanNo
agent.metadataobjectNoFree-form metadata object.
agent.createdAtstringNoISO 8601 timestamp.
agent.updatedAtstringNoISO 8601 timestamp.
agent.lastRunAtstringNo
Create agent
Loading...
Response 201
Loading...
See the ACP quickstart and SDK flow