WS metric/entries

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

FieldTypeRequiredDescription
startstring (ISO 8601)yesInclusive start timestamp with timezone
endstring (ISO 8601)yesInclusive end timestamp with timezone
entitiesstring[]yesArray of location, organisation, or recording IDs (matching entityType)
entityType"location" | "organisation"yesAggregation level
facetsstring[]yesWhat to include: segments, summary, aggregates, thumbnails, thumbnails-with-statelems, estimates (see below)
aggregationPeriodstringyesTime granularity — see aggregation period options
breakdownByDimensionsstring[]noSplit data by: entity, taxonomy, age, gender, role
rolesstring[]conditionalRequired when breakdownByDimensions includes role. Values: customer, staff, customer-customer, customer-staff, staff-staff
gendersstring[]conditionalRequired when breakdownByDimensions includes gender. Values: male, female
agesstring[]conditionalRequired when breakdownByDimensions includes age. Values: 0_15, 16_24, 25_34, 35_44, 45_54, 55_64, 65_100
insideRecordingTimesbooleannotrue 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:

ConditionRequired value
aggregationPeriod15min or day
entityType"location"
breakdownByDimensionsmust include "entity"
rolesunset, or ["customer"] only
insideRecordingTimestrue
facetsmust 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 rangeRefresh cadence (UK time)
Today / recent daysEvery ~10 minutes
Yesterday and historical02:00 daily
Last full week03:00 Mondays
Last full month / quarter / year05:00 on the 1st

Custom date ranges are computed on demand and reflect data up to ~15 minutes behind.