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

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. A read-only key is refused even though this endpoint only reads, and 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.


        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. A read-only key is refused even though this
        endpoint only reads, and 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
      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
            your API key is read-only or a workspace API key.
        '404':
          description: App not found, or the app has no checkpoint with this ID.
        '429':
          description: Rate limit exceeded.
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>`.'

````

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