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

# Post a widget event line or a room message (never invokes the model)



## OpenAPI

````yaml /openapi/v3.yaml post /api/v2/assistant/conversations/{uid}/messages
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}/messages:
    post:
      tags:
        - Assistant
      summary: Post a widget event line or a room message (never invokes the model)
      operationId: postAssistantConversationsByUidMessages
      parameters:
        - name: uid
          in: path
          required: true
          schema:
            type: string
            minLength: 6
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    audience:
                      type: string
                      const: assistant
                    kind:
                      type: string
                      const: event
                    content:
                      type: string
                  required:
                    - audience
                    - kind
                    - content
                - type: object
                  properties:
                    audience:
                      type: string
                      const: room
                    content:
                      type: string
                      minLength: 1
                      maxLength: 8000
                    mentionedUserIds:
                      default: []
                      type: array
                      items:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                  required:
                    - audience
                    - content
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - 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
                      - 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

````