Run tasks programmatically using the Python SDK, TypeScript SDK, or REST API.Documentation Index
Fetch the complete documentation index at: https://skyvern.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Run a task
A task has one required parameter and one commonly used optional parameter:prompt(required): Natural language instructions describing what the AI should dourl(optional): The starting page for the automation
run_task, Skyvern spins up a cloud browser, navigates to the URL, and executes your prompt. A typical task takes 30-90 seconds depending on complexity.
run_id. Use this ID to check status, fetch results, and retrieve artifacts.
Get results
Therun_task call queues the task and returns immediately.
Use the run_id to fetch results once the task reaches a terminal state.
| Status | Description |
|---|---|
created | Task initialized, not yet queued |
queued | Waiting for an available browser |
running | AI is navigating and executing |
completed | Task finished successfully — check output for results |
failed | Task encountered an error — check failure_reason and retry or adjust your prompt |
terminated | Task was manually stopped |
timed_out | Task exceeded time limit — increase max_steps or simplify the task |
canceled | Task was canceled before starting |
Option 1: Polling
Pollget_run until status is terminal (completed, failed, terminated, timed_out, or canceled).
Option 2: Webhooks
Pass awebhook_url when creating the task. Skyvern sends a POST request to your URL when the task completes.
Option 3: Wait for completion (Python only)
Block until the task finishes instead of polling manually.Python
Understand the response
The response from polling (get_run) and webhooks have slightly different structures. Both contain the core task data, but webhooks include additional metadata.
| Field | Type | Description |
|---|---|---|
run_id | string | Unique identifier for this run |
status | string | Current status: queued, running, completed, failed, terminated, timed_out, canceled |
output | object | null | Extracted data from the task |
downloaded_files | array | Files downloaded during execution |
recording_url | string | null | Video recording of the browser session |
screenshot_urls | array | null | Screenshots captured (latest first) |
failure_reason | string | null | Error message if the run failed |
errors | array | List of errors encountered |
step_count | integer | null | Number of steps executed |
run_type | string | Type of run: task_v2, openai_cua, anthropic_cua |
app_url | string | Link to view this run in Skyvern Cloud |
created_at | datetime | When the run was created |
modified_at | datetime | When the run was last updated |
queued_at | datetime | null | When the run entered the queue |
started_at | datetime | null | When execution began |
finished_at | datetime | null | When execution completed |
| Field | Type | Description |
|---|---|---|
run_request | object | Original request parameters (prompt, url, engine, etc.) |
browser_session_id | string | null | ID of the browser session used |
browser_profile_id | string | null | ID of the browser profile used |
max_screenshot_scrolls | integer | null | Number of scrolls for screenshots |
script_run | object | null | Script run result if AI fallback triggered |
| Field | Type | Description |
|---|---|---|
task_id | string | Same as run_id |
summary | string | AI-generated description of what was done |
prompt | string | The prompt from the original request |
url | string | The URL from the original request |
organization_id | string | Your organization ID |
workflow_run_id | string | Associated workflow run ID |
proxy_location | string | Proxy location used (e.g., RESIDENTIAL) |
webhook_callback_url | string | The webhook URL that received this payload |
Artifacts
Every run captures recordings, screenshots, and logs. See Using Artifacts for retrieval and the full artifact type reference.For multi-step automations that chain multiple actions, see Browser Automation.

