---
title: "Conversion aggregate by goal"
method: GET
path: "/utm/conversions/stats"
tags: ["UTM"]
---

# Conversion aggregate by goal

`GET /utm/conversions/stats`

## Request

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

Per conversion name: volumes, unique contacts, revenue, average time to conversion (from first touch) and average touchpoints in the lookback window. Required scope: `utm:read`.

## Query parameters

- `from` string: ISO date, window start.
- `to` string: ISO date, window end.

## Response `200`

Aggregate by goal.

- UtmConversionStats
  - `data` object[], required
    - `name` string, required
    - `conversions` integer, required
    - `contacts` integer, required
    - `revenueCents` integer, required
    - `avgTimeToConvertSeconds` integer, nullable
    - `avgTouchpoints` number, nullable
    - `firstAt` string, date-time
    - `lastAt` string, date-time

## 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)
