---
title: "Get website sessions by UTM parameter (private beta)"
method: GET
path: "/v1/projects/{projectId}/geo/traffic/web/utm"
tags: ["GEO"]
---

# Get website sessions by UTM parameter (private beta)

`GET /v1/projects/{projectId}/geo/traffic/web/utm`

## Request

- Base URL: `https://api.usenotra.com`
- URL: `https://api.usenotra.com/v1/projects/{projectId}/geo/traffic/web/utm`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/usenotra/apis/notra-api/docs/v1/projects/:projectId/geo/traffic/web/utm/get.ts> (a function with typed inputs; its response is checked against the schema)

Private beta: workspaces without web analytics access get 403. Sessions and visitors per value of one UTM parameter (source, medium, campaign, term or content), counted on each session's first page, against the previous window of the same length. Returns the top 25 values. Includes completed history imports when no path is set. Term and content from visits Notra tracked itself cover at most the last 90 days. Campaign, term and content values that look like an email address, a UUID or a token are reported as `:id`.

## Path parameters

- `projectId` string, required

## Query parameters

- `days` integer: Rolling window size in days. Ignored when from/to are set.
- `from` string
- `to` string
- `host` string: Hostname to filter on, such as www.example.com. Subdomains are included. Omit for every host.
- `path` string: Only count this exact page path, such as /pricing.
- `sites` 'exclude': `exclude` leaves out traffic to sites hosted on Notra Sites.
- `dimension` 'source' | 'medium' | 'campaign' | 'term' | 'content', required: UTM parameter to group sessions by.

## Response `200`

UTM report fetched successfully

- GeoWebAnalyticsUtmResponse
  - `dimension` 'source' | 'medium' | 'campaign' | 'term' | 'content', required
  - `rows` object[], required
    - `value` string, required: Source and medium are lowercased. Campaign, term and content values that look like an email address, a UUID or a token are reported as `:id`.
    - `sessions` integer, required
    - `previousSessions` integer, required
    - `visitors` integer, required
  - `organization` object, required
    - `id` string, required
    - `slug` string, required
    - `name` string, required
    - `logo` string, nullable, required

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key
- `402`: GEO plan or available AI credits required
- `403`: Forbidden
- `404`: Organization, project or resource not found
- `409`: Conflict
- `500`: Internal server error
- `503`: Authentication or billing service unavailable

## Changes

- **2026-11-08** `41d74f2b285c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usenotra/apis/notra-api/changes/v1/projects/:projectId/geo/traffic/web/utm/get.md)

---

[API](https://skmtc.dev/usenotra/apis/notra-api.md) - [All operations](https://skmtc.dev/usenotra/apis/notra-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usenotra/apis/notra-api/revisions/41d74f2b285c?raw)
