Runs

List runs with optional search and tag filtering

Lists runs in a project with optional search using ILIKE substring matching. Supports tag filtering with OR logic (returns runs with ANY of the specified tags).

get/api/runs/list

Request

  • Base URL
    https://pluto-api.trainy.ai
  • Auth
    HTTP bearer

Query parameters

projectNamestring

Project name. Required unless konduktorJob is provided (which scopes to the org instead).

Example:my-project
searchstring

Search term for run names (substring match)

Example:training
tagsstring

Comma-separated list of tags to filter by (OR logic)

Example:baseline,experiment
limitnumber

Maximum number of runs to return

Example:50
konduktorJobPrefixstring

Anchored prefix match on systemMetadata.konduktor.job_name. Accepts a full Konduktor job ID or a YAML base name (Konduktor appends a 4-char random suffix per launch). When provided, projectName becomes optional (search scopes to the org).

Example:mcp-konduktor-e2e
includeFieldValuesboolean nullable

When true, attach _flatConfig and _flatSystemMetadata to each run. Off by default for lean SDK responses.

visibleColumnsstring

JSON-encoded array of {source:'config'|'systemMetadata', key:string}. Restricts _flatConfig/_flatSystemMetadata to the listed keys. Empty array = no field values.

Example:[{"source":"config","key":"lr"}]
fieldFiltersstring

JSON-encoded array of field-filter terms (see the FieldFilterTerm component for the structured shape and the full source/dataType/operator enums). Filters config./systemMetadata. fields via the indexed run_field_values table; terms AND together. Operators (dataType-dependent): contains, does not contain, equals, is, is not, starts with, ends with, regex, is greater than/>, is less than/<, is greater than or equal to/>=, is less than or equal to/<=, is between, is not between, is before, is on or before, is after, is on or after, is any of, is none of, exists, not exists.

Example:[{"source":"config","key":"checkpoint.r2_prefix","dataType":"text","operator":"contains","values":["37a"]}]
sortstring

Sort field with optional '-' (desc) or '+' (asc) prefix. Built-in: createdAt, updatedAt, name, status (snake_case accepted). heartbeat_at: last time the run logged data (computed on-demand from ClickHouse MAX(time); runs that never logged are excluded from the ordering). Config/sysmeta: config.<key>.value / systemMetadata.<key>.value. Metric: summary_metrics.<name> (LAST value). Default: createdAt desc. Invalid/unknown field → 400. For config/metric/heartbeat sorts the candidate set is capped at 10000 runs.

Example:-config.lr.value
offsetnumber nullable

Number of runs to skip before returning results (offset pagination). Combine with limit to page through results; total reports the full match count.

statusstring

Comma-separated run statuses to filter by (OR within the list). One or more of: RUNNING, COMPLETED, FAILED, TERMINATED, CANCELLED. Invalid values → 400.

Example:RUNNING,FAILED
heartbeatAfterstring date-time

ISO-8601 timestamp; keep only runs whose last logged-data time (heartbeat) is at or after this. Requires projectName.

Example:2026-06-22T00:00:00Z
heartbeatBeforestring date-time

ISO-8601 timestamp; keep only runs whose last logged-data time (heartbeat) is at or before this (i.e. stale). Requires projectName.

Example:2026-06-22T00:00:00Z
filterstring

JSON-encoded wandb-style filter query. Supports $and/$or/$not and leaf operators (eq, $ne, $gt/$gte/$lt/$lte, $in/$nin, $regex) over: state/status, heartbeat_at, created_at/updated_at, name, tags, config.<key>, summaryMetrics.<key>.

Example:{"$or":[{"state":"running"},{"heartbeat_at":{"$gte":"2026-06-22T00:00:00Z"}}]}

Response

List of runs

totalnumber required

Total count of matching runs

Changes

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