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

# A conversation with its messages



## OpenAPI

````yaml /openapi/v3.yaml get /api/v2/assistant/conversations/{uid}
openapi: 3.1.0
info:
  title: Semicola Exchange API
  version: 3.0.0-preview
  description: >-
    Platform endpoints of Semicola: sign-in and accounts, members and keys,
    billing, notifications, the Semi assistant (chat stream, confirmations,
    conversations), the MCP App widget host and realtime feeds. Typed agent
    tools live on the MCP server at /mcp/v3.
servers:
  - url: https://api.semicola.com
security:
  - bearerAuth: []
  - sessionCookie: []
tags:
  - name: Auth
  - name: Accounts
  - name: Billing
  - name: Notifications
  - name: Assistant
  - name: Widget host
  - name: Realtime
  - name: Demo
paths:
  /api/v2/assistant/conversations/{uid}:
    get:
      tags:
        - Assistant
      summary: A conversation with its messages
      operationId: getAssistantConversationsByUid
      parameters:
        - name: uid
          in: path
          required: true
          schema:
            type: string
            minLength: 6
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          conversation:
                            type: object
                            properties:
                              uid:
                                type: string
                                minLength: 6
                              title:
                                type:
                                  - string
                                  - 'null'
                              scopeType:
                                type: string
                                enum:
                                  - customer
                                  - advertiser
                              scopeId:
                                type: string
                              workspace:
                                anyOf:
                                  - type: string
                                    enum:
                                      - inventory
                                      - advertisers
                                      - buyers
                                      - agents
                                      - campaigns
                                  - type: 'null'
                              sharingEnabled:
                                type: boolean
                              unreadMentions:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              lastMessageAt:
                                anyOf:
                                  - type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  - type: 'null'
                              createdAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            required:
                              - uid
                              - title
                              - scopeType
                              - scopeId
                              - workspace
                              - sharingEnabled
                              - unreadMentions
                              - lastMessageAt
                              - createdAt
                            additionalProperties: false
                          messages:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 5
                                conversationId:
                                  type: string
                                  minLength: 6
                                role:
                                  type: string
                                  enum:
                                    - user
                                    - assistant
                                    - tool
                                    - event
                                audience:
                                  type: string
                                  enum:
                                    - assistant
                                    - room
                                authorUserId:
                                  anyOf:
                                    - type: integer
                                      exclusiveMinimum: 0
                                      maximum: 9007199254740991
                                    - type: 'null'
                                content:
                                  type: array
                                  items:
                                    anyOf:
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            const: text
                                          text:
                                            type: string
                                        required:
                                          - type
                                          - text
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            const: tool_use
                                          id:
                                            type: string
                                          name:
                                            type: string
                                          input: {}
                                        required:
                                          - type
                                          - id
                                          - name
                                          - input
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            const: tool_result
                                          toolUseId:
                                            type: string
                                          content: {}
                                          isError:
                                            type: boolean
                                        required:
                                          - type
                                          - toolUseId
                                          - content
                                          - isError
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            const: mcp_app_widget
                                          widget:
                                            type: object
                                            properties:
                                              kind:
                                                type: string
                                                enum:
                                                  - page
                                                  - task
                                                  - glance
                                              resourceUri:
                                                type: string
                                                pattern: >-
                                                  ^ui:\/\/semicola\/[a-z0-9-]+\/mcp-app\.html$
                                              title:
                                                type: string
                                              description:
                                                type: string
                                              data: {}
                                              suppressUserMessage:
                                                type: boolean
                                            required:
                                              - kind
                                              - resourceUri
                                              - title
                                              - description
                                              - data
                                              - suppressUserMessage
                                            additionalProperties: false
                                        required:
                                          - type
                                          - widget
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            const: attachments
                                          items:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                attachmentId:
                                                  type: string
                                                  minLength: 5
                                                filename:
                                                  type: string
                                                mimeType:
                                                  type: string
                                              required:
                                                - filename
                                                - mimeType
                                              additionalProperties: false
                                        required:
                                          - type
                                          - items
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                        required:
                                          - type
                                        additionalProperties: {}
                                turnId:
                                  anyOf:
                                    - type: string
                                      minLength: 5
                                    - type: 'null'
                                createdAt:
                                  type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              required:
                                - id
                                - conversationId
                                - role
                                - audience
                                - authorUserId
                                - content
                                - turnId
                                - createdAt
                              additionalProperties: false
                          pendingConfirmations:
                            type: array
                            items:
                              type: object
                              properties:
                                status:
                                  type: string
                                  const: pending_confirmation
                                confirmationUid:
                                  type: string
                                  minLength: 5
                                toolName:
                                  type: string
                                toolKey:
                                  type: string
                                summary:
                                  type: string
                                policy:
                                  type: string
                                  enum:
                                    - always
                                    - tainted
                                resolvedParams:
                                  type: object
                                  propertyNames:
                                    type: string
                                  additionalProperties: {}
                                writeExecuted:
                                  type: boolean
                                  const: false
                                plainAffirmativeAccepted:
                                  type: boolean
                                expiresAt:
                                  type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                risk:
                                  type: string
                                  enum:
                                    - none
                                    - durable
                                    - spend
                                    - external
                              required:
                                - status
                                - confirmationUid
                                - toolName
                                - toolKey
                                - summary
                                - policy
                                - resolvedParams
                                - writeExecuted
                                - plainAffirmativeAccepted
                                - expiresAt
                              additionalProperties: false
                          liveWidget:
                            anyOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - page
                                      - task
                                      - glance
                                  resourceUri:
                                    type: string
                                    pattern: >-
                                      ^ui:\/\/semicola\/[a-z0-9-]+\/mcp-app\.html$
                                  title:
                                    type: string
                                  description:
                                    type: string
                                  data: {}
                                  suppressUserMessage:
                                    type: boolean
                                required:
                                  - kind
                                  - resourceUri
                                  - title
                                  - description
                                  - data
                                  - suppressUserMessage
                                additionalProperties: false
                              - type: 'null'
                        required:
                          - conversation
                          - messages
                          - pendingConfirmations
                          - liveWidget
                        additionalProperties: false
                      - type: 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                          field:
                            type: string
                          details: {}
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - data
                  - error
                additionalProperties: false
        default:
          description: >-
            Error envelope `{data: null, error: {code, message, field?,
            details?}}`.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or OAuth access token.
    sessionCookie:
      type: apiKey
      in: cookie
      name: sc_session

````