> ## 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.

# Get checkpoint files

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

Returns the source files saved in a [checkpoint](/developers/references/app-management/get-started/concepts#checkpoints), so you can read the app's code as it was at that version or compare two versions.

The files are the app's editable source, such as its pages, components, backend functions and entity schemas, rather than every file in its repository. They come from the commit the checkpoint saved. A checkpoint saved before the app's code was kept in git is rebuilt from the copy it stored, which holds fewer files. That copy is also used when a newer checkpoint's commit can't be read and the checkpoint stored one.

Every file comes back in one response, so expect a large response for a big app.

Set `branch_id` to read one of a [branch](/developers/references/app-management/get-started/concepts#branches)'s checkpoints. A checkpoint is found only on its own line: leave `branch_id` out for main's checkpoints, and set it to the branch a branch checkpoint belongs to.

This is limited to 120 requests per minute per app for each workspace's personal API keys, so every key in a workspace shares one allowance. Some workspaces have a different limit.

<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>

<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>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/app-checkpoints/{checkpoint_id}/file-tree
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/app-checkpoints/{checkpoint_id}/file-tree:
    get:
      summary: Get checkpoint files
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Returns the source files saved in a
        [checkpoint](/developers/references/app-management/get-started/concepts#checkpoints),
        so you can read the app's code as it was at that version or compare two
        versions.


        The files are the app's editable source, such as its pages, components,
        backend functions and entity schemas, rather than every file in its
        repository. They come from the commit the checkpoint saved. A checkpoint
        saved before the app's code was kept in git is rebuilt from the copy it
        stored, which holds fewer files. That copy is also used when a newer
        checkpoint's commit can't be read and the checkpoint stored one.


        Every file comes back in one response, so expect a large response for a
        big app.


        Set `branch_id` to read one of a
        [branch](/developers/references/app-management/get-started/concepts#branches)'s
        checkpoints. A checkpoint is found only on its own line: leave
        `branch_id` out for main's checkpoints, and set it to the branch a
        branch checkpoint belongs to.


        This is limited to 120 requests per minute per app for each workspace's
        personal API keys, so every key in a workspace shares one allowance.
        Some workspaces have a different limit.


        <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>


        <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>
      operationId: >-
        get_checkpoint_file_tree_api_apps__app_id__app_checkpoints__checkpoint_id__file_tree_get
      parameters:
        - name: checkpoint_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              ID of the checkpoint, as returned in `id` by [List
              checkpoints](/api-reference/list-checkpoints).
            title: Checkpoint Id
          description: >-
            ID of the checkpoint, as returned in `id` by [List
            checkpoints](/api-reference/list-checkpoints).
          example: 6886b8d390dc7e2f4a2c91b3
        - 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: branch_id
          in: query
          required: false
          schema:
            type: string
            description: >-
              ID of the branch to work on, as returned by [List
              branches](/api-reference/list-branches). Omit it to work on the
              app's main branch.
            title: Branch Id
          description: >-
            ID of the branch to work on, as returned by [List
            branches](/api-reference/list-branches). Omit it to work on the
            app's main branch.
          example: 68f1a2b3c4d5e6f708192a3b
      responses:
        '200':
          description: The checkpoint's source files.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckpointFiles'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have editor access to this app, the app is blocked, or you
            used a workspace API key.
        '404':
          description: >-
            App not found, the app has no checkpoint with this ID on main or on
            the branch in `branch_id`, or no branch you can see has this
            `branch_id`.
        '429':
          description: Rate limit exceeded.
      security:
        - PersonalAccessTokenAuth:
            - read_only
components:
  schemas:
    CheckpointFiles:
      properties:
        files:
          additionalProperties:
            anyOf:
              - type: string
              - additionalProperties: true
                type: object
          type: object
          title: Files
          description: >-
            The checkpoint's source files, keyed by path. Pages, components,
            backend functions, entities and agents are keyed by kind and name
            with no file extension, such as `pages/Home` or
            `functions/sendWelcomeEmail`. A few files use a fixed name, such as
            `layout`. Entity, agent and workflow definitions come back as JSON
            objects, and source files as text.
          example:
            entities/Task:
              name: Task
              properties:
                title:
                  type: string
              type: object
            functions/sendWelcomeEmail: |
              Deno.serve(async (req) => Response.json({ ok: true }));
            pages/Home: |
              export default function Home() {
                return <h1>Welcome</h1>;
              }
      type: object
      required:
        - files
      title: CheckpointFiles
      description: The source files saved in a checkpoint.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        Personal access token, sent as `Authorization: Bearer <token>`. Each
        operation lists the permission it needs: `read_only` or `full_access`. A
        full-access token can call every operation. A read-only token can call
        only the operations that list `read_only`; anything else returns 403
        `read_only_credential_route_not_allowed`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.