> ## Documentation Index
> Fetch the complete documentation index at: https://monid.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List Runs

> List runs for your workspace.

```text theme={null}
GET /v1/runs
```

List runs for your workspace with cursor-based pagination.

## Headers

| Header           | Required | Description                                                          |
| ---------------- | -------- | -------------------------------------------------------------------- |
| `Authorization`  | Yes      | `Bearer <api-key>`                                                   |
| `x-workspace-id` | Yes      | Workspace ID — see [`GET /v1/auth/workspaces`](/api/auth/workspaces) |

## Query Parameters

| Parameter | Type   | Default | Description                                |
| --------- | ------ | ------- | ------------------------------------------ |
| `limit`   | number | 10      | Maximum runs to return (1–100)             |
| `cursor`  | string | —       | Pagination cursor from a previous response |

## Example Request

<CodeGroup>
  ```bash curl theme={null}
  curl "https://api.monid.ai/v1/runs?limit=10" \
    -H "Authorization: Bearer monid_live_..." \
    -H "x-workspace-id: ws_abc123"
  ```

  ```typescript TypeScript theme={null}
  const res = await fetch("https://api.monid.ai/v1/runs?limit=10", {
    headers: {
      Authorization: "Bearer monid_live_...",
      "x-workspace-id": "ws_abc123",
    },
  });
  ```

  ```python Python theme={null}
  import requests

  res = requests.get(
      "https://api.monid.ai/v1/runs",
      headers={
          "Authorization": "Bearer monid_live_...",
          "x-workspace-id": "ws_abc123",
      },
      params={"limit": 10},
  )
  ```
</CodeGroup>

## 200 OK

| Field               | Type           | Description                                  |
| ------------------- | -------------- | -------------------------------------------- |
| `items`             | array          | List of run summaries                        |
| `items[].runId`     | string         | Run identifier                               |
| `items[].provider`  | string         | Provider slug                                |
| `items[].endpoint`  | string         | Endpoint path                                |
| `items[].status`    | string         | `READY`, `RUNNING`, `COMPLETED`, or `FAILED` |
| `items[].price`     | object         | Endpoint pricing                             |
| `items[].cost`      | object \| null | Actual cost charged                          |
| `items[].createdAt` | string         | ISO 8601 timestamp                           |
| `cursor`            | string \| null | Next-page cursor. `null` if last page        |

### Example Response

```json theme={null}
{
  "items": [
    {
      "runId": "01HXYZ1234567890ABCDEF",
      "provider": "apify",
      "endpoint": "/apidojo/tweet-scraper",
      "status": "COMPLETED",
      "price": { "type": "PER_CALL", "amount": 0.003, "currency": "USD" },
      "cost": { "value": 0.003, "currency": "USD" },
      "createdAt": "2026-03-28T10:30:00.000Z"
    }
  ],
  "cursor": null
}
```
