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

# List runs

`GET /runs`

Returns paginated recent (non-archived) runs the caller started - scoped to their own user within the org, not every member's runs. Filters: workflow_id, search (run ID substring), status_filter, trigger_filter. Order with order_by ('<field> <asc|desc>'), field one of status, started_at, completed_at, created_at.

## Query parameters

- `workflow_id` string, uuid — Filter results to a single workflow.
- `limit` integer — Maximum number of runs to return per page (1-500).
- `offset` integer — Pagination offset.
- `search` string — Filter by run id substring.
- `status_filter` string[], nullable — Restrict results to the given run statuses.
- `trigger_filter` string[], nullable — Restrict results to the given triggers.
- `order_by` string — Sort expression '<field> <asc|desc>'; field is one of status, started_at, completed_at, created_at. Defaults to created_at desc.

## Response `200`

OK

- RunListResponse — Paginated list of runs.
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `limit` integer, required — Page size used for this response.
  - `offset` integer, required — Pagination offset used for this response.
  - `runs` RunResponse[], nullable, required — Page of run records.
    - `$schema` string, uri — A URL to the JSON Schema for this object.
    - `canceled_at` string, date-time — Timestamp when the run was cancelled.
    - `completed_at` string, date-time — Timestamp when the run finished.
    - `created_at` string, date-time, required — Timestamp when the run record was created.
    - `error_message` string — Error details if the run failed.
    - `id` string, uuid, required — Run identifier.
    - `phone_id` string — Device executing the run.
    - `run_metadata` object — Arbitrary metadata attached to the run.
    - `session_id` string, uuid — Session associated with this run.
    - `start_timeout_seconds` integer — How long the queued run may wait for a phone before auto-cancel.
    - `started_at` string, date-time — Timestamp when the run began executing.
    - `status` 'queued' | 'running' | 'completed' | 'failed' | 'cancelled', required — Current lifecycle state of the run.
    - `success` boolean — Whether the run completed without error.
    - `trace_expired_at` string, date-time — When the trace recording was deleted.
    - `trigger` 'manual' | 'scheduled' | 'api', required — Trigger identifies how the run was initiated.
    - `updated_at` string, date-time, required — Timestamp of the last update to the run record.
    - `user_id` string, uuid, required — User who initiated the run.
    - `variables` object — Variable configuration used for the run.
    - `video_url` string — URL for the run recording video.
    - `workflow_id` string, uuid, required — Workflow this run belongs to.
    - `workflow_name` string — Display name of the workflow this run belongs to.
  - `total` integer, required — Total number of runs matching the query.

## Other responses

- `default` — Error

---

[API](https://skmtc.net/axilioai/apis/axilio-api.md) · [All operations](https://skmtc.net/axilioai/apis/axilio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/axilioai/axilio-api/revisions/4a74befa0bde/schema)
