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

# Batch Get App Conversations

> Get a batch of sandboxed conversations given their ids. Return None for any missing.

Accepts UUIDs as strings (with or without dashes) and converts them internally.
Returns 400 Bad Request if any string cannot be converted to a valid UUID.



## OpenAPI

````yaml /openapi/openhands-cloud.json get /api/v1/app-conversations
openapi: 3.1.0
info:
  title: OpenHands
  description: 'OpenHands: Code Less, Make More'
  version: 0.0.1
servers: []
security: []
paths:
  /api/v1/app-conversations:
    get:
      tags:
        - Conversations
      summary: Batch Get App Conversations
      description: >-
        Get a batch of sandboxed conversations given their ids. Return None for
        any missing.


        Accepts UUIDs as strings (with or without dashes) and converts them
        internally.

        Returns 400 Bad Request if any string cannot be converted to a valid
        UUID.
      operationId: batch_get_app_conversations_api_v1_app_conversations_get
      parameters:
        - name: ids
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
            title: Ids
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  anyOf:
                    - $ref: '#/components/schemas/AppConversation'
                    - type: 'null'
                title: >-
                  Response Batch Get App Conversations Api V1 App Conversations
                  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    AppConversation:
      properties:
        id:
          type: string
          title: Id
        created_by_user_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Created By User Id
        sandbox_id:
          type: string
          title: Sandbox Id
        selected_repository:
          anyOf:
            - type: string
            - type: 'null'
          title: Selected Repository
        selected_branch:
          anyOf:
            - type: string
            - type: 'null'
          title: Selected Branch
        git_provider:
          anyOf:
            - $ref: '#/components/schemas/ProviderType'
            - type: 'null'
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
        trigger:
          anyOf:
            - $ref: '#/components/schemas/ConversationTrigger'
            - type: 'null'
        pr_number:
          items:
            type: integer
          type: array
          title: Pr Number
        llm_model:
          anyOf:
            - type: string
            - type: 'null'
          title: Llm Model
        agent_kind:
          type: string
          title: Agent Kind
          default: openhands
        metrics:
          anyOf:
            - $ref: '#/components/schemas/MetricsSnapshot'
            - type: 'null'
        parent_conversation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Parent Conversation Id
        sub_conversation_ids:
          items:
            type: string
          type: array
          title: Sub Conversation Ids
        public:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Public
        tags:
          additionalProperties:
            type: string
          type: object
          title: Tags
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        sandbox_status:
          $ref: '#/components/schemas/SandboxStatus'
          description: >-
            Current sandbox status. Will be MISSING if the sandbox does not
            exist.
          default: MISSING
        execution_status:
          anyOf:
            - $ref: '#/components/schemas/ConversationExecutionStatus'
            - type: 'null'
          description: >-
            Current agent status. Will be None if the sandbox_status is not
            RUNNING
        conversation_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Conversation Url
          description: The URL where the conversation may be accessed
        session_api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Session Api Key
          description: The Session Api Key for REST operations.
        acp_server:
          anyOf:
            - type: string
            - type: 'null'
          title: Acp Server
          description: >-
            Active ACP provider key ('claude-code', 'codex', 'gemini-cli'), else
            None.


            A typed projection of the ``acpserver`` tag (same as agent-canvas)
            so

            the conversation UI can resolve a provider brand label without a
            dedicated

            column. Riding the tag keeps a single source of truth that

            round-trips through the DB ``tags`` column for free. Gated on

            ``agent_kind`` so a stray tag never reports a provider for an
            OpenHands

            conversation.
          readOnly: true
        launched_agent_profile:
          anyOf:
            - $ref: '#/components/schemas/LaunchedAgentProfile'
            - type: 'null'
          description: >-
            Provenance of the Agent Profile that launched this conversation,
            else None.


            A typed projection of the ``agentprofileid`` /
            ``agentprofilerevision``

            tags (same pattern as ``acp_server``), so it round-trips through the
            DB

            ``tags`` column for free. Canvas reads exactly

            ``launched_agent_profile { agent_profile_id, revision }``.
          readOnly: true
      type: object
      required:
        - created_by_user_id
        - sandbox_id
        - acp_server
        - launched_agent_profile
      title: AppConversation
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ProviderType:
      type: string
      enum:
        - github
        - gitlab
        - bitbucket
        - bitbucket_data_center
        - forgejo
        - azure_devops
        - enterprise_sso
      title: ProviderType
    ConversationTrigger:
      type: string
      enum:
        - resolver
        - gui
        - suggested_task
        - openhands_api
        - slack
        - microagent_management
        - jira
        - jira_dc
        - linear
        - bitbucket
        - automation
      title: ConversationTrigger
    MetricsSnapshot:
      properties:
        model_name:
          type: string
          title: Model Name
          description: Name of the model
          default: default
        accumulated_cost:
          type: number
          minimum: 0
          title: Accumulated Cost
          description: Total accumulated cost, must be non-negative
          default: 0
        max_budget_per_task:
          anyOf:
            - type: number
            - type: 'null'
          title: Max Budget Per Task
          description: Maximum budget per task
        accumulated_token_usage:
          anyOf:
            - $ref: '#/components/schemas/TokenUsage'
            - type: 'null'
          description: Accumulated token usage across all calls
      type: object
      title: MetricsSnapshot
      description: |-
        A snapshot of metrics at a point in time.

        Does not include lists of individual costs, latencies, or token usages.
    SandboxStatus:
      type: string
      enum:
        - STARTING
        - RUNNING
        - PAUSED
        - ERROR
        - MISSING
      title: SandboxStatus
    ConversationExecutionStatus:
      type: string
      enum:
        - idle
        - running
        - paused
        - waiting_for_confirmation
        - finished
        - error
        - stuck
        - deleting
      title: ConversationExecutionStatus
      description: Enum representing the current execution state of the conversation.
    LaunchedAgentProfile:
      properties:
        agent_profile_id:
          type: string
          format: uuid
          title: Agent Profile Id
          description: Stable id of the agent profile that launched the conversation.
        revision:
          type: integer
          minimum: 0
          title: Revision
          description: Revision of the agent profile at launch time.
      type: object
      required:
        - agent_profile_id
        - revision
      title: LaunchedAgentProfile
      description: >-
        Provenance snapshot recorded when an agent profile launches a
        conversation.


        Stored on ``StoredConversation`` and projected onto ``ConversationInfo``
        so

        ts-client ``deriveSwitchPlan`` can identify which agent profile is
        current

        without fragile settings-comparison. See #3720.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    TokenUsage:
      properties:
        model:
          type: string
          title: Model
          default: ''
        prompt_tokens:
          type: integer
          minimum: 0
          title: Prompt Tokens
          description: Prompt tokens must be non-negative
          default: 0
        completion_tokens:
          type: integer
          minimum: 0
          title: Completion Tokens
          description: Completion tokens must be non-negative
          default: 0
        cache_read_tokens:
          type: integer
          minimum: 0
          title: Cache Read Tokens
          description: Cache read tokens must be non-negative
          default: 0
        cache_write_tokens:
          type: integer
          minimum: 0
          title: Cache Write Tokens
          description: Cache write tokens must be non-negative
          default: 0
        reasoning_tokens:
          type: integer
          minimum: 0
          title: Reasoning Tokens
          description: Reasoning tokens must be non-negative
          default: 0
        context_window:
          type: integer
          minimum: 0
          title: Context Window
          description: Context window must be non-negative
          default: 0
        per_turn_token:
          type: integer
          minimum: 0
          title: Per Turn Token
          description: Per turn tokens must be non-negative
          default: 0
        response_id:
          type: string
          title: Response Id
          default: ''
      type: object
      title: TokenUsage
      description: Metric tracking detailed token usage per completion call.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-Access-Token

````