Agent

Operations for running and managing cloud agents

List available agents

get

Retrieve a list of available agents (skills) that can be used to run tasks. Agents are discovered from environments or a specific repository.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Query parameters
repostringOptional

Optional repository specification to list agents from (format: "owner/repo"). If not provided, lists agents from all accessible environments.

refreshbooleanOptional

When true, clears the agent list cache before fetching. Use this to force a refresh of the available agents.

Default: false
sort_bystring · enumOptional

Sort order for the returned agents.

  • "name": Sort alphabetically by name (default)
  • "last_run": Sort by most recently used
Possible values:
include_malformed_skillsbooleanOptional

When true, includes skills whose SKILL.md file exists but is malformed. These variants will have a non-empty error field describing the parse failure. Defaults to false.

Default: false
Responses
chevron-right
200

List of available agents

application/json
get
/agent

Run an agent task

post

Spawn a cloud agent with a prompt and optional configuration. The agent will be queued for execution and assigned a unique run ID.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Body

Request body for creating a new agent run. Either prompt or skill (via skill field or config.skill_spec) is required.

promptstringOptional

The prompt/instruction for the agent to execute. Required unless a skill is specified via the skill field or config.skill_spec.

skillstringOptional

Skill specification to use as the base prompt for the agent. Supported formats:

  • "repo:skill_name" - Simple name in specific repo
  • "repo:skill_path" - Full path in specific repo
  • "org/repo:skill_name" - Simple name with org and repo
  • "org/repo:skill_path" - Full path with org and repo When provided, this takes precedence over config.skill_spec.
titlestringOptional

Custom title for the run (auto-generated if not provided)

teambooleanOptional

Whether to create a team-owned run. Defaults to true for users on a single team.

conversation_idstringOptional

Optional conversation ID to continue an existing conversation. If provided, the agent will continue from where the previous run left off.

parent_run_idstringOptional

Optional run ID of the parent that spawned this run. Used for orchestration hierarchies.

interactivebooleanOptional

Whether the run should be interactive. If not set, defaults to false.

Responses
chevron-right
200

Run created successfully

application/json
run_idstringRequired

Unique identifier for the created run

task_idstringRequiredDeprecated

Unique identifier for the task (same as run_id). Deprecated - use run_id instead.

statestring · enumRequired

Current state of the run:

  • QUEUED: Run is waiting to be picked up
  • PENDING: Run is being prepared
  • CLAIMED: Run has been claimed by a worker
  • INPROGRESS: Run is actively being executed
  • SUCCEEDED: Run completed successfully
  • FAILED: Run failed
  • BLOCKED: Run is blocked (e.g., awaiting user input or approval)
  • ERROR: Run encountered an error
  • CANCELLED: Run was cancelled by user
Possible values:
at_capacitybooleanOptional

Whether the system is at capacity when the run was created

post
/agent/run

List agent runs

get

Retrieve a paginated list of agent runs with optional filtering. Results default to sort_by=updated_at and sort_order=desc.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Query parameters
limitinteger · min: 1 · max: 500Optional

Maximum number of runs to return

Default: 20
cursorstringOptional

Pagination cursor from previous response

sort_bystring · enumOptional

Sort field for results.

  • updated_at: Sort by last update timestamp (default)
  • created_at: Sort by creation timestamp
  • title: Sort alphabetically by run title
  • agent: Sort alphabetically by skill. Runs without a skill are grouped last.
Default: updated_atPossible values:
sort_orderstring · enumOptional

Sort direction

Default: descPossible values:
namestringOptional

Filter by agent config name

model_idstringOptional

Filter by model ID

creatorstringOptional

Filter by creator UID (user or service account)

sourcestring · enumOptional

Source that created the run:

  • LINEAR: Created from Linear integration
  • API: Created via the Warp API
  • SLACK: Created from Slack integration
  • LOCAL: Created from local CLI/app
  • SCHEDULED_AGENT: Created by a scheduled agent
  • WEB_APP: Created from the Warp web app
  • GITHUB_ACTION: Created from a GitHub action
  • CLOUD_MODE: Created from a Cloud Mode
  • CLI: Created from the CLI
Possible values:
execution_locationstring · enumOptional

Where the run executed:

  • LOCAL: Executed in the user's local Oz environment
  • REMOTE: Executed by a remote/cloud worker
Possible values:
created_afterstring · date-timeOptional

Filter runs created after this timestamp (RFC3339 format)

created_beforestring · date-timeOptional

Filter runs created before this timestamp (RFC3339 format)

updated_afterstring · date-timeOptional

Filter runs updated after this timestamp (RFC3339 format)

environment_idstringOptional

Filter runs by environment ID

skillstringOptional

Filter runs by skill spec (e.g., "owner/repo:path/to/SKILL.md"). Alias for skill_spec.

skill_specstringOptional

