Skip to content

Create a new session

POST
/v1/sessions

Request to create a session

object
agent_id

ID of the agent to work in this session (optional, format: agent_{32-hex}).

string | null
Example
agent_01933b5a00007000800000000000001
agent_identity_id

Optional resident agent identity used for unattended/background execution.

string | null
Example
identity_01933b5a00007000800000000000001
capabilities

Session-level capabilities (additive to agent capabilities). Applied after agent capabilities when building RuntimeAgent.

Array<object>

Per-agent capability configuration

Associates a capability with an agent, including optional per-agent configuration. The config field allows the same capability to behave differently per-agent.

object
config

Per-agent configuration for this capability (capability-specific)

ref
required

Reference to the capability ID

string
harness_id

ID of the harness for this session (format: harness_{32-hex}). If omitted, the org base harness is used. New orgs default that to Base.

string | null
Example
harness_01933b5a00007000800000000000001
hints

Session-level client hints — arbitrary key-value pairs that tell the server what the client can handle. These are defaults for every turn; per-message controls.hints override these key-by-key (shallow merge).

Examples: {"setup_connection": true, "rich_media": true}

object | null
initial_files

Session-level initial files (additive to agent initial_files). Files with matching paths override agent/harness files; new paths are appended.

Array<object>

Starter file copied into a new session from an agent or harness.

object
content
required

File content: plain text or base64-encoded binary.

string
encoding

Content encoding: text or base64.

string
is_readonly

Prevent session-side edits or deletes when true.

boolean
path
required

Absolute path within the session workspace. /workspace prefix is accepted.

string
locale

Session locale (BCP 47, e.g. uk-UA).

string | null
Example
uk-UA
model_id

The ID of the LLM model to use for this session. Overrides the agent’s default model if specified.

string | null
Example
model_01933b5a00007000800000000000001
system_prompt

Optional session-level system prompt override. Prepended to the agent’s system prompt when building RuntimeAgent.

string | null
tags

Tags for organizing and filtering sessions.

Array<string>
Example
[
"debugging",
"urgent"
]
title

Human-readable title for the session.

string | null
Example
Debug login issue
tools

Client-side tools for this session (additive to agent tools). These tools are sent to the LLM but executed by the client.

Array
One of:

Built-in tool - executed by the worker via ToolRegistry

object
category

Category for tool_search namespace grouping (from parent capability)

string | null
deferrable

Whether this tool’s schema can be deferred via tool_search

string
Allowed values: never automatic always
description
required

Tool description for LLM

string
display_name

Human-readable display name for UI rendering (e.g., “Get Current Time” for get_current_time)

string | null
hints

Semantic hints describing the tool’s behavioral properties

object
destructive

Tool may irreversibly destroy or delete data. Subset of non-readonly — a tool can be non-readonly (writes) without being destructive (e.g., create/update operations).

boolean | null
idempotent

Calling the tool repeatedly with the same arguments produces the same effect. Safe to retry on transient failures.

boolean | null
long_running

Tool may take significant time to complete (> ~5s typical). Useful for clients to show progress indicators and set timeouts.

boolean | null
open_world

Tool interacts with external entities beyond the local system (network calls, third-party APIs, cloud services).

boolean | null
readonly

Tool does not modify any state (read-only queries, lookups). When true: safe to call speculatively, result can be cached.

boolean | null
requires_secrets

Tool requires API keys, credentials, or other secrets to function. Useful for UI to show connection prompts and for LLMs to anticipate authentication failures.

boolean | null
name
required

Tool name (used by LLM and for registry lookup)

string
parameters
required

JSON schema for tool parameters

policy

Tool policy (auto or requires_approval)

string
Allowed values: auto requires_approval client_side
type
required
string
Allowed values: builtin

Session created successfully

Session - instance of agentic loop execution. A session represents a single conversation with an agent.

object
active_schedule_count

Number of active (enabled) schedules for this session. Populated when the session is fetched for API responses.

integer | null format: int32
agent_id

ID of the agent working in this session (format: agent_{32-hex}). Optional.

string | null
Example
agent_01933b5a00007000800000000000001
agent_identity_id

Optional resident agent identity for unattended/background execution.

string | null
Example
identity_01933b5a00007000800000000000001
blueprint_config

Validated config passed by host at blueprint spawn time.

blueprint_id

Blueprint ID. When set, reason_activity and act_activity build RuntimeAgent from the blueprint definition instead of from harness_id/agent_id.

string | null
capabilities

Session-level capabilities (additive to agent capabilities). Applied after agent capabilities when building RuntimeAgent.

