---
title: "Traffic"
method: GET
path: "/v1/projects/{projectId}/traffic"
tags: ["Analysis"]
---

# Traffic

`GET /v1/projects/{projectId}/traffic`

## Request

- Base URL: `https://hootlens-api-368877148687.us-east1.run.app`
- URL: `https://hootlens-api-368877148687.us-east1.run.app/v1/projects/{projectId}/traffic`
- Auth: HTTP bearer

Visits per UTC day and by referrer, campaign, device class, browser, operating system and visitor type, with goal conversions. Ranges are limited to 92 days and default to the last 30. Automated visits and test visits are left out.

Required token scopes are listed in x-hootlens-scopes. A signed-in person needs the matching permission on the site instead (the viewer and editor roles are presets of the permissions).

## Path parameters

- `projectId` string, required: An identifier: 1 to 80 letters, digits, underscores or hyphens.

## Query parameters

- `from` integer
- `to` integer
- `group` string

## Response `200`

The traffic summary.

- TrafficSummary
  - `from` integer, required: Epoch milliseconds.
  - `to` integer, required: Epoch milliseconds.
  - `sessions` integer, required
  - `automatedSessions` integer: Site-wide traffic only.
  - `daily` object[], required
    - `day` string, required
    - `sessions` integer, required
    - `automated` integer
  - `goals` GoalStat[], required
    - `goalId` string, required
    - `name` string, required
    - `kind` 'click' | 'page', required
    - `sessions` integer, required
    - `conversions` integer, required
    - `rate` number, nullable, required
    - `interval` number[], nullable, required
    - `since` integer, required: When counting under the goal's current definition began.
  - `referrers` object[], required: Referrer origins; (direct) is a visit without an external referrer. At most 25.
    - `key` string, required
    - `sessions` integer, required
  - `utmSources` object[], required: At most 25.
    - `key` string, required
    - `sessions` integer, required
  - `utmCampaigns` object[], required: At most 25.
    - `key` string, required
    - `sessions` integer, required
  - `deviceClasses` object[], required: Visits by device class.
    - `key` string, required
    - `sessions` integer, required
  - `browsers` object[], required: At most 25.
    - `key` string, required
    - `sessions` integer, required
  - `operatingSystems` object[], required: At most 25.
    - `key` string, required
    - `sessions` integer, required
  - `visitors` object, required
    - `new` integer, required
    - `returning` integer, required
    - `unknown` integer, required
  - `countries` object[]: ISO 3166-1 codes or unknown. At most 25.
    - `key` string, required
    - `sessions` integer, required
  - `channels` object[]: Default channel ids. At most 25.
    - `key` string, required
    - `sessions` integer, required
  - `adNetworks` object[]: Ad network names.
    - `key` string, required
    - `sessions` integer, required
  - `inApps` object[]: In-app browser names.
    - `key` string, required
    - `sessions` integer, required
  - `entryPages` object[]: First page of each visit. At most 25.
    - `key` string, required
    - `sessions` integer, required
  - `notRecorded` object: Visits with no value for each source, so each list plus its gap adds up to sessions. Days before channels, countries and entry pages were counted are here.
    - `countries` integer, required
    - `channels` integer, required
    - `entryPages` integer, required
  - `sourcesCountedFrom` string: The first UTC day (YYYY-MM-DD) channels, countries and entry pages are counted. Set when the range starts before it and visits lack them.
  - `group` object: Set when the request named a page group.
    - `id` string, required
    - `name` string, required
  - `languages` object[]: Page group traffic only.
    - `key` string, required
    - `sessions` integer, required
  - `variants` object[]: Page group traffic only.
    - `key` string, required
    - `sessions` integer, required

## Other responses

- `400`: The request fields are invalid.
- `401`: The credential is missing, expired or revoked.
- `403`: The credential or the person's permissions on the site do not permit this action.
- `404`: The site, or the record inside it, does not exist or the caller is not a member (a non-member cannot tell the two apart).
- `429`: A rate limit or a per-site limit was reached.

---

[API](https://skmtc.dev/hootlens/apis/hoot-lens-api.md) · [All operations](https://skmtc.dev/hootlens/apis/hoot-lens-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hootlens/apis/hoot-lens-api/revisions/f64f8dc7b84e?raw)