Filter runs by skill spec (e.g., "owner/repo:path/to/SKILL.md")

schedule_idstringOptional

Filter runs by the scheduled agent ID that created them

artifact_typestring · enumOptional

Filter runs by artifact type

Possible values:
qstringOptional

Fuzzy search query across run title, prompt, and skill_spec

Responses
chevron-right
200

List of runs

application/json
get
/agent/runs

Run an agent task (preferred)

post

Alias for POST /agent/run. This is the preferred endpoint for creating new agent runs. Behavior is identical to POST /agent/run.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Body

Request body for creating a new agent run. Either prompt or skill (via skill field or config.skill_spec) is required.

promptstringOptional

The prompt/instruction for the agent to execute. Required unless a skill is specified via the skill field or config.skill_spec.

skillstringOptional

Skill specification to use as the base prompt for the agent. Supported formats:

  • "repo:skill_name" - Simple name in specific repo
  • "repo:skill_path" - Full path in specific repo
  • "org/repo:skill_name" - Simple name with org and repo
  • "org/repo:skill_path" - Full path with org and repo When provided, this takes precedence over config.skill_spec.
titlestringOptional

Custom title for the run (auto-generated if not provided)

teambooleanOptional

Whether to create a team-owned run. Defaults to true for users on a single team.

conversation_idstringOptional

Optional conversation ID to continue an existing conversation. If provided, the agent will continue from where the previous run left off.

parent_run_idstringOptional

Optional run ID of the parent that spawned this run. Used for orchestration hierarchies.

interactivebooleanOptional

Whether the run should be interactive. If not set, defaults to false.

Responses
chevron-right
200

Run created successfully

application/json
run_idstringRequired

Unique identifier for the created run

task_idstringRequiredDeprecated

Unique identifier for the task (same as run_id). Deprecated - use run_id instead.

statestring · enumRequired

Current state of the run:

  • QUEUED: Run is waiting to be picked up
  • PENDING: Run is being prepared
  • CLAIMED: Run has been claimed by a worker
  • INPROGRESS: Run is actively being executed
  • SUCCEEDED: Run completed successfully
  • FAILED: Run failed
  • BLOCKED: Run is blocked (e.g., awaiting user input or approval)
  • ERROR: Run encountered an error
  • CANCELLED: Run was cancelled by user
Possible values:
at_capacitybooleanOptional

Whether the system is at capacity when the run was created

post
/agent/runs

Get run details

get

Retrieve detailed information about a specific agent run, including the full prompt, session link, and resolved configuration.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
runIdstringRequired

The unique identifier of the run

Responses
chevron-right
200

Run details

application/json
run_idstringRequired

Unique identifier for the run

task_idstringRequiredDeprecated

Unique identifier for the task (typically matches run_id). Deprecated - use run_id instead.

titlestringRequired

Human-readable title for the run

statestring · enumRequired

Current state of the run:

  • QUEUED: Run is waiting to be picked up
  • PENDING: Run is being prepared
  • CLAIMED: Run has been claimed by a worker
  • INPROGRESS: Run is actively being executed
  • SUCCEEDED: Run completed successfully
  • FAILED: Run failed
  • BLOCKED: Run is blocked (e.g., awaiting user input or approval)
  • ERROR: Run encountered an error
  • CANCELLED: Run was cancelled by user
Possible values:
execution_locationstring · enumOptional

Where the run executed:

  • LOCAL: Executed in the user's local Oz environment
  • REMOTE: Executed by a remote/cloud worker
Possible values:
promptstringRequired

The prompt/instruction for the agent

created_atstring · date-timeRequired

Timestamp when the run was created (RFC3339)

updated_atstring · date-timeRequired

Timestamp when the run was last updated (RFC3339)

started_atstring · date-time · nullableOptional

Timestamp when the agent started working on the run (RFC3339)

sourcestring · enumOptional

Source that created the run:

  • LINEAR: Created from Linear integration
  • API: Created via the Warp API
  • SLACK: Created from Slack integration
  • LOCAL: Created from local CLI/app
  • SCHEDULED_AGENT: Created by a scheduled agent
  • WEB_APP: Created from the Warp web app
  • GITHUB_ACTION: Created from a GitHub action
  • CLOUD_MODE: Created from a Cloud Mode
  • CLI: Created from the CLI
Possible values:
session_idstringOptional

UUID of the shared session (if available)

session_linkstring · uriOptional

URL to view the agent session

conversation_idstringOptional

UUID of the conversation associated with the run

is_sandbox_runningbooleanOptional

Whether the sandbox environment is currently running

get
/agent/runs/{runId}

Cancel a run

post

Cancel an agent run that is currently queued or in progress. Once cancelled, the run will transition to a cancelled state.

Not all runs can be cancelled. Runs that are in a terminal state (SUCCEEDED, FAILED, ERROR, BLOCKED, CANCELLED) return 400. Runs in PENDING state return 409 (retry after a moment). Self-hosted, local, and GitHub Action runs return 422.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
runIdstringRequired