Array<object>

Per-agent capability configuration

Associates a capability with an agent, including optional per-agent configuration. The config field allows the same capability to behave differently per-agent.

object
config

Per-agent configuration for this capability (capability-specific)

ref
required

Reference to the capability ID

string
created_at
required

Timestamp when the session was created.

string format: date-time
features

Aggregated UI features from all active capabilities (harness + agent + session). Computed at read time from the capability registry. Known features: “file_system”, “schedules”, “secrets”, “key_value”, “sql_database”, “leased_resources”.

Array<string>
finished_at

Timestamp when the session finished (completed or failed).

string | null format: date-time
harness_id
required

ID of the harness for this session (format: harness_{32-hex}).

string
Example
harness_01933b5a00007000800000000000001
hints

Session-level client hints — arbitrary key-value pairs declared by the client at session creation time. These are defaults for every turn; per-message controls.hints override these key-by-key (shallow merge).

Examples: {"setup_connection": true, "rich_media": true}

object | null
id
required

Unique identifier for the session (format: session_{32-hex}).

string
Example
session_01933b5a00007000800000000000001
initial_files

Session-level initial files (additive to agent initial_files). Files with matching paths override agent/harness files; new paths are appended.

Array<object>

Starter file copied into a new session from an agent or harness.

object
content
required

File content: plain text or base64-encoded binary.

string
encoding

Content encoding: text or base64.

string
is_readonly

Prevent session-side edits or deletes when true.

boolean
path
required

Absolute path within the session workspace. /workspace prefix is accepted.

string
is_pinned

Whether this session is pinned by the current user. Only populated when the request has an authenticated user context.

boolean | null
locale

Locale for localized agent behavior and formatting (BCP 47, e.g. uk-UA).

string | null
model_id

LLM model ID to use for this session (format: model_{32-hex}). Overrides the agent’s default model if set.

string | null
Example
model_01933b5a00007000800000000000001
organization_id
required

Organization this session belongs to (format: org_{32-hex}).

string
Example
org_00000000000000000000000000000001
output_preview

Preview text from the last assistant response (truncated).

string | null
parent_session_id

Parent session that spawned this subagent. NULL for top-level sessions.

string | null
preview

Preview text from the first user message (truncated).

string | null
started_at

Timestamp when the session started executing.

string | null format: date-time
status
required

Current execution status of the session.

string
Allowed values: started active idle waitingfortoolresults
subagent_name

Human-readable subagent name (“Test Runner”), unique per parent.

string | null
subagent_status
One of:
null
subagent_task

Original task description given to this subagent.

string | null
system_prompt

Session-level system prompt override. Prepended to the agent’s system prompt when building RuntimeAgent.

string | null
tags

Tags for organizing and filtering sessions.

Array<string>
title

Human-readable title for the session.

string | null
tools

Client-side tools for this session (additive to agent tools).

Array
One of:

Built-in tool - executed by the worker via ToolRegistry

object
category

Category for tool_search namespace grouping (from parent capability)

string | null
deferrable

Whether this tool’s schema can be deferred via tool_search

string
Allowed values: never automatic always
description
required

Tool description for LLM

string
display_name

Human-readable display name for UI rendering (e.g., “Get Current Time” for get_current_time)

string | null
hints

Semantic hints describing the tool’s behavioral properties

object
destructive

Tool may irreversibly destroy or delete data. Subset of non-readonly — a tool can be non-readonly (writes) without being destructive (e.g., create/update operations).

boolean | null
idempotent

Calling the tool repeatedly with the same arguments produces the same effect. Safe to retry on transient failures.

boolean | null
long_running

Tool may take significant time to complete (> ~5s typical). Useful for clients to show progress indicators and set timeouts.

boolean | null
open_world

Tool interacts with external entities beyond the local system (network calls, third-party APIs, cloud services).

boolean | null
readonly

Tool does not modify any state (read-only queries, lookups). When true: safe to call speculatively, result can be cached.

boolean | null
requires_secrets

Tool requires API keys, credentials, or other secrets to function. Useful for UI to show connection prompts and for LLMs to anticipate authentication failures.

boolean | null
name
required

Tool name (used by LLM and for registry lookup)

string
parameters
required

JSON schema for tool parameters

policy

Tool policy (auto or requires_approval)

string
Allowed values: auto requires_approval client_side
type
required
string
Allowed values: builtin
updated_at
required

Timestamp when the session was last updated.

string format: date-time
usage
One of:
null

Harness, Agent, or Model not found

Internal server error