Runs

Send a message to a run

Changed on

Sends a person's message to an agent-mode run. To a run that is running or paused, the run's model reads it before its next step, as a turn from the person running the task, and the run's stream carries it as a user_message event, its body the message, once the run's phone has it. A message never resumes a paused run: answer the pause with :resume. A run holds at most 20 unread messages, and a message past that is refused, or one that arrives as the run finishes, which may then never be read or shown. To a run that ended (completed, failed or cancelled) while it still holds its phone (keep_alive_expires_at is in the future), the message starts the run's next turn on the same phone, and the run goes back to queued. Returns the run as it is. A code run, a queued or scheduled run, a run whose hold has ended, or a run whose phone cannot take messages yet is 409; an empty message, or one over 64 KiB, is 400.

post/runs/{run_id}:sendMessage

Request

Path parameters

run_idstring uuid required

The run's id.

Request body

messagestring required

What the person says to the run's model. Required, at most 64 KiB.

modelstring

The next turn's model, one of GET /models, for a message to a completed or failed run (default the run's). Not taken while the run works.

Response

Accepted

agent_idstring uuid

The agent the run is of; absent on an ad hoc run.

agent_namestring

The agent's name, on the run lists; absent on an ad hoc run.

cancelled_atstring date-time

Timestamp when the run was cancelled.

completed_atstring date-time

Timestamp when the run finished.

created_atstring date-time required

Timestamp when the run record was created.

errorstring

Why the run failed.

idstring uuid required

Run identifier.

keep_alive_expires_atstring date-time

Until when an ended agent-mode run holds its phone: :sendMessage before then continues the run there; after it, start a new run.

max_cost_microdollarsinteger

Most the run's model steps may cost, in microdollars.

max_stepsinteger

Most model steps the run may take.

mode'agent' | 'code' required

agent: an agent works the task through a model. code: the agent's script runs.

modelstring

The model the run's steps call, one of GET /models.

network'restricted' | 'internet'

The network the run's code can reach: restricted reaches the phone only; internet adds the public internet.

outputunknown
output_schemaunknown
pause_timeout_secondsinteger

Longest the run waits paused for an answer, in seconds.

phone_idstring

Phone executing the run.

recording_enabledboolean

An ad hoc run's own recording choice; absent takes the default (off), and a saved agent's run takes the agent's.

result_textstring

A short account of the run's result.

revision_idstring uuid

The agent's revision the run was pinned to when it was made.

run_metadataobject

Arbitrary metadata attached to the run.

schedule_idstring uuid

The schedule that started the run, if one did.

session_idstring uuid

Session associated with this run.

start_atstring date-time

When the run was booked to start; absent for a run started on request.

start_timeout_secondsinteger

How long the queued run may wait for a phone before auto-cancel.

started_atstring date-time

Timestamp when the run began executing.

status'scheduled' | 'queued' | 'running' | 'paused' | 'completed' | 'failed' | 'cancelled' required

Current lifecycle state of the run. paused: the run waits on a person; see input_request.

stream_urlstring

The run's live event stream (Server-Sent Events), with a short-lived read-only token. Server clients can send the API key header instead.

successboolean

Whether the run completed without error.

taskstring

An agent-mode run's task: the ad hoc task, or the agent's instructions.

telemetry_enabledboolean

An ad hoc run's own telemetry choice; absent takes the default (on), and a saved agent's run takes the agent's.

timeout_secondsinteger

Longest the run may take, in seconds.

trace_expired_atstring date-time

When the trace recording was deleted.

trigger'manual' | 'scheduled' | 'api' required

Trigger identifies how the run was initiated.

turninteger

An agent-mode run's current turn, from 1.

updated_atstring date-time required

Timestamp of the last update to the run record.

user_idstring uuid required

User who initiated the run.

variablesobject

The run's inputs. Deleted once the finished run is older than the plan's run data retention window (30 days by default).

video_urlstring

URL for the run recording video.

Changes