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

# List runs

`POST /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, trigger. Sortable fields: run_id, status, trigger, started_at, completed_at, created_at, workflow_id, workflow_name.

## Request body

- RunListRequest — Query parameters for listing runs.
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `limit` integer — Maximum number of runs to return per page.
  - `offset` integer — Pagination offset.
  - `search` string — Filters by run ID substring.
  - `sort_by` RunSortSpec[], nullable — Ordered list of sort specs; first entry is primary.
    - `field` string, required — Column to sort by.
    - `order` string, required — Sort direction.
  - `status_filter` string[], nullable — StatusFilter restricts results to runs in the given statuses.
  - `trigger_filter` string[], nullable — TriggerFilter restricts results to runs with the given triggers.
  - `workflow_id` string — Filters results to a single workflow.

## 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.
    - `logs` string — Run's execution log output.
    - `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/108ab4b41051/schema)
