# CampaignsList

> List campaigns with a name filter and cursor paging: dates, status, default flag and partner, post… Read access, campaigns toolset, MCP tool list_campaigns.

List campaigns with a name filter and cursor paging: dates, status, default flag and partner, post and discount counts.

**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` | `CampaignFilter` | 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.

### CampaignFilter

- `[CampaignFilter!]`: `and`, `or`
- [StringFilter](https://developer.missin.co.uk/reference/input-types.md#stringfilter): `campaignSlug`, `name`, `utmCampaign`, `utmTerm`
- [BooleanFilter](https://developer.missin.co.uk/reference/input-types.md#booleanfilter): `isDefault`
- [UUIDFilter](https://developer.missin.co.uk/reference/input-types.md#uuidfilter): `managedByConnectionId`, `rowId`
- `CampaignFilter`: `not`
- `CampaignStatusFilter`: `status`

### CampaignStatusFilter

- `CampaignStatus` (One of `ACTIVE`, `ARCHIVED`, `COMPLETED`, `DRAFT`, `ENDED`, `PAUSED`): `equalTo`, `greaterThan`, `greaterThanOrEqualTo`, `lessThan`, `lessThanOrEqualTo`, `notEqualTo`
- `[CampaignStatus!]` (One of `ACTIVE`, `ARCHIVED`, `COMPLETED`, `DRAFT`, `ENDED`, `PAUSED`): `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":"CampaignsList","variables":{"first":50},"extensions":{"persistedQuery":{"version":1,"sha256Hash":"cc4c4616f86feca4fafac98d357af608114b690240d58999fe247adae9c52df6"}}}'
```

## Document

```graphql
query CampaignsList($after: Cursor, $filter: CampaignFilter, $first: Int!) { __typename allCampaigns(first: $first, after: $after, orderBy: [NAME_ASC], filter: $filter) { __typename nodes { __typename campaignDiscountsByCampaignId { __typename totalCount } campaignPartnersByCampaignId(first: 12) { __typename nodes { __typename id partnerByPartnerId { __typename profileImage: avatarUrl id name rowId username } rowId } totalCount } campaignSignalsByCampaignId { __typename nodes { __typename fetchEnabled kind rowId value } totalCount } campaignSlug campaignTypeByCampaignTypeId { __typename campaignTypeSlug id name } createdAt endDate icon iconColor id isDefault name partnerPostsByCampaignId { __typename totalCount } rowId startDate status utmCampaign utmTerm } pageInfo { __typename endCursor hasNextPage } totalCount } }
```

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