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 [Permalink](/content/api/metrics/traffic/entries/#body-parameters/index.html)

| 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](/content/api/metrics/overview#aggregation-period-options/index.html) |
| `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 [Permalink](/content/api/metrics/traffic/entries/#example-request/index.html)

```
{
  "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 [Permalink](/content/api/metrics/traffic/entries/#example-response/index.html)

```
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 [Permalink](/content/api/metrics/traffic/entries/#estimates-facet/index.html)

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 `[\
