status is ready, then start sending messages.
Request
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
customer_id | string | Yes | Your identifier for the customer this agent serves. One agent per customer is the recommended model |
name | string | Yes | Human-readable deployment name |
runtime | string | No | Agent harness to run. Currently hermes (default) |
model | string | No | Model in provider/model form, such as anthropic/claude-sonnet-4.5. No provider lock-in |
system_prompt | string | Yes | The agent’s system prompt |
sandbox | object | No | Sandbox configuration — see Sandbox |
mcp_servers | array | No | Your MCP servers exposing first-party tools — see MCP servers |
skills | array | No | Skill files that teach the agent your domain playbooks — see Skills |
secrets | object | No | Map of environment variable names to secret references (sec_...) for connectors |
features | object | No | Feature flags — see Features |
Sandbox
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Run the agent in an isolated container |
type | string | docker | Sandbox backend |
persistent_filesystem | boolean | true | Persist the agent’s workspace across sessions |
MCP servers
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique server name |
url | string | Yes | URL of your MCP server |
tools | string[] | No | Allowlist of tool names. Omit to expose all tools |
Skills
Each skill is loaded from one of three sources:source | Required fields | Description |
|---|---|---|
file | name, path | A SKILL.md file uploaded to the deployment |
inline | name, content | Skill markdown provided directly in the request |
url | name, url | A SKILL.md fetched from a public URL |
Features
| Field | Type | Default | Description |
|---|---|---|---|
memory | boolean | true | Observational memory across sessions |
dreaming | boolean | false | Idle-time self-learning between sessions |
automations | boolean | true | Scheduled and recurring agent runs |
steering | boolean | true | Human-in-the-loop approvals mid-run |
filesystem_webhooks | boolean | false | Webhook notifications on agent filesystem changes |
Response
Response fields
| Field | Type | Description |
|---|---|---|
deployment_id | string | Deployment ID to pass to other endpoints |
customer_id | string | The customer identifier you supplied |
runtime | string | Agent harness running in the deployment |
status | string | One of provisioning, ready, error |
model | string | Resolved model identifier |
thread_id | string | Default thread for Send Message |
filesystem.workspace_path | string | Path of the agent’s workspace inside the container |
filesystem.persistent | boolean | Whether the workspace persists across sessions |
events.transport | string | Always sse |
events.url | string | Stream Events endpoint for this deployment |
Errors
| Status | Error | When |
|---|---|---|
| 400 | validation_error | Invalid JSON request body |
| 401 | unauthorized | Missing or invalid API key |
| 402 | insufficient_credits | The account does not have enough credits |
| 403 | forbidden | API key lacks deployments:write scope |
| 422 | invalid_skill | A skill could not be fetched or parsed |
| 422 | invalid_secret_ref | A secret reference does not exist |

