---
title: "List browser runs"
method: GET
path: "/v1/browser/runs"
tags: ["Browser"]
---

# List browser runs

`GET /v1/browser/runs`

## Request

- Base URL: `https://console.nace.ai`
- URL: `https://console.nace.ai/v1/browser/runs`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/nace/apis/drex-api/docs/v1/browser/runs/get.ts> (a function with typed inputs; its response is checked against the schema)

The account's runs, newest first, without `steps`. Free.

## Query parameters

- `limit` integer
- `status` 'queued' | 'running' | 'succeeded' | 'partial' | 'failed' | 'cancelled' | 'timed_out': `queued` → `running` → one of `succeeded`, `partial`, `failed`, `cancelled`, `timed_out`.
- `cursor` string

## Response `200`

One page of runs.

- BrowserRunList
  - `items` BrowserRun[], required
    - `id` string, required: `brun_...`.
    - `object` 'browser_run', required
    - `status` 'queued' | 'running' | 'succeeded' | 'partial' | 'failed' | 'cancelled' | 'timed_out', required: `queued` → `running` → one of `succeeded`, `partial`, `failed`, `cancelled`, `timed_out`.
    - `task` string, required: Empty after the run's content is explicitly erased.
    - `start_url` string, required
    - `allowed_origins` string[], required
    - `risky_actions` string, required
    - `limits` BrowserRunLimits, required
      - `max_cost_usd` number: The most the run may be charged, in US dollars.
      - `max_seconds` integer: How long the run may browse.
      - `max_llm_calls` integer: How many planning and reading calls the agent may make.
    - `answer` unknown, required
    - `answer_text` string, nullable, required
    - `outcome` BrowserRunOutcome, required
      - `kind` 'completed' | 'not_found' | 'blocked_login' | 'blocked_captcha' | 'risky_action_denied' | 'limit_reached' | 'site_error' | 'internal_error' | 'answer_invalid' | 'cancelled' | 'timed_out', required: `completed` and `not_found` succeed; `blocked_login`, `blocked_captcha`, `risky_action_denied` and `limit_reached` are partial; `site_error`, `internal_error` and `answer_invalid` fail.
      - `reason` string, nullable, required
      - `evidence` BrowserRunEvidence[], required
        - `url` string
        - `text` string
    - `final_url` string, nullable, required
    - `steps` BrowserRunStep[]: Only on `GET /v1/browser/runs/{id}`.
    - `pending_approval` unknown, required
    - `usage` BrowserRunUsage, required
      - `drex_input_tokens` integer, required
      - `llm_input_tokens` integer, required
      - `llm_output_tokens` integer, required
      - `browser_seconds` integer, required
      - `cost_usd` number, nullable, required: What the run was charged; `null` until it ended, `0` when it was not charged.
    - `artifacts_url` string, required
    - `metadata` object, required
    - `created_at` string, date-time, required
    - `started_at` string, date-time, nullable, required
    - `finished_at` string, date-time, nullable, required
  - `next_cursor` string, nullable, required: Pass as `cursor` for the next page; `null` when this page is the last.

## Other responses

- `401`: Missing or invalid API key (`authentication_error`, code `invalid_api_key`).
- `422`: `limit`, `status` or `cursor` is invalid (`invalid_request_error`, code `invalid_request`).
- `429`: Over the account's requests per minute for browser routes (`rate_limit_error`, code `rate_limited`).
- `500`: Something failed on Drex's side (`internal_error`). Retry.

---

[API](https://skmtc.dev/nace/apis/drex-api.md) - [All operations](https://skmtc.dev/nace/apis/drex-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nace/apis/drex-api/revisions/a0e62d925a61?raw)
