---
title: "Get data version history status"
method: GET
path: "/api/apps/{app_id}/entities/versions/info"
---

# Get data version history status

`GET /api/apps/{app_id}/entities/versions/info`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns whether the app has version history for its entity data, and how far back it goes.

Base44 records every change to an entity's records, and marks points you can go back to as [checkpoints](/api-reference/list-data-checkpoints). Read `state` before calling the other version history endpoints, since they're refused unless it's `enabled`.

Version history comes with the Elite plan and above. Elite keeps 7 days of history, and higher plans keep 30.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>

## Path parameters

- `app_id` string, required — ID of the app.

## Response `200`

The app's version history status.

- VersionHistoryInfo — Whether version history is on for an app, and how far back it goes.
  - `state` 'enabled' | 'needs_upgrade' | 'unavailable', required — Whether the app has version history. `enabled` means Base44 is keeping history and you can list checkpoints and restore from them. `needs_upgrade` means the app's workspace plan doesn't include version history. `unavailable` means version history doesn't cover this app, for example because its data is stored in the workspace's own database.
  - `retention_days` integer, nullable — How many days of history Base44 keeps, or `null` unless `state` is `enabled`.
  - `history_available_since` string, nullable — The earliest moment you can restore to, as a UTC timestamp in ISO 8601 format with a `Z` suffix, when history was paused while the workspace was on a plan without it. It is `null` unless `state` is `enabled`, and also when `retention_days` alone limits how far back you can go.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have editor access to this app, or your API key is read-only.
- `404` — App not found.
- `429` — Rate limit exceeded. The base limit is 150 requests per minute. See [Rate limits](/developers/references/apps-api/get-started/rate-limits) for the multiplier your plan gets.

## Changes

- **2026-09-29** `347e2afcf94a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/entities/versions/info/get.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/idealspot/apis/base44-app-management-api/revisions/e2a6a9f1fe4c?raw)
