List data checkpoints

Changed on

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

Returns the points in the app's entity data history that you can download or restore to, newest first.

Base44 adds one when an entity's records change (at most one every 5 minutes for each entity), when its schema changes, and just before a restore rewrites it. The list covers every entity in the app unless you name some with entity_name, and only reaches back as far as retention_days from Get data version history status.

Results use cursor-based pagination. Pass next_cursor from one response as cursor on the next request, and keep the same filters.

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

get/api/apps/{app_id}/entities/versions/checkpoints

Request

  • Base URL
    https://app.base44.com
  • URL
    https://app.base44.com/api/apps/{app_id}/entities/versions/checkpoints
  • Auth
    HTTP bearer

Path parameters

app_idstring required

ID of the app.

Query parameters

entity_namestring[]

Entity to list checkpoints for. Repeat it to list several, as in ?entity_name=Invoice&entity_name=Customer, up to 200. Leave it out to list every entity's checkpoints. A name the app has no entity for matches nothing rather than failing.

cursorstring

Pagination cursor from previous response.

limitinteger

Items per page. Max 200. Defaults to 50, and a larger value is treated as 200.

fromstring

Earliest data_as_of to include, as an ISO 8601 timestamp such as 2026-06-01T00:00:00Z. A timestamp with no offset is read as UTC.

tostring

Only include checkpoints whose data_as_of is before this moment, as an ISO 8601 timestamp such as 2026-06-08T00:00:00Z. A timestamp with no offset is read as UTC.

Response

One page of checkpoints.

next_cursorstring nullable

Cursor for fetching the next page. The value is null if there are no more pages. A full page always carries one, so the page after it can come back empty.

Example response

{
  "items": [
    {
      "checkpoint_id": "68a1c2d3e4f5a6b7c8d9e0f1",
      "data_as_of": "2026-06-04T14:07:02.115000Z",
      "entity_name": "Invoice",
      "trigger_type": "crud"
    }
  ],
  "next_cursor": "gAAAAABn7vJ..."
}

Changes

    • breaking

      query request parameter cursor list-of-types was narrowed by removing types null

    • breaking

      query request parameter entity_name list-of-types was narrowed by removing types null

    • breaking

      query request parameter from list-of-types was narrowed by removing types null

    • breaking

      query request parameter to list-of-types was narrowed by removing types null

    • breaking

      for the query request parameter entity_name, the type changed from no type to array

    • info

      for the query request parameter cursor, the type was generalized from no type to string

    • info

      for the query request parameter from, the type was generalized from no type to string

    • info

      for the query request parameter to, the type was generalized from no type to string

    • info

      the security scope read_only was added to the endpoint's security scheme PersonalAccessTokenAuth

    • info

      the security scope full_access was removed from the endpoint's security scheme PersonalAccessTokenAuth