---
title: "History held for an entity"
method: GET
path: "/v1/entity/{id}/history/coverage"
tags: ["v1"]
---

# History held for an entity

`GET /v1/entity/{id}/history/coverage`

## Request

- Base URL: `https://api.themeparks.wiki`
- URL: `https://api.themeparks.wiki/v1/entity/{id}/history/coverage`
- Auth: one of:
  - none
  - API key in header `X-API-Key`

Returns the history we hold for this entity, per field: the first and last park-local day we recorded each field (`status`, `queue.STANDBY`, `showtimes` and so on), keyed by the same live-data paths as /live, /history and /history/daily. Fields the entity never reported are left out of `kinds`. Recording runs 2 to 3 days behind live data, so `last` and `lastRecordedAt` usually trail today by that much, even for a field still being published; use /live to see what is current. `retrievableThrough` is the newest day you can ask /history and /history/daily for, usually today. An entity with nothing recorded returns `kinds: {}` with null days, not 404. For a park, the 200 is `HistoryParkCoverageDocument`, a summary across the park's entities. This call takes no parameters, is not paged and has no history window, but it does spend the hourly history budget.

See "Limits" above for the history window and hourly budget.

## Path parameters

- `id` string, required

## Response `200`

Successful response

- union
  - HistoryCoverageDocument: What history we hold for one entity, per field. An entity with nothing recorded is a 200 with `kinds: {}` and null days, not 404. For a PARK the same call returns HistoryParkCoverageDocument.
    - `id` string, required
    - `name` string, required
    - `entityType` string, required
    - `parentId` string, nullable, required
    - `destinationId` string, nullable, required
    - `timezone` string, required: IANA timezone the park-local days are resolved in.
    - `firstRecordedAt` string, date, nullable, required: First park-local day we hold anything for this entity, or null.
    - `lastRecordedAt` string, date, nullable, required: The newest `last` across `kinds`, or null.
    - `retrievableThrough` string, date, nullable, required: The newest day you can ask /history and /history/daily for: usually today for an entity still reporting, or its last recorded day for one that stopped long ago. Null when we hold nothing. Your history window limits how far back you can ask.
    - `kinds` object, required: Keyed by live-data path (status, queue.STANDBY, showtimes and so on), as /live and /history name them. Fields the entity never reported are left out.
    - `knownGaps` HistoryKnownGap[], required: Known archive gaps overlapping what this entity has recorded. Empty when none apply.
      - `from` string, date-time, required: First instant with no data (UTC, inclusive).
      - `to` string, date-time, required: First instant with data again (UTC, exclusive).
      - `firstDay` string, date, required: First park-local day the gap touches, partly or wholly.
      - `lastDay` string, date, required: Last park-local day the gap touches, partly or wholly.
      - `reason` string, required: Why the data is missing, in one sentence.
  - HistoryParkCoverageDocument: What history we hold across a whole PARK, returned by /history/coverage when the entity is a PARK. Its names map to the single-entity document: `fields` is `kinds`, and each `from` and `newest` is a `first` and `last`. It reports depth and breadth, and `knownGaps` lists the verified windows where nothing was observed; it does not search for other missing days.
    - `id` string, required
    - `name` string, required
    - `entityType` string, required
    - `parentId` string, nullable, required
    - `destinationId` string, nullable, required
    - `timezone` string, required: IANA timezone of the park.
    - `summary` HistoryParkCoverageSummary, required: Summary figures for the park, all describing what we hold.
      - `entitiesWithData` integer, required: Entities we hold any history for, including ones the park no longer lists (`stillListed: false`).
      - `archiveFrom` string, date, required: Earliest day anything in this park was recorded, or null.
      - `recordedTo` string, date, required: The newest park-local day anything in this park was recorded, or null.
      - `retrievableThrough` string, date, required: The newest day you can ask for, usually today. Null when nothing is recorded.
      - `measuredOn` string, date, required: The day these figures were computed; they grow over time.
    - `fields` object, required: Keyed by live-data field path, in live-data order.
    - `entities` HistoryParkCoverageEntity[], required: Every entity of the park history is held for.
      - `id` string, required
      - `name` string, required
      - `entityType` string, required
      - `from` string, date, required: The earliest park-local day any field of this entity was recorded.
      - `newest` string, date, required: The newest park-local day any field of this entity was recorded.
      - `fields` string[], required: Field paths held, named as in the single-entity coverage document.
      - `stillListed` boolean, required: false when the park no longer lists this entity. Its history is still available.
    - `knownGaps` HistoryKnownGap[], required: Known archive gaps overlapping what this park has recorded. Empty when none apply.
      - `from` string, date-time, required: First instant with no data (UTC, inclusive).
      - `to` string, date-time, required: First instant with data again (UTC, exclusive).
      - `firstDay` string, date, required: First park-local day the gap touches, partly or wholly.
      - `lastDay` string, date, required: Last park-local day the gap touches, partly or wholly.
      - `reason` string, required: Why the data is missing, in one sentence.

## Other responses

- `404`: Resource not found
- `429`: Too many requests

## Changes

- **2026-10-02** `52d00dcd203a`: 2 info
  - added the required property `oneOf[#/components/schemas/HistoryCoverageDocument]/knownGaps` to the response with the `200` status
  - added the required property `oneOf[#/components/schemas/HistoryParkCoverageDocument]/knownGaps` to the response with the `200` status
- **2026-09-27** `f12e25418ddc`: 3 breaking
  - added `#/components/schemas/HistoryErrorRateLimited, #/components/schemas/RateLimited` to the response body `oneOf` list for the response status `429`
  - the response's body type changed from `object` to no type for status `429`
  - removed the required property `error` from the response with the `429` status
- **2026-09-20** `e1296a297f76`: 12 breaking
  - added `#/components/schemas/HistoryCoverageDocument, #/components/schemas/HistoryParkCoverageDocument` to the response body `oneOf` list for the response status `200`
  - the response's body type changed from `object` to no type for status `200`
  - removed the required property `destinationId` from the response with the `200` status
  - removed the required property `entityType` from the response with the `200` status
  - …8 more
- **2026-09-17** `ed2e12843152`: 1 info
  - added the required property `retrievableThrough` to the response with the `200` status
- **2026-09-17** `c8e66dd51210`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/themeparks/apis/v1-api/changes/v1/entity/:id/history/coverage/get.md)

---

[API](https://skmtc.dev/themeparks/apis/v1-api.md) - [All operations](https://skmtc.dev/themeparks/apis/v1-api/llms.txt) - [OpenAPI document](https://skmtc.dev/themeparks/apis/v1-api/revisions/a9f0cb93c745?raw)
