---
title: "Get all runs"
method: GET
path: "/v1/agents/runs"
tags: ["Runs"]
---

# Get all runs

`GET /v1/agents/runs`

List workflow runs across all workflows for the current organization.

Results are paginated and can be filtered by **status**, **search_key**, and **error_code**. All filters are combined with **AND** logic — a run must match every supplied filter to be returned.

### search_key

A case-insensitive substring search that matches against **any** of the following fields:

| Searched field | Description |
|---|---|
| `workflow_run_id` | The unique run identifier (e.g. `wr_123…`) |
| Parameter **key** | The `key` of any workflow parameter definition associated with the run |
| Parameter **description** | The `description` of any workflow parameter definition |
| Run parameter **value** | The actual value supplied for any parameter when the run was created |
| `extra_http_headers` | Extra HTTP headers attached to the run (searched as raw JSON text) |

Soft-deleted parameter definitions are excluded from key/description matching. A run is returned if **any** of the fields above contain the search term.

### error_code

An **exact-match** filter against the `error_code` field inside each task's `errors` JSON array. A run matches if **any** of its tasks contains an error object with a matching `error_code` value. Error codes are user-defined strings set during workflow execution (e.g. `INVALID_CREDENTIALS`, `LOGIN_FAILED`, `CAPTCHA_DETECTED`).

### Combining filters

All query parameters use AND logic:
- `?status=failed` — only failed runs
- `?status=failed&error_code=LOGIN_FAILED` — failed runs **and** have a LOGIN_FAILED error
- `?status=failed&error_code=LOGIN_FAILED&search_key=prod_credential` — all three conditions must match

## Query parameters

- `page` integer — Page number for pagination.
- `page_size` integer — Number of runs to return per page.
- `status` WorkflowRunStatus[], nullable — Filter by one or more run statuses.
- `search_key` string, nullable — Case-insensitive substring search across: workflow run ID, parameter key, parameter description, run parameter value, and extra HTTP headers. A run is returned if any of these fields match. Soft-deleted parameter definitions are excluded from key/description matching.
- `error_code` string, nullable — Exact-match filter on the error_code field inside each task's errors JSON array. A run matches if any of its tasks contains an error with a matching error_code. Error codes are user-defined strings set during workflow execution.

## Headers

- `x-api-key` string, nullable — Skyvern API key for authentication. API key can be found at https://app.skyvern.com/settings.

## Response `200`

Successful Response

- WorkflowRun[]
  - `workflow_run_id` string, required
  - `workflow_id` string, required
  - `workflow_permanent_id` string, required
  - `organization_id` string, required
  - `browser_session_id` string, nullable
  - `browser_profile_id` string, nullable
  - `debug_session_id` string, nullable
  - `status` 'created' | 'queued' | 'running' | 'failed' | 'terminated' | 'canceled' | 'timed_out' | 'completed' | 'paused', required
  - `extra_http_headers` object, nullable
  - `cdp_connect_headers` object, nullable
  - `proxy_location` union
    - 'RESIDENTIAL' | 'US-CA' | 'US-NY' | 'US-TX' | 'US-FL' | 'US-WA' | 'RESIDENTIAL_ES' | 'RESIDENTIAL_IE' | 'RESIDENTIAL_GB' | 'RESIDENTIAL_IN' | 'RESIDENTIAL_JP' | 'RESIDENTIAL_FR' | 'RESIDENTIAL_DE' | 'RESIDENTIAL_NZ' | 'RESIDENTIAL_ZA' | 'RESIDENTIAL_AR' | 'RESIDENTIAL_AU' | 'RESIDENTIAL_BR' | 'RESIDENTIAL_TR' | 'RESIDENTIAL_CA' | 'RESIDENTIAL_MX' | 'RESIDENTIAL_IT' | 'RESIDENTIAL_NL' | 'RESIDENTIAL_PH' | 'RESIDENTIAL_KR' | 'RESIDENTIAL_SA' | 'RESIDENTIAL_ISP' | 'NONE'
    - GeoTarget — Granular proxy geo-targeting request with country, optional subdivision, and optional city.
      - `country` string, required — ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB', 'DE')
      - `subdivision` string, nullable — ISO 3166-2 subdivision code without country prefix (e.g., 'CA' for California, 'NY' for New York)
      - `city` string, nullable — City name in English from GeoNames (e.g., 'New York', 'Los Angeles', 'London')
    - object
  - `webhook_callback_url` string, nullable
  - `webhook_failure_reason` string, nullable
  - `totp_verification_url` string, nullable
  - `totp_identifier` string, nullable
  - `failure_reason` string, nullable
  - `failure_category` object[], nullable
  - `parent_workflow_run_id` string, nullable
  - `workflow_title` string, nullable
  - `max_screenshot_scrolls` integer, nullable
  - `max_elapsed_time_minutes` integer, nullable
  - `browser_address` string, nullable
  - `run_with` string, nullable
  - `script_run` ScriptRunResponse
    - `ai_fallback_triggered` boolean
    - `script_id` string, nullable
    - `script_revision_id` string, nullable
  - `job_id` string, nullable
  - `depends_on_workflow_run_id` string, nullable
  - `sequential_key` string, nullable
  - `ai_fallback` boolean, nullable
  - `code_gen` boolean, nullable
  - `trigger_type` 'manual' | 'mcp' | 'api' | 'scheduled' | 'webhook' — How a workflow run was initiated. - manual: User clicked "Run" in the UI - mcp: First-party MCP client request - api: Direct API call to the run endpoint - scheduled: Triggered by a cron schedule - webhook: Triggered by an external system via the webhook endpoint
  - `workflow_schedule_id` string, nullable
  - `ignore_inherited_workflow_system_prompt` boolean
  - `copilot_session_id` string, nullable
  - `credits_used` integer
  - `cached_credits_used` integer
  - `queued_at` string, date-time, nullable
  - `started_at` string, date-time, nullable
  - `finished_at` string, date-time, nullable
  - `created_at` string, date-time, required
  - `modified_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/skyvern-ai/apis/skyvern-api.md) · [All operations](https://skmtc.net/skyvern-ai/apis/skyvern-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skyvern-ai/skyvern-api/versions/7024de9949d2/schema)
