> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List checkpoints

> <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](/developers/references/app-management/get-started/concepts#checkpoints) 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](/api-reference/deploy-an-app).

<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. Workspace API keys are not authorized for it and are rejected with a 403.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/app-checkpoints
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/app-checkpoints:
    get:
      summary: List checkpoints
      description: >-
        <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](/developers/references/app-management/get-started/concepts#checkpoints)
        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](/api-reference/deploy-an-app).


        <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. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>
      operationId: list_checkpoints_api_apps__app_id__app_checkpoints_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app.
            title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              Maximum number of checkpoints to return, between 1 and 10000. Omit
              to return all of them.
            title: Limit
          description: >-
            Maximum number of checkpoints to return, between 1 and 10000. Omit
            to return all of them.
          example: 50
        - name: skip
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              Number of checkpoints to skip before the page starts, 0 or
              greater. Combine with `limit` to page through results.
            title: Skip
          description: >-
            Number of checkpoints to skip before the page starts, 0 or greater.
            Combine with `limit` to page through results.
          example: 0
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CheckpointSummary'
                title: Checkpoints
        '400':
          description: The `limit` is outside 1 to 10000, or `skip` is negative.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, or you used a workspace API key.
            These endpoints take a personal API key.
        '404':
          description: App not found.
        '422':
          description: The `limit` or `skip` is not an integer.
components:
  schemas:
    CheckpointSummary:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
          description: >-
            ID of the checkpoint. Pass it as `checkpoint_id` to [Deploy an
            app](/api-reference/deploy-an-app) to deploy this saved version.
          example: 6886b8d390dc7e2f4a2c91b3
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Name of the checkpoint.
          example: Add contact form
        changes:
          anyOf:
            - type: string
            - type: 'null'
          title: Changes
          description: >-
            Summary of what changed in this checkpoint, or `null` if none was
            recorded.
          example: Added a contact form to the home page
        preview_status:
          anyOf:
            - type: string
              enum:
                - pending
                - building
                - ready
                - failed
            - type: 'null'
          title: Preview Status
          description: >-
            Build status of this checkpoint's preview. Either `pending`,
            `building`, `ready`, or `failed`, or `null` if no preview build was
            attempted.
          example: ready
        created_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Created By
          description: Email of the user who created the checkpoint.
          example: developer@example.com
        created_date:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created Date
          description: >-
            Time the checkpoint was created, as a UTC timestamp in ISO 8601
            format.
          example: '2026-08-01T09:15:00'
        last_deployed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Deployed At
          description: >-
            Time this checkpoint was last deployed to production, as a UTC
            timestamp in ISO 8601 format, or `null` if it has never been
            deployed.
          example: '2026-08-02T14:30:00'
        git_commit_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Git Commit Hash
          description: >-
            Git commit hash of the code captured in this checkpoint, or `null`
            if it has no commit.
          example: a1b2c3d4e5f67890abcdef1234567890abcdef12
        preview_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Preview Url
          description: >-
            URL to preview this checkpoint's build, or `null` if the checkpoint
            has no build.
          example: https://preview.base44.app/6886b8d390dc7e2f4a2c91b3
        is_github_sync:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Github Sync
          description: >-
            Whether the checkpoint came from a GitHub sync (`true`) or an in-app
            change (`false`).
          example: false
      type: object
      title: CheckpointSummary
      description: A saved version of an app.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````