List 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 specified app's checkpoints, newest first. A checkpoint is a saved version of the app, captured as you build.
To deploy a specific checkpoint, pass its id as the checkpoint_id to Deploy an app.
Set branch_id to work with a branch's checkpoints instead of main's. A branch has its own checkpoints and starts with none, so main's checkpoints from before the branch was created aren't included. A branch's checkpoints can't be deployed: Deploy an app works from main only.
<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>
<Note>This endpoint accepts a personal API key. A read-only key is refused, and workspace API keys are not accepted.</Note>
Request
- Base URL: https://app.base44.com
- URL: https://app.base44.com/api/apps/{app_id}/app-checkpoints
- Auth: HTTP bearer
Path parameters
ID of the app.
Query parameters
Maximum number of checkpoints to return, between 1 and 10000. Omit to return all of them.
Number of checkpoints to skip before the page starts, 0 or greater. Combine with limit to page through results.
ID of the branch to work on, as returned by List branches. Omit it to work on the app's main branch.
Response
Successful Response
Example response
[
{
"id": "6886b8d390dc7e2f4a2c91b3",
"name": "Add contact form",
"changes": "Added a contact form to the home page",
"preview_status": "ready",
"build_error": {
"message": "Timed out waiting for another build of this commit to finish"
},
"created_by": "developer@example.com",
"created_date": "2026-08-01T09:15:00",
"last_deployed_at": "2026-08-02T14:30:00",
"git_commit_hash": "a1b2c3d4e5f67890abcdef1234567890abcdef12",
"preview_url": "https://preview.base44.app/6886b8d390dc7e2f4a2c91b3"
}
]Changes
- breaking
queryrequest parameterbranch_idlist-of-types was narrowed by removing typesnull - breaking
queryrequest parameterlimitlist-of-types was narrowed by removing typesnull - breaking
queryrequest parameterskiplist-of-types was narrowed by removing typesnull - breaking
for the
queryrequest parameterlimit, the type changed from no type tointeger - breaking
for the
queryrequest parameterskip, the type changed from no type tointeger - info
for the
queryrequest parameterbranch_id, the type was generalized from no type tostring
- breaking
- info
added the new optional
queryrequest parameterbranch_id
- info