The unique identifier of the run to cancel

Responses
chevron-right
200

Run cancelled successfully

application/json
stringOptional

The ID of the cancelled run

post
/agent/runs/{runId}/cancel

Get run transcript

get

Retrieve the raw conversation transcript for an agent run. Returns a 302 redirect to a time-limited download URL for the transcript.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
runIdstringRequired

The unique identifier of the run

Responses
get
/agent/runs/{runId}/transcript

No content

Send a message to one or more runs

post

Send a point-to-point message to one or more agent runs. Each recipient gets an independent message row with its own delivery state. Requires the OrchestrationV2 feature flag.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Body
tostring[]Required

List of recipient run IDs

subjectstring · max: 1024Required

Message subject

bodystring · max: 131072Required

Message body (max 128KB)

sender_run_idstringRequired

The sender's run ID

Responses
chevron-right
200

Message sent successfully

application/json
message_idsstring[]Optional

One message ID per recipient, in the same order as the to array

post
/agent/messages

List inbox message headers

get
Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
runIdstringRequired
Query parameters
unreadbooleanOptional
sincestring · date-timeOptional
limitinteger · max: 100OptionalDefault: 50
Responses
chevron-right
200

List of message headers

application/json
message_idstringOptional
sender_run_idstringOptional
subjectstringOptional
sent_atstring · date-timeOptional
delivered_atstring · date-time · nullableOptional
read_atstring · date-time · nullableOptional
get
/agent/messages/{runId}
200

List of message headers

Read a message body

post

Returns the full message body and sets read_at.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
messageIdstringRequired
Responses
chevron-right
200

Full message content

application/json
message_idstringOptional
sender_run_idstringOptional
subjectstringOptional
bodystringOptional
sent_atstring · date-timeOptional
delivered_atstring · date-time · nullableOptional
read_atstring · date-time · nullableOptional
post
/agent/messages/{messageId}/read
200

Full message content

Mark a message as delivered

post

Sets delivered_at if not already set. Idempotent.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
messageIdstringRequired
Responses
post
/agent/messages/{messageId}/delivered
204

Delivered

No content

Poll for events

get

Batch poll for events across multiple watched runs. Returns events ordered by monotonic sequence number. Client advances the cursor (since parameter) on each poll.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Query parameters
run_idsstring[]Required
sinceinteger · int64OptionalDefault: 0
limitinteger · max: 500OptionalDefault: 100
Responses
chevron-right
200

List of events

application/json
event_typestringOptional
run_idstringOptional
ref_idstring · nullableOptional
execution_idstring · nullableOptional
occurred_atstring · date-timeOptional
sequenceinteger · int64Optional
get
/agent/events
200

List of events

Report a lifecycle event

post

Client reports a lifecycle event for a run. This is the canonical mechanism for all lifecycle events.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
runIdstringRequired
Body
event_typestring · enumRequiredPossible values:
execution_idstringOptional

Client-assigned execution ID for correlation

ref_idstringOptional

Event-type-specific reference (e.g., message ID for new_message events)

Responses
chevron-right
200

Event recorded

application/json
sequenceinteger · int64Optional
post
/agent/events/{runId}
200

Event recorded

List available models

get

Retrieve the list of LLM models available to the authenticated user for agent runs. The response includes which model is the default, as well as per-model metadata such as provider, cost, and whether the model is currently disabled (and why).

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Responses
chevron-right
200

List of available models

application/json
default_model_idstringRequired

The ID of the default model for agent runs

get
/agent/models

Get artifact details

get

Retrieve an artifact by its UUID. For screenshot artifacts, returns a time-limited signed download URL.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
artifactUidstringRequired

The unique identifier (UUID) of the artifact

Responses
chevron-right
200

Artifact details with download information

application/json

Response for artifact retrieval. Currently supports screenshot artifacts.

artifact_uidstringRequired

Unique identifier (UUID) for the artifact

artifact_typestringRequired

Type of the artifact (e.g., SCREENSHOT)

created_atstring · date-timeRequired

Timestamp when the artifact was created (RFC3339)

get
/agent/artifacts/{artifactUid}

Get session redirect

get

Check whether a shared session should redirect to a conversation transcript. Returns a conversation_id if the agent sandbox has finished and conversation data is available, or an empty object if no redirect is needed.

Authorizations
AuthorizationstringRequired

Authentication via a Warp API key.

Path parameters
sessionUuidstringRequired

The UUID of the shared session

Responses
chevron-right
200

Redirect information. Contains conversation_id if redirect is needed, otherwise an empty object.

application/json
conversation_idstringOptional

The conversation ID to redirect to (only present when redirect is needed)

get
/agent/sessions/{sessionUuid}/redirect

Last updated

Was this helpful?