Spoar
Reads

Live events

GET
/v2/projects/{project}/realtime/events

Long-polls: without after the last five minutes at once, with it the newer events as soon as they arrive or an empty page after 25 seconds. Accept: text/event-stream streams the same pages as server-sent events. Visitor and session ids need detail access.

Authorization

AuthorizationBearer <token>

An API token from POST /v2/tokens (at_live_...), or a project's secret key (sk_...) for server-side ingest.

In: header

Path Parameters

project*string

The project id, as listed by GET /v2/projects.

Length1 <= length

Query Parameters

traffic?string

Which traffic is counted. human (the default) leaves out bot scores of 50 and up, your own visits and localhost; bots keeps only scores of 50 and up; internal keeps only your own visits; all keeps everything.

Value in

  • "human"
  • "bots"
  • "internal"
  • "all"
environment?string

production (the default) leaves preview deployments out, preview keeps only them, all keeps both.

Value in

  • "production"
  • "preview"
  • "all"
filter?

Sent as filter[<dimension>]=value, or !value to exclude; repeatable across dimensions.

limit?|

Events per poll, 1 to 100; default 50.

Range1 <= value <= 100
after?string

The nextCursor of the previous poll; without it the last five minutes come at once. A reconnecting event stream sends Last-Event-ID instead.

Length1 <= length

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v2/projects/string/realtime/events"
{  "data": [    {      "id": "48213",      "project": "remcostoeten.nl",      "name": "pageview",      "ts": "2026-09-27T16:39:58.412Z",      "path": "/blog/rebuilding-analytics",      "country": "NL",      "device": "desktop",      "visitor": "8c4e1f0a-2b3c-4d5e-8f60-718293a4b5c6",      "session": "f1a2b3c4-d5e6-4f70-8a91-b2c3d4e5f607"    },    {      "id": "48214",      "project": "remcostoeten.nl",      "name": "signup",      "ts": "2026-09-27T16:39:59.901Z",      "path": "/blog/rebuilding-analytics",      "country": "NL",      "device": "desktop",      "visitor": "8c4e1f0a-2b3c-4d5e-8f60-718293a4b5c6",      "session": "f1a2b3c4-d5e6-4f70-8a91-b2c3d4e5f607"    }  ],  "nextCursor": "eyJyIjoiMjAyNi0wOS0yNyAxNjo0MDowMC4xMjM0NTYrMDAiLCJpIjoiNDgyMTQifQ"}