# RecordCampaignSpend

> Record manual daily spend against a campaign. Write access, marketing toolset, MCP tool record_campaign_spend.

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

## Variables

| Variable | Type | Required | Accepts | Description |
|---|---|---|---|---|
| `input` | `RecordCampaignSpendInput!` | yes | Input object, below |  |

## Input types

### RecordCampaignSpendInput

| Field | Type | Required | Accepts | Description |
|---|---|---|---|---|
| `amount` | `Float!` | yes | at least 0 |  |
| `campaignId` | `UUID!` | yes |  |  |
| `currencyCode` | `String!` | yes | exactly 3 characters |  |
| `date` | `String!` | yes | matches `^\d{4}-\d{2}-\d{2}$` | A plain day, YYYY-MM-DD — the grain spend is reported at. |
| `source` | `String!` | yes | One of `MANUAL`, `AGENCY`, `PRODUCTION`, `PARTNER_COMMISSION` | SPEND_SOURCES. A network's own sources are written by its sync, not here. |

## 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":"RecordCampaignSpend","variables":{"input":{"amount":20,"campaignId":"00000000-0000-0000-0000-000000000000","currencyCode":"…","date":"…","source":"MANUAL"}},"extensions":{"persistedQuery":{"version":1,"sha256Hash":"21c3a8a41bd7b8a0757ec17510954907f92dd48be6cd2a35280c7e19adaa536a"}}}'
```

## Document

```graphql
mutation RecordCampaignSpend($input: RecordCampaignSpendInput!) { __typename recordCampaignSpend(input: $input) { __typename recorded userErrors { __typename code field message } } }
```

Source: https://developer.missin.co.uk/reference/marketing/record-campaign-spend
