Visit
A visit represents a single in-store presence for a device. A visit can include multiple zone events (e.g., Entrance → Produce → Dairy → Checkout).Session
A session aligns to a visit per device.- A session begins when your Digital Asset (or Wi-Fi logs) is observed in-store and records activity.
- A session ends when activity stops, and no further activity is observed.
- Multiple interruptions/reopens within a 60-minute window are consolidated and billed as a single session.
Zone event
A zone event is a segment of the journey where the visitor is observed within a single zone, with:- entry context (
zone_entered_from) - exit context (
zone_exited_to) - dwell time (
dwell_time_seconds)
Resource [GET]
/bi/visit-journey-events/
This resource supports pagination. Due to increased data volume, pagination allows fetching results in batches (pages) for a specified time interval.
URL Parameters
store_code— Optional
Filter results to a single store.datetime_gte— Required
Start datetime (UTC) inclusive. Format: ISO 8601.datetime_lte— Required
End datetime (UTC) inclusive. Format: ISO 8601.page_size— Optional
Number of results per page.
Default: 1000, Max: 10000page— Optional
Page number (used when paginating).
Note: For large intervals, prefer daily windows (e.g., 24h) and paginate.
Response
The response is paginated:countis the total number of results across the query.nextandpreviousare URLs to fetch the adjacent pages.resultsis an array of zone events.
results contains:
session_id— String
Session identifier (aligned to “visit per device”, stitched within 60 minutes).visit_id— String
Visit identifier (store visit per device).user_id— String | null
User identifier (if available, e.g., logged-in app user). May benull.device_id— String
Pseudonymous device identifier (privacy-safe token).store_name— String
Store name.store_code— String
Store code.zone_name— String
Human-readable zone name.zone_serial_code— String
Internal zone code used for stable referencing across systems.zone_entered_from— String | null
Previous zone label.nullif first event in the visit.zone_exited_to— String | null
Next zone label.nullif last event in the visit.dwell_time_seconds— Integer
Time spent in the zone (seconds).event_start— String
Zone event start timestamp (ISO 8601 UTC).event_end— String
Zone event end timestamp (ISO 8601 UTC).source— String
Source of observation, e.g.app_ble,wifi,camera_fused.
Example response
Notes and common questions
Does one visit always equal one session?For billing and analytics, we treat a session as a visit per device, with 60-minute stitching to avoid multiple app opens during a single visit being counted multiple times. **Can **
user_idbe missing? Yes. If the visitor is not logged in, or if the integration uses privacy-safe pseudonymous identifiers only,
user_id may be null.
**What does **sourcemean? It indicates the signal that produced the event (e.g., Wi-Fi telemetry, app BLE, camera-derived, or fused).