GET /networking/egress-ranges
List Warp-hosted agent egress ranges
Return the canonical IP network ranges used by outbound requests from Warp-hosted agents.
- ()
API for creating, managing, and querying factory and cloud agent runs. These endpoints allow users to send work to factories, start standalone agents, list runs, and retrieve detailed run information.
Base URL: https://app.warp.dev/api/v1
Authentication: Bearer token (Warp API key). Obtain from account settings. Pass as Authorization: Bearer YOUR_API_KEY.
Full machine-readable spec: openapi.json
List Warp-hosted agent egress ranges
Return the canonical IP network ranges used by outbound requests from Warp-hosted agents.
List factories
List factories accessible to the authenticated principal, restricted to the request's active team when one is set. An optional team_uid query parameter overrides the active team and restricts results to a single team, and an optional search query parameter filters by a case-insensitive substring match on the factory name or alias.
Get a factory
Get a factory by its UID.
Create a factory task
Create a task in a factory, bound to an existing agent conversation. title and conversation_id are required. The stage defaults to TRIAGE. The conversation's most recent run must be owned by the factory's team, and a conversation may be bound to at most one live task across all factories.
List factory tasks
List the factory's tasks with optional filtering and search. List responses are lean by default; set full_list=true to include canonical ticket metadata and derived outputs for the returned page.
Dispatch a run to a factory
Dispatch a run to a factory, using prompt as the run's prompt and an optional title, ticket_ref, and ticket_url. Returns the created run; its factory task is created asynchronously and can be resolved afterwards with GET /factory/{uid}/task-by-run.
Get a factory task
Get a task with its derived outputs, newest-first.
Update a factory task
Partially update a task's title, description, and/or stage. Last write wins. Stage writes are unrestricted: any stage-to-stage transition is allowed, including moving backwards or to completion.
Delete a factory task
Soft-delete a task. The task disappears from list and get responses immediately, and its conversation may be bound to a new task. Deleting a task never deletes artifacts or the conversation.
Stop a factory task
Cancel the task's current top-level run and move the task to CANCELLED. Every non-terminal descendant of the root run is cancelled as well.
Get a factory task by conversation
Get the factory task bound to an agent conversation. Conversation bindings are unique across factories, but the lookup is factory-scoped: a task owned by a different factory is 404.
Get a factory task by run
Get the factory task that owns a run: the task bound to the conversation of the run's root ancestor. The lookup is factory-scoped: a task owned by a different factory is 404.
List available agent skills
Retrieve a list of available agents (skills) that can be used to run tasks. Agents are discovered from environments or a specific repository.
List connected self-hosted workers
Retrieve currently connected self-hosted workers for the authenticated principal's team. Worker presence is derived from worker websocket heartbeats and may be briefly stale.
Get run transcript
Retrieve the raw conversation transcript for an agent run. Returns a 302 redirect to a time-limited download URL for the transcript.
Get raw third-party harness usage
Return the latest cumulative raw usage snapshot retained for a Claude Code or Codex run. Missing metrics are represented as an unavailable result rather than zero. Access uses the same run view authorization as transcript reads.
Run an agent task
Spawn a cloud agent with a prompt and optional configuration. The agent will be queued for execution and assigned a unique run ID.
Run a cloud agent
Spawn a cloud agent with a prompt and optional configuration. The agent will be queued for execution and assigned a unique run ID.
List agent runs
Retrieve a paginated list of agent runs with optional filtering. Results default to `sort_by=updated_at` and `sort_order=desc`.
Find the run that produced a given external reference URL
Reverse-looks up the agent run that created an external reference with the given URL. The URL is matched against the canonical locator stored when the artifact was reported. Returns 404 when no matching run exists or when the caller lacks access.
Get run details
Retrieve detailed information about a specific agent run, including the full prompt, session link, and resolved configuration.
Get run timeline
Retrieve chronological setup and lifecycle timeline events for an agent run.
Get normalized run conversation
Retrieve a run's conversation as a normalized sequence of messages and nested steps. The response groups text, tool activity, and event content into structured blocks.
Cancel a run
Cancel an agent run that is currently queued or in progress; once cancelled, the run transitions to a cancelled state. Not all runs can be cancelled: a run already in a terminal state, in PENDING, or of an unsupported type (e.g. local, GitHub Action) is rejected instead — see the error responses below for each case.
Submit a follow-up message for a run
Send a follow-up message to an existing run. The server transparently routes the message based on the current state of the run (still queued, actively running, or ended) and will resume the agent in a new sandbox if necessary. A 200 response means the follow-up was accepted; updated run state can be observed via `GET /agent/runs/{runId}`. A run that failed during environment setup keeps its retained session reachable for a bounded debug window. A follow-up sent to an eligible run in that window is delivered into the retained session to start or continue a debug agent, without reopening the run: it stays in its failed state, with its original failure message and error code unchanged.
Interrupt the turn currently running on a run
Cancel the request the agent is currently working on without ending the run or tearing down its sandbox. The run stays in progress and accepts follow-ups afterwards. Only live runs on the Warp harness can be interrupted; use `POST /agent/runs/{runId}/cancel` to end a run outright. A 202 means the platform accepted the cancel; the agent applies it asynchronously.
Submit a follow-up message to the run behind a conversation
The same operation as `POST /agent/runs/{runId}/followups`, targeted by the conversation the run is serving rather than the run itself. `attachments` must name ids prepared through `POST /agent/conversations/{conversation_id}/attachments/prepare` (or the run-keyed prepare) for the run that is newest at that time. If a new run appears for the conversation between prepare and follow-up, the follow-up resolves to the new run and answers 422 `unknown_attachment`; prepare again. A handoff is a new execution of the same run and does not have this problem. `mode` only takes effect when the follow-up is queued ahead of the run starting or starts a new execution; a follow-up injected into a live session runs in the session's current mode.
Interrupt the turn running on the run behind a conversation
The same operation as `POST /agent/runs/{runId}/interrupt`, addressed by the conversation the run is serving. The run is picked with the same policy as the conversation follow-up route, and the caller must be able to view the conversation and the resolved run.
Get normalized conversation
Retrieve a conversation directly by conversation ID in Warp's normalized task/message format.
Get conversation transcript
Retrieve the raw conversation transcript for a conversation. Returns a 302 redirect to a time-limited download URL for the transcript. Supported for third-party harness conversations (Claude Code, Codex, Gemini).
Download a stored computer-use screenshot
Download a computer-use screenshot that was offloaded from the conversation's task history into object storage. The response is a redirect to a short-lived signed URL, so clients must follow redirects to receive the image. Requires view access to the conversation named in the path; a fork's history may reference screenshots stored under its source conversation's ID.
Create a scheduled agent
Create a new scheduled agent that runs on a cron schedule. The agent will be triggered automatically based on the cron expression.
List scheduled agents
Retrieve all scheduled agents accessible to the authenticated user. Results are sorted alphabetically by name.
Get scheduled agent details
Retrieve detailed information about a specific scheduled agent, including its configuration, history, and next scheduled run time.
Update a scheduled agent
Update an existing scheduled agent's configuration. All fields except agent_config are required.
Delete a scheduled agent
Delete a scheduled agent. This will stop all future scheduled runs.
Pause a scheduled agent
Pause a scheduled agent. The agent will not run until resumed.
Resume a scheduled agent
Resume a paused scheduled agent. The agent will start running according to its cron schedule.
List environments
Retrieve cloud environments accessible to the authenticated principal. Returns environments the caller owns, has been granted guest access to, or has accessed via link sharing.
List available models
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).
Get artifact details
Retrieve an artifact by its UUID: a time-limited signed download URL for downloadable file-like artifacts, or the current plan content inline for plan artifacts. Public artifacts can be read without authentication; private artifacts require the caller to be authenticated and authorized.
Download an artifact
Redirect to a temporary signed download URL for a downloadable artifact. Public artifacts can be downloaded without authentication; private artifacts require the caller to be authenticated and authorized.
Create an agent
Create a new agent in the caller's active team. Agents act autonomously with their own permissions, configuration, and identity.
List agents
List all agents on the caller's team.
Retrieve an agent
Retrieve a single agent by its unique identifier.
Update an agent
Update an existing agent.
Delete an agent
Delete an agent. All API keys associated with the agent are deleted atomically.
List the supported Factory file schema versions
Returns every Factory file schema version this server can describe, with a link to each version's schema bundle.
Get the JSON Schema bundle for one Factory file schema version
Returns every JSON Schema 2020-12 document describing one Factory file schema version, as a single bundle so the relative `$id` and `$ref` identities between the documents keep resolving.
Get one Factory file schema document
Returns a single generated JSON Schema document on its own, rather than inside the bundle envelope, so it can be used directly as a schema reference. A document served here resolves its relative `$ref`s against its siblings at this same path, which is what each document's `$id` assumes, making the URL usable directly from an editor or YAML language server, for example: ```yaml # yaml-language-server: $schema=/api/v1/factory-files/schemas/v1alpha1/factory.schema.json ```
See something wrong? Edit this page or open an issue.