# CaptureRunsList

> Page through capture runs with status, surface, campaign, results and charges. Read access, capture toolset, MCP tool list_capture_runs.

**Access:** [Read](https://developer.missin.co.uk/get-started/authentication.md#access-levels)

## Variables

| Variable | Type | Required | Accepts | Description |
|---|---|---|---|---|
| `after` | `Cursor` | no | Opaque cursor from `pageInfo.endCursor` |  |
| `filter` | `PartnerPostRunFilter` | no | Input object, below |  |
| `first` | `Int!` | yes | 32-bit integer. MCP tools send `50` when it is left out |  |

## Input types

A filter lists its fields by the type they take, and none of them is required.

### PartnerPostRunFilter

- `[PartnerPostRunFilter!]`: `and`, `or`
- [UUIDFilter](https://developer.missin.co.uk/reference/input-types.md#uuidfilter): `campaignId`, `flowId`, `rowId`, `workspaceId`
- [DatetimeFilter](https://developer.missin.co.uk/reference/input-types.md#datetimefilter): `createdAt`, `notBefore`
- `PartnerPostRunFilter`: `not`
- [StringFilter](https://developer.missin.co.uk/reference/input-types.md#stringfilter): `sourceRunId`, `surface`
- `CaptureRunStatusFilter`: `status`
- `CaptureTriggerFilter`: `trigger`
- `CaptureWaitReasonFilter`: `waitReason`

### CaptureRunStatusFilter

- `CaptureRunStatus` (One of 9 values, see [CaptureRunStatus](https://developer.missin.co.uk/reference/input-types.md#capturerunstatus)): `equalTo`, `greaterThan`, `greaterThanOrEqualTo`, `lessThan`, `lessThanOrEqualTo`, `notEqualTo`
- `[CaptureRunStatus!]` (One of 9 values, see [CaptureRunStatus](https://developer.missin.co.uk/reference/input-types.md#capturerunstatus)): `in`, `notIn`
- `Boolean`: `isNull`

### CaptureTriggerFilter

- `CaptureTrigger` (One of 9 values, see [CaptureTrigger](https://developer.missin.co.uk/reference/input-types.md#capturetrigger)): `equalTo`, `greaterThan`, `greaterThanOrEqualTo`, `lessThan`, `lessThanOrEqualTo`, `notEqualTo`
- `[CaptureTrigger!]` (One of 9 values, see [CaptureTrigger](https://developer.missin.co.uk/reference/input-types.md#capturetrigger)): `in`, `notIn`
- `Boolean`: `isNull`

### CaptureWaitReasonFilter

- `CaptureWaitReason` (One of `slot`, `source`): `equalTo`, `greaterThan`, `greaterThanOrEqualTo`, `lessThan`, `lessThanOrEqualTo`, `notEqualTo`
- `[CaptureWaitReason!]` (One of `slot`, `source`): `in`, `notIn`
- `Boolean`: `isNull`

## Call it

```bash curl
curl https://api.missin.co.uk/graphql/v1 \
  -H "Authorization: Bearer $MISSIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operationName":"CaptureRunsList","variables":{"first":50},"extensions":{"persistedQuery":{"version":1,"sha256Hash":"e4d9e00ef3de9525e6b31d0c309536eba89cc74e6b2e4bb1dc65e51d8aa48715"}}}'
```

## Document

```graphql
query CaptureRunsList($after: Cursor, $filter: PartnerPostRunFilter, $first: Int!) { __typename allPartnerPostRuns( first: $first after: $after filter: $filter orderBy: [CREATED_AT_DESC] ) { __typename nodes { __typename campaignId chargedGbp chargedUnits costUsd createdAt error finishedAt flowId id partnerIds projectedUnits refundedGbp resultsNew resultsReturned rowId settings startedAt status surface targetsUnreachable trigger unreachable waitReason } pageInfo { __typename endCursor hasNextPage } totalCount } }
```

Source: https://developer.missin.co.uk/reference/capture/capture-runs-list
