Docs·Visitors and people

GET/api/v1/event/analytics/web-analytics/visitors/:visitorId/activity

Get a visitor's activity

Page views and events over a whole history, newest first and paged: the activity behind a row of /visitors. For an identified visitor it covers the person: every browser they used and the payments matched to them. For an anonymous visitor it covers that one browser. Session ends are left out and no date range applies.

This endpoint takes a visitor id only: a person id returns an empty list. To start from a person id, call /events/feed with profileId.

Keys: an account key. Getting started explains both kinds.

Parameters

PropInTypeNotes
visitorIdpathstringA visitor id, as id on a visitor row. A person id matches nothing here.
contactListIdquerystringThe id of the audience (the tracked site) to read, a UUID: anything else returns a 400. You must be a member of the workspace the audience belongs to, or the call returns a 401. An id that matches no audience is not an error: the call returns no data.
pagequerynumberPage number, starting at 0.
pageSizequerynumberRows per page.

Response

PropTypeNotes
contentVisitorActivityItem[]One item per page view or event, newest first.
sizenumberThe pageSize you asked for.
pagenumberThe page you asked for, counted from 0.
totalItemsnumberRows across all pages.
totalPagesnumbertotalItems divided by size, rounded up.

Each item in content

PropTypeNotes
type``pageview` \`event``
labelstringThe page path for a page view; for an event, its name, or its type when it has no name.
timestampstringWhen it happened, in UTC to the second, such as 2026-09-30T14:03:12Z.
parametersRecord_string.string_The event's properties, as keys with string values. Left out on page views and on events without properties. On payments, revenueReportingAmount and reportingCurrency give the amount in the audience's current reporting currency.

Request

curl 'https://app.spreelytics.com/api/v1/event/analytics/web-analytics/visitors/:visitorId/activity?contactListId=…&page=…&pageSize=…' \
  -H 'Authorization: Bearer YOUR_API_KEY'
const url = new URL('https://app.spreelytics.com/api/v1/event/analytics/web-analytics/visitors/:visitorId/activity');
url.searchParams.set('contactListId', '…');
url.searchParams.set('page', '…');
url.searchParams.set('pageSize', '…');

const res = await fetch(url, {
  headers: { Authorization: 'Bearer YOUR_API_KEY' },
});
const data = await res.json();
import requests

res = requests.get(
    "https://app.spreelytics.com/api/v1/event/analytics/web-analytics/visitors/:visitorId/activity",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    params={"contactListId": "…", "page": "…", "pageSize": "…"},
)
data = res.json()

Response

{
  "content": [
    {
      "type": "pageview",
      "label": "string",
      "timestamp": "string",
      "parameters": {}
    }
  ],
  "size": 0,
  "page": 0,
  "totalItems": 0,
  "totalPages": 0
}

See your own numbers today.

Free up to 100k events a month · no credit card

Contact

Tell us what you need.

A real person reads these. We usually reply within one working day.

Or email us directly at contact@spreelytics.com.