---
title: "UTM aggregate by campaign/source/medium"
method: GET
path: "/utm/summary"
tags: ["UTM"]
---

# UTM aggregate by campaign/source/medium

`GET /utm/summary`

## Request

- Base URL: `https://sending.dev/api/v1`
- URL: `https://sending.dev/api/v1/utm/summary`
- Auth: HTTP bearer

Required scope: `utm:read`.

## Query parameters

- `from` string: ISO date, window start.
- `to` string: ISO date, window end.
- `format` 'csv': `csv` for the export.
- `attribution` 'first' | 'last': Attribution model (default `last`).

## Response `200`

UTM aggregate.

- UtmSummary
  - `attribution` string, required
  - `rows` unknown[], required
    - unknown
  - `unattributed` integer

## Other responses

- `401`: Missing or invalid token.
- `403`: Insufficient scope.
- `422`: Invalid input.

---

[API](https://skmtc.dev/sending/apis/sending-dev-api.md) · [All operations](https://skmtc.dev/sending/apis/sending-dev-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sending/apis/sending-dev-api/revisions/9fe78d2918a1?raw)
