# List Playground runs

```http
GET /api/public/v1/competitions/mathematics-distillation-challenge-equational-theories-stage1/playground/runs
```

**Scope**: `playground.read`.

Returns compact summaries of Stage 1 Runs created by the calling account, ordered by creation time from newest to oldest. Runs removed from history are not returned.

Filters are combined with AND and are applied before cursor pagination. The response does not include a total count.

## Query parameters

| Parameter | Type | Required | Default | Description |
| :--- | :--- | :---: | :--- | :--- |
| `status` | string | No | — | `pending`, `running`, `done`, `failed`, or `cancelled`. |
| `modelId` | string | No | — | Keep Runs whose snapshotted `modelIds` contain this exact ID. |
| `problemSet` | string | No | — | Keep Runs whose problem snapshots reference this exact set; use `custom` for inline problems. |
| `cursor` | string | No | — | Opaque cursor from the previous `nextCursor`. |
| `limit` | integer | No | `25` | Page size from `1` through `100`. |

An unknown `modelId` or `problemSet` returns an empty page rather than an error. Follow the shared [cursor traversal rules](../../../pagination.md).

## Response fields

| Field | Type | Description |
| :--- | :--- | :--- |
| `items` | [Stage1RunSummary](#run-summary-fields)[] | Compact Run summaries. |
| `nextCursor` | string \| null | Cursor for the next page, or `null` after the final page. |

### Run summary fields

| Field | Type | Description |
| :--- | :--- | :--- |
| `runId` | string | Stable Run ID. |
| `status` | string | `pending`, `running`, `done`, `failed`, or `cancelled`. |
| `modelIds` | string[] | Snapshotted model IDs in request order. |
| `problemSetIds` | string[] | Unique referenced problem-set IDs in first-occurrence order; includes `custom` when used. |
| `problemCount` | integer | Number of selected problem snapshots. |
| `configurationCount` | integer | Number of snapshotted cheatsheet configurations. |
| `repeat` | integer | Executions per cell. |
| `executionCount` | integer | Total result rows expected. |
| `completedExecutionCount` | integer | Result rows currently completed, including failed executions. |
| `creditsReserved` | number | Maximum credits reserved when the Run was created. |
| `creditsCharged` | number \| null | Settled charge for a terminal Run; `null` before settlement. |
| `createdAt` | string | ISO 8601 UTC creation time. |
| `finishedAt` | string \| null | Terminal time, or `null` while active. |

Call [Get a Playground Run](./get-playground-run.md) for full snapshotted inputs and grouped metrics.

## Example request

```bash
curl "https://api.sair.foundation/api/public/v1/competitions/mathematics-distillation-challenge-equational-theories-stage1/playground/runs?status=done&modelId=qwen3&limit=25" \
  -H "Authorization: Bearer $SAIR_API_KEY"
```

## Example response

```json
{
  "ok": true,
  "data": {
    "items": [
      {
        "runId": "run_01JSTAGE100000000000000001",
        "status": "done",
        "modelIds": ["qwen3"],
        "problemSetIds": ["pset_hard3", "custom"],
        "problemCount": 2,
        "configurationCount": 1,
        "repeat": 1,
        "executionCount": 2,
        "completedExecutionCount": 2,
        "creditsReserved": 1.4,
        "creditsCharged": 0.8,
        "createdAt": "2026-08-30T08:21:30Z",
        "finishedAt": "2026-08-30T08:22:14Z"
      }
    ],
    "nextCursor": null
  }
}
```

## Errors

See [Errors](../../../errors.md).

| HTTP | Code | When |
| :---: | :--- | :--- |
| `400` | `MALFORMED_BODY` | `cursor` or `limit` is invalid. |
| `404` | `NOT_FOUND` | The Stage 1 competition is unavailable. |
| `422` | `RESOURCE_FIELD_INVALID` | `status` is not one of the documented values. |
