Triggers – Plans

List plan runs across a project

Lists a workspace's plan runs across all of its plans, newest first, each carrying its plan's id and title. Archived (soft-deleted) runs are excluded. Use this for run history; use GET /api/triggers/plans/{planId}/runs/{planRunId} for one run's per-case breakdown. A run's status is execution state, not the test verdict: read passedCases/failedCases to judge outcomes. Paginate by passing the previous page's nextCursor as cursor.

get/api/plan-runs

Request

Query parameters

projectIdstring uuid required

UUID of the workspace (project) to list runs for.

planIdstring uuid

Restrict to a single plan's runs. A plan id from a different project yields an empty list, not an error.

status'created' | 'running' | 'completed' | 'failed' | 'cancelled'

Restrict to runs with this execution status.

tagstring[]

Filter by tag. Repeat the parameter to narrow further: a row matches only if it carries every given tag (?tag=git:sha:abc&tag=genesis:pr:42). At most 10, each 1-64 characters; more is refused with 400. Matching is exact and scoped to your organization.

limitinteger
cursorstring date-time

Pagination cursor — the nextCursor value from the previous page (the createdAt of its last run, ISO 8601).

sort'createdAt' | 'startedAt' | 'status'

Field to order the list by. cursor is only supported with the default sort (createdAt); ordering by anything else returns 400.

order'asc' | 'desc'
locale'en' | 'ja' | 'ko' | 'und'

ICU collation used to order text fields, so Japanese titles sort by gojuon rather than by byte value. Omit for a locale-independent order.

Response

Plan runs for the project, newest first.

hasMoreboolean

More runs exist beyond this page. Unlike nextCursor, this is accurate for every sort and order.

nextCursorstring date-time

Cursor for the next page. Only emitted on the default sort (createdAt, desc), because the cursor is a createdAt compared with a strict less-than and describes a position in no other ordering. Use hasMore to detect further pages.

Example response

{
  "items": [
    {
      "tags": [
        "git:sha:3f2c1e9a7b6d5c4e3f2a1b0c9d8e7f6a5b4c3d2e",
        "genesis:pr:1234"
      ]
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.