How task runs fit in
A task run ties a task to a session. The task defines what to do, the session is the compute environment, and the task run is the execution. You can optionally pass a credential to authenticate the session. Runs emit events throughout their lifecycle so your application can react in real time.Running a task
Execution is asynchronous. Subscribe totask_run.completed or task_run.failed events to know when it finishes.
Task run statuses
Timeouts
Every task has a timeout that bounds the total wall-clock runtime of each run. If a run doesn’t finish within the window, it hard-stops and fails with atimeout error.
Set the timeout per task with settings.timeout_seconds, a positive integer in seconds. If you don’t set one, the task uses your plan’s default timeout. The maximum you can set is determined by your plan — see pricing for the cap on each tier — and the overall ceiling is 8 hours (28800 seconds). Requesting a timeout above your plan’s maximum is rejected when you create or update the task with a 422 timeout_exceeds_plan_max error; a non-positive value is rejected with invalid_field_value. See run timeout for how to configure it on a task.
When a run times out, the errors array contains:
Output and errors
On success, theoutput field contains structured JSON matching the task’s output schema. On failure, the errors array contains one or more error objects with type, code, and message. See API error handling for the full reference.
Some sources use antibot defenses that can cause a run to fail with a blocked error. Detection can vary across runs on the same source, so handle this error gracefully. See stealth mode for details.
Including additional data
The default task run response returns core fields only. Use theinclude query parameter on GET /v2/task-runs/{run_id} to add optional data:
Comma-separated values are supported:
Interactions
Task runs can pause for user input if the source requires verification during execution. Collect the response from your user and submit it to resume.Canceling a run
canceling while the agent stops execution, then to canceled once complete. You can cancel a run any time before it reaches a terminal state (completed, canceled, or failed), including while it’s queued, running, or interaction_required.