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

# Read conversation messages

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

Returns the app's chat with the AI builder: the messages you sent while building it and the replies the builder produced.

Messages come back oldest first. `limit` and `skip` window the conversation from the newest message backwards, so `limit=20` returns the 20 most recent messages, and `skip=20` with `limit=20` returns the 20 before those. Omit `limit` to return the whole conversation.

An assistant message can have empty `content` when the whole turn is carried by tool calls, so treat an empty message as work the builder did rather than an error. Messages with `hidden` set to `true` are internal and do not appear in the app editor, so skip them to reconstruct the transcript you see there.

<Warning>The response includes fields beyond the ones documented here, and some of them are internal or redacted. Don't use any undocumented fields, as they can change at any time.</Warning>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/chat/full-conversation
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}/chat/full-conversation:
    get:
      summary: Read conversation messages
      description: >-
        <Info>The App Management API is in beta. Endpoints, fields, and behavior
        may still change, so avoid depending on it in production.</Info>


        Returns the app's chat with the AI builder: the messages you sent while
        building it and the replies the builder produced.


        Messages come back oldest first. `limit` and `skip` window the
        conversation from the newest message backwards, so `limit=20` returns
        the 20 most recent messages, and `skip=20` with `limit=20` returns the
        20 before those. Omit `limit` to return the whole conversation.


        An assistant message can have empty `content` when the whole turn is
        carried by tool calls, so treat an empty message as work the builder did
        rather than an error. Messages with `hidden` set to `true` are internal
        and do not appear in the app editor, so skip them to reconstruct the
        transcript you see there.


        <Warning>The response includes fields beyond the ones documented here,
        and some of them are internal or redacted. Don't use any undocumented
        fields, as they can change at any time.</Warning>
      operationId: get_full_conversation_api_api_apps__app_id__chat_full_conversation_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app whose conversation to read.
            title: App Id
          description: ID of the app whose conversation to read.
          example: 6820f3a4e7b91d003c45a1f2
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              Maximum number of messages to return, counted back from the
              newest. Omit to return the whole conversation.
            title: Limit
          description: >-
            Maximum number of messages to return, counted back from the newest.
            Omit to return the whole conversation.
          example: 20
        - name: skip
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              Number of messages to skip, counted back from the newest. Combine
              with `limit` to page back through the conversation.
            default: 0
            title: Skip
          description: >-
            Number of messages to skip, counted back from the newest. Combine
            with `limit` to page back through the conversation.
          example: 0
      responses:
        '200':
          description: The app's conversation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationDetail'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: You don't have access to this app.
        '404':
          description: App not found.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ConversationDetail:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
          description: ID of the conversation.
          example: 1f0c2b7a-9d51-4c3e-8a62-7b4d5e6f8a90
        messages:
          anyOf:
            - items:
                $ref: '#/components/schemas/ConversationMessageSummary'
              type: array
            - type: 'null'
          title: Messages
          description: The requested window of messages, oldest first.
      type: object
      title: ConversationDetail
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ConversationMessageSummary:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
          description: ID of the message.
          example: 7f3a1c88-52d4-4a0e-9b31-2c6f0d8e4a19
        role:
          anyOf:
            - type: string
              enum:
                - user
                - assistant
                - system
            - type: 'null'
          title: Role
          description: >-
            Who produced the message. `user` is a prompt sent to the AI builder,
            `assistant` is the builder's reply, and `system` is a platform
            generated note.
          example: assistant
        content:
          anyOf:
            - type: string
            - type: 'null'
          title: Content
          description: >-
            Text of the message. Empty on assistant turns whose work is carried
            entirely by tool calls, and on internal diff messages.
          example: I added a contact form to the home page.
        file_urls:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: File Urls
          description: URLs of the files attached to the message, or `null` if it has none.
          example:
            - https://storage.base44.com/uploads/mockup.png
        hidden:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Hidden
          description: >-
            Whether the message is internal and hidden from the chat in the app
            editor.
          example: false
        checkpoint_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Checkpoint Id
          description: >-
            ID of the
            [checkpoint](/developers/references/app-management/get-started/overview#checkpoints)
            this message produced, or `null` if it produced none. Pass it as
            `checkpoint_id` to [Deploy an app](/api-reference/deploy-an-app) to
            deploy that version.
          example: 6886b8d390dc7e2f4a2c91b3
        usage:
          anyOf:
            - $ref: '#/components/schemas/MessageUsageSummary'
            - type: 'null'
          description: >-
            Tokens and credits this message consumed, or `null` on messages that
            consumed none.
        metadata:
          anyOf:
            - $ref: '#/components/schemas/MessageMetadataSummary'
            - type: 'null'
          description: Who created the message and when.
      type: object
      title: ConversationMessageSummary
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    MessageUsageSummary:
      properties:
        prompt_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Prompt Tokens
          description: >-
            Tokens the model read for this message, including the conversation
            history it was given.
          example: 18432
        completion_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Completion Tokens
          description: Tokens the model generated for this message.
          example: 742
        credits_charged:
          anyOf:
            - type: number
            - type: 'null'
          title: Credits Charged
          description: Credits charged for this message, or `null` if it was not billed.
          example: 1.5
      type: object
      title: MessageUsageSummary
    MessageMetadataSummary:
      properties:
        created_date:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created Date
          description: Time the message was created.
          example: '2026-08-02T14:30:00'
        created_by_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Created By Email
          description: Email of the user whose turn produced the message.
          example: developer@example.com
      type: object
      title: MessageMetadataSummary
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````