---
title: "Get web traffic over time"
method: GET
path: "/v3/web-analytics/traffic"
tags: ["Web Analytics"]
---

# Get web traffic over time

`GET /v3/web-analytics/traffic`

Daily page views, identified visitors and sessions with independent range totals. Daily identity counts are not additive. Requires web_analytics:read. The authenticated credential determines the business; no business_id override is accepted. Reporting and scope-option calls share a 600-request/hour limit per API key or OAuth installation, in addition to the normal burst and hourly limits. Responses contain recorded analytics, which may be lower than actual traffic because of consent choices, self-traffic exclusion, blockers, and unavailable attribution.

## Query parameters

- `from` string, date, required
- `to` string, date, required
- `timezone` string
- `store_id` integer
- `entity_type` 'landing_page' | 'product' | 'bundle_price_option' | 'store_home' | 'cart' | 'checkout' | 'payment_link' | 'order_detail' | 'order_success' | 'order_invoice' — Customer-facing page surface. The owner is a landing page, product, bundle price option, store, or protected payment-link scope; order surfaces use the store owner, never an order ID.
- `entity_id` string
- `entity_path` string
- `page_id` integer
- `page_host` string
- `page_path` string
- `ad_click` 'paid' | 'organic' | 'meta' | 'google' | 'tiktok'
- `limit` integer

## Response `200`

Success

- WebAnalyticsTraffic — Range totals are calculated independently. Do not sum daily visitors or sessions to obtain range totals because the same identity may appear on multiple days.
  - `buckets` WebAnalyticsTrafficBucket[], required — Daily buckets with recorded traffic. Days without rows may be absent; clients may fill gaps with zero.
    - `day` string, date, required — Calendar day in the requested timezone.
    - `views` integer, required — Distinct recorded page views.
    - `visitors` integer, required — Distinct identified visitors; anonymous events do not create visitor identities.
    - `sessions` integer, required — Distinct identified sessions.
  - `totals` WebAnalyticsCounts, required
    - `views` integer, required — Distinct recorded page views.
    - `visitors` integer, required — Distinct identified visitors; anonymous events do not create visitor identities.
    - `sessions` integer, required — Distinct identified sessions.
  - `from` string, date, required
  - `to` string, date, required
  - `timezone` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `429` — Too Many Requests. Storefront public requests using `X-Scalev-Storefront-Api-Key` or `X-Scalev-Guest-Token` are rate-limited as direct client/browser requests. Machine-authenticated business requests are rate-limited per API key or OAuth installation. Rate-limit responses may be plain text instead of the normal JSON error shape.

## Changes

- **2026-09-20** `af4231e0cad9` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/scalev/apis/nexus-commerce-api/changes/v3/web-analytics/traffic/get.md)

---

[API](https://skmtc.dev/scalev/apis/nexus-commerce-api.md) · [All operations](https://skmtc.dev/scalev/apis/nexus-commerce-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scalev/apis/nexus-commerce-api/revisions/215156c4eee0?raw)
