Entries
Location entrants — people who entered the location through its main entrance.
Returns the count of people who entered the location, as a time-series. The primary footfall metric — and the denominator behind capture rate, conversion rate, and many area/zone “per entrant” routes.
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
start | string (ISO 8601) | yes | Inclusive start timestamp with timezone |
end | string (ISO 8601) | yes | Inclusive end timestamp with timezone |
entities | string[] | yes | Array of location, organisation, or recording IDs (matching entityType) |
entityType | "location" | "organisation" | yes | Aggregation level |
facets | string[] | yes | What to include: segments, summary, aggregates, thumbnails, thumbnails-with-statelems, estimates (see below) |
aggregationPeriod | string | yes | Time granularity — see aggregation period options |
breakdownByDimensions | string[] | no | Split data by: entity, taxonomy, age, gender, role |
roles | string[] | conditional | Required when breakdownByDimensions includes role. Values: customer, staff, customer-customer, customer-staff, staff-staff |
genders | string[] | conditional | Required when breakdownByDimensions includes gender. Values: male, female |
ages | string[] | conditional | Required when breakdownByDimensions includes age. Values: 0_15, 16_24, 25_34, 35_44, 45_54, 55_64, 65_100 |
insideRecordingTimes | boolean | no | true to restrict to opening hours only. Default false |
Example request
{
"action": "metric",
"data": {
"id": "req-001",
"route": "entries",
"body": {
"start": "2024-04-01T00:00:00.000Z",
"end": "2024-04-07T23:59:59.000Z",
"entities": ["64a1b2c3d4e5f6a7b8c9d0e3"],
"entityType": "location",
"facets": ["segments", "summary"],
"aggregationPeriod": "day"
}
}
}
Example response
req-001|0|0|{
"segments": [
{ "index": "2024-04-01T00:00:00.000", "location": "64a1b2c3d4e5f6a7b8c9d0e3", "entries": 1284 },
{ "index": "2024-04-02T00:00:00.000", "location": "64a1b2c3d4e5f6a7b8c9d0e3", "entries": 1102 }
],
"summary": [
{ "location": "64a1b2c3d4e5f6a7b8c9d0e3", "entries": 8234 }
],
"meta": {
"units": {
"entries": "peopleCount"
}
}
}
Estimates facet
When estimates is included in facets, the response carries imputed values for periods affected by camera downtime — pulled from a view that combines per-camera uptime with historic patterns. Each segment then includes an extra estimated (count) and is_estimated (boolean) field alongside entries.
Estimates only fires when all of these are true:
| Condition | Required value |
|---|---|
aggregationPeriod | 15min or day |
entityType | "location" |
breakdownByDimensions | must include "entity" |
roles | unset, or ["customer"] only |
insideRecordingTimes | true |
facets | must include "segments" and "estimates" |
Outside these conditions the facet is silently ignored — no error is returned, but the response will not include estimated / is_estimated fields.
Update frequency
Line events refresh throughout the day:
| Date range | Refresh cadence (UK time) |
|---|---|
| Today / recent days | Every ~10 minutes |
| Yesterday and historical | 02:00 daily |
| Last full week | 03:00 Mondays |
| Last full month / quarter / year | 05:00 on the 1st |
Custom date ranges are computed on demand and reflect data up to ~15 minutes behind.