Pomo Agentic Conversations API

The agentic-conversations API from Pomo — 7 operation(s) for agentic-conversations.

Operations 10

POST /api/agentic/conversations Create Conversation #
GET /api/agentic/conversations List Conversations #
POST /api/agentic/conversations/{conversation_id}/attachments Upload Attachments #
GET /api/agentic/conversations/inbox-summary Get Conversation Inbox Summary #
GET /api/agentic/conversations/{conversation_id} Get Conversation #
PATCH /api/agentic/conversations/{conversation_id} Update Conversation #
DELETE /api/agentic/conversations/{conversation_id} Delete Conversation #
PATCH /api/agentic/conversations/{conversation_id}/messages/{message_id}/feedback Update Message Feedback #
PATCH /api/agentic/conversations/{conversation_id}/messages/{message_id}/tool-result Update Message Tool Result #
POST /api/agentic/conversations/{conversation_id}/mark-read Mark Conversation Read #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pomo-agentic-conversations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pomo-agentic-conversations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: GPT Backend Agentic Conversations API
  version: 0.1.0
servers:
- url: https://api.usepomo.ai
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: agentic-conversations
paths:
  /api/agentic/conversations:
    post:
      tags:
      - agentic-conversations
      summary: Create Conversation
      description: 'Create a new agent conversation.


        Validates:

        - User belongs to organization

        - Company profile belongs to organization

        - User has access to company profile


        Returns the created conversation.'
      operationId: create_conversation_api_agentic_conversations_post
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentConversationCreate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentConversationResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - agentic-conversations
      summary: List Conversations
      description: 'List user''s conversations with pagination.


        Filters:

        - By organization (required)

        - By company profile (required)

        - Only active conversations (is_active=True)

        - Only conversations with at least one message

        - Only user''s conversations


        Sorted by last_message_at descending (most recent first).'
      operationId: list_conversations_api_agentic_conversations_get
      security:
      - HTTPBearer: []
      parameters:
      - name: organization_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          description: Organization ID to filter by
          title: Organization Id
        description: Organization ID to filter by
      - name: company_profile_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          description: Company profile ID to filter by
          title: Company Profile Id
        description: Company profile ID to filter by
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: Page number (1-indexed)
          default: 1
          title: Page
        description: Page number (1-indexed)
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Items per page (max 100)
          default: 20
          title: Page Size
        description: Items per page (max 100)
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentConversationListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/agentic/conversations/{conversation_id}/attachments:
    post:
      tags:
      - agentic-conversations
      summary: Upload Attachments
      description: Bind uploads to one v2 conversation and return opaque handles only.
      operationId: upload_attachments_api_agentic_conversations__conversation_id__attachments_post
      security:
      - HTTPBearer: []
      parameters:
      - name: conversation_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Conversation Id
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_upload_attachments_api_agentic_conversations__conversation_id__attachments_post'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationAttachmentsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/agentic/conversations/inbox-summary:
    get:
      tags:
      - agentic-conversations
      summary: Get Conversation Inbox Summary
      description: Return lightweight unread/preview metadata for closed-state Markee UI.
      operationId: get_conversation_inbox_summary_api_agentic_conversations_inbox_summary_get
      security:
      - HTTPBearer: []
      parameters:
      - name: organization_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          description: Organization ID to filter by
          title: Organization Id
        description: Organization ID to filter by
      - name: company_profile_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Company profile ID to filter by
          title: Company Profile Id
        description: Company profile ID to filter by
      - name: preview_limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 10
          minimum: 1
          description: Number of preview conversations to return
          default: 3
          title: Preview Limit
        description: Number of preview conversations to return
      - name: force_refresh
        in: query
        required: false
        schema:
          type: boolean
          description: Bypass the shared response cache
          default: false
          title: Force Refresh
        description: Bypass the shared response cache
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentConversationInboxSummaryResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/agentic/conversations/{conversation_id}:
    get:
      tags:
      - agentic-conversations
      summary: Get Conversation
      description: 'Get a specific conversation with all messages.


        Validates:

        - Conversation exists

        - User owns the conversation

        - User has access to organization and company profile'
      operationId: get_conversation_api_agentic_conversations__conversation_id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: conversation_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Conversation Id
      - name: company_profile_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Company profile ID to scope this lookup
          title: Company Profile Id
        description: Company profile ID to scope this lookup
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentConversationWithMessages'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - agentic-conversations
      summary: Update Conversation
      description: 'Update a conversation''s title and/or metadata.


        Only the conversation owner can update it.'
      operationId: update_conversation_api_agentic_conversations__conversation_id__patch
      security:
      - HTTPBearer: []
      parameters:
      - name: conversation_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Conversation Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentConversationUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentConversationResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - agentic-conversations
      summary: Delete Conversation
      description: 'Soft delete a conversation (sets is_active=False).


        Only the conversation owner can delete it.

        Messages are preserved but conversation won''t appear in lists.

        Linked proactive tasks are paused so no further runs are enqueued.'
      operationId: delete_conversation_api_agentic_conversations__conversation_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: conversation_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Conversation Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/agentic/conversations/{conversation_id}/messages/{message_id}/feedback:
    patch:
      tags:
      - agentic-conversations
      summary: Update Message Feedback
      description: 'Update feedback for an assistant message.


        Only the conversation owner can update feedback.

        Feedback can be ''up'', ''down'', or null (to clear).'
      operationId: update_message_feedback_api_agentic_conversations__conversation_id__messages__message_id__feedback_patch
      security:
      - HTTPBearer: []
      parameters:
      - name: conversation_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Conversation Id
      - name: message_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Message Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageFeedbackRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentMessageResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/agentic/conversations/{conversation_id}/messages/{message_id}/tool-result:
    patch:
      tags:
      - agentic-conversations
      summary: Update Message Tool Result
      description: 'Patch a tool call''s result on an assistant message.


        Used by the frontend after an async artifact generation job completes

        so generated document/product page context is persisted in the message and

        available to the LLM on subsequent turns.'
      operationId: update_message_tool_result_api_agentic_conversations__conversation_id__messages__message_id__tool_result_patch
      security:
      - HTTPBearer: []
      parameters:
      - name: conversation_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Conversation Id
      - name: message_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Message Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolResultUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentMessageResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/agentic/conversations/{conversation_id}/mark-read:
    post:
      tags:
      - agentic-conversations
      summary: Mark Conversation Read
      description: 'Mark conversation as read.


        Called by frontend when SSE message arrives for active conversation.

        This is the primary way to clear the unread indicator in real-time.'
      operationId: mark_conversation_read_api_agentic_conversations__conversation_id__mark_read_post
      security:
      - HTTPBearer: []
      parameters:
      - name: conversation_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Conversation Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarkReadResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PublicExecutionStep:
      properties:
        step_id:
          anyOf:
          - type: string
            maxLength: 128
            pattern: ^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$
          - type: 'null'
          title: Step Id
          description: Optional stable machine identity for reconciling one public step across live snapshot revisions. It is not user-visible.
        category:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$
          title: Category
        code:
          type: string
          maxLength: 128
          minLength: 1
          pattern: ^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$
          title: Code
        state:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$
          title: State
        terminal:
          type: boolean
          title: Terminal
        title:
          type: string
          maxLength: 160
          minLength: 1
          title: Title
        detail:
          anyOf:
          - type: string
            maxLength: 500
            minLength: 1
          - type: 'null'
          title: Detail
        duration_ms:
          anyOf:
          - type: integer
            maximum: 9007199254740991.0
            minimum: 0.0
          - type: 'null'
          title: Duration Ms
        cost_micros:
          anyOf:
          - type: integer
            minimum: 0.0
          - type: 'null'
          title: Cost Micros
        input_tokens:
          anyOf:
          - type: integer
            minimum: 0.0
          - type: 'null'
          title: Input Tokens
        output_tokens:
          anyOf:
          - type: integer
            minimum: 0.0
          - type: 'null'
          title: Output Tokens
        cached_input_tokens:
          anyOf:
          - type: integer
            minimum: 0.0
          - type: 'null'
          title: Cached Input Tokens
        result_count:
          anyOf:
          - type: integer
            maximum: 1000000.0
            minimum: 0.0
          - type: 'null'
          title: Result Count
        total_count:
          anyOf:
          - type: integer
            maximum: 1000000.0
            minimum: 0.0
          - type: 'null'
          title: Total Count
        result_state:
          anyOf:
          - type: string
            maxLength: 64
            minLength: 1
            pattern: ^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$
          - type: 'null'
          title: Result State
      type: object
      required:
      - category
      - code
      - state
      - terminal
      - title
      title: PublicExecutionStep
      description: 'One bounded, presentation-ready item in a public execution snapshot.


        The optional result fields are public operational facts, never model

        reasoning or raw tool arguments. They let clients explain what a step

        accomplished without parsing display copy.'
    AgentMessageResponse:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: Message ID
        conversation_id:
          type: string
          format: uuid
          title: Conversation Id
          description: Parent conversation ID
        producer_job_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Producer Job Id
          description: Durable chat job that produced this message pair
        role:
          type: string
          title: Role
          description: 'Message role: ''user'' or ''assistant'''
        content:
          type: string
          title: Content
          description: Message text content
        ui_tool_calls:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Ui Tool Calls
          description: User-facing tool payloads rendered as chat cards
        web_citations:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Web Citations
          description: Web citations extracted from tool payloads for message-level rendering.
        citations:
          anyOf:
          - items:
              $ref: '#/components/schemas/ResolvedCitationResponse'
            type: array
          - type: 'null'
          title: Citations
          description: Canonical claim-linked Markee v2 citations. Internal evidence locators are intentionally excluded.
        workspace_attributions:
          anyOf:
          - items:
              $ref: '#/components/schemas/ResolvedWorkspaceAttributionResponse'
            type: array
          - type: 'null'
          title: Workspace Attributions
          description: Server-resolved workspace source labels without private locators.
        message_metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Message Metadata
          description: Structured UI metadata for message-level affordances.
        tokens_used:
          anyOf:
          - type: integer
          - type: 'null'
          title: Tokens Used
          description: Total tokens consumed (input + output)
        turns:
          anyOf:
          - type: integer
          - type: 'null'
          title: Turns
          description: Number of agentic iterations
        user_feedback:
          anyOf:
          - type: string
            enum:
            - up
            - down
          - type: 'null'
          title: User Feedback
          description: User feedback on response quality
        sender_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Sender Key
          description: Who produced this message (agent_key or 'user')
        target_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Target Key
          description: Who this message was directed at via @mention
        agent_trace:
          anyOf:
          - items:
              $ref: '#/components/schemas/AgentTraceStep'
            type: array
          - type: 'null'
          title: Agent Trace
          description: Inter-agent delegation trace for direct agent chat messages
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Message creation timestamp
      type: object
      required:
      - id
      - conversation_id
      - role
      - content
      - created_at
      title: AgentMessageResponse
      description: 'Response schema for agent message.


        Includes:

        - Message content (role, content)

        - MCP tool execution history (tool_calls)

        - Cost tracking (tokens_used)

        - Agentic iteration count (turns)'
      example:
        content: Your campaigns have an average ROAS of 3.2 over the last 30 days.
        conversation_id: 123e4567-e89b-12d3-a456-426614174002
        created_at: '2025-11-05T20:30:00Z'
        id: 123e4567-e89b-12d3-a456-426614174004
        role: assistant
        tokens_used: 450
        turns: 2
        ui_tool_calls:
        - arguments:
            date_range_days: 30
          execution_time_ms: 245
          result:
            clicks: 1500
            roas: 3.2
          success: true
          tool: get_campaign_analytics
    PublicExecutionSummary:
      properties:
        api_version:
          type: string
          maxLength: 64
          pattern: ^pomo\.agent\.execution/v[1-9][0-9]*$
          title: Api Version
          default: pomo.agent.execution/v1
        execution_id:
          type: string
          format: uuid
          title: Execution Id
        revision:
          type: integer
          minimum: 0.0
          title: Revision
          default: 0
        state:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$
          title: State
        terminal:
          type: boolean
          title: Terminal
        outcome:
          anyOf:
          - type: string
            maxLength: 64
            minLength: 1
            pattern: ^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$
          - type: 'null'
          title: Outcome
        disposition:
          anyOf:
          - $ref: '#/components/schemas/PublicTerminalDisposition'
          - type: 'null'
        progress:
          anyOf:
          - type: number
            maximum: 1.0
            minimum: 0.0
          - type: 'null'
          title: Progress
        summary:
          anyOf:
          - type: string
            maxLength: 2000
            minLength: 1
          - type: 'null'
          title: Summary
        started_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Started At
        completed_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Completed At
        duration_ms:
          anyOf:
          - type: integer
            maximum: 9007199254740991.0
            minimum: 0.0
          - type: 'null'
          title: Duration Ms
        cost_micros:
          anyOf:
          - type: integer
            minimum: 0.0
          - type: 'null'
          title: Cost Micros
        total_step_count:
          type: integer
          maximum: 1000000.0
          minimum: 0.0
          title: Total Step Count
          default: 0
        omitted_step_count:
          type: integer
          maximum: 1000000.0
          minimum: 0.0
          title: Omitted Step Count
          default: 0
        steps:
          items:
            $ref: '#/components/schemas/PublicExecutionStep'
          type: array
          maxItems: 40
          title: Steps
          default: []
      type: object
      required:
      - execution_id
      - state
      - terminal
      title: PublicExecutionSummary
      description: A complete public snapshot of one assistant execution.
    Body_upload_attachments_api_agentic_conversations__conversation_id__attachments_post:
      properties:
        files:
          items:
            type: string
            format: binary
          type: array
          title: Files
      type: object
      required:
      - files
      title: Body_upload_attachments_api_agentic_conversations__conversation_id__attachments_post
    AgentConversationWithMessages:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: Conversation ID
        organization_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Organization Id
          description: Organization ID
        user_id:
          anyOf:
          - type: string
          - type: 'null'
          title: User Id
          description: User ID who owns this conversation
        company_profile_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Company Profile Id
          description: Company profile ID
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
          description: Conversation title
        conversation_source:
          type: string
          enum:
          - web
          - slack
          title: Conversation Source
          description: Conversation source label used for UI filtering
          default: web
        runtime_key:
          $ref: '#/components/schemas/RuntimeKey'
          description: Immutable server-selected Markee engine version
          default: legacy
        message_count:
          type: integer
          title: Message Count
          description: Number of messages in conversation
        is_active:
          type: boolean
          title: Is Active
          description: Whether conversation is active (not soft-deleted)
        has_unread:
          type: boolean
          title: Has Unread
          description: True when new messages added by system, False when user views
          default: false
        extra:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Extra
          description: Additional data (stats, workflow state, etc.)
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Conversation creation timestamp
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: Last update timestamp
        last_message_at:
          type: string
          format: date-time
          title: Last Message At
          description: Timestamp of last message
        messages:
          items:
            $ref: '#/components/schemas/AgentMessageResponse'
          type: array
          title: Messages
          description: Conversation messages
        message_refs:
          additionalProperties:
            items:
              $ref: '#/components/schemas/ReferencedDocument'
            type: array
          type: object
          title: Message Refs
          description: Per-message document references (message_id -> list of docs)
        public_executions:
          additionalProperties:
            $ref: '#/components/schemas/PublicExecutionSummary'
          type: object
          title: Public Executions
          description: Durable public execution snapshots keyed by producer job id. Each value is a complete revisioned replacement snapshot.
      type: object
      required:
      - id
      - organization_id
      - user_id
      - company_profile_id
      - message_count
      - is_active
      - created_at
      - updated_at
      - last_message_at
      title: AgentConversationWithMessages
      description: 'Extended response schema that includes messages.


        Used for GET /conversations/{id} endpoint.'
      example:
        company_profile_id: 123e4567-e89b-12d3-a456-426614174001
        created_at: '2025-11-05T20:00:00Z'
        extra:
          total_tokens: 1500
          total_tool_calls: 5
          workflow_stage: campaign_creation
        id: 123e4567-e89b-12d3-a456-426614174002
        is_active: true
        last_message_at: '2025-11-05T20:30:00Z'
        message_count: 15
        organization_id: 123e4567-e89b-12d3-a456-426614174000
        title: Campaign Strategy Discussion
        updated_at: '2025-11-05T20:30:00Z'
        user_id: 123e4567-e89b-12d3-a456-426614174003
    ConversationAttachmentsResponse:
      properties:
        files:
          items:
            $ref: '#/components/schemas/ConversationAttachmentResponse'
          type: array
          title: Files
      type: object
      required:
      - files
      title: ConversationAttachmentsResponse
    PublicTerminalDisposition:
      properties:
        schema_version:
          type: string
          const: pomo.public-disposition/v1
          title: Schema Version
          default: pomo.public-disposition/v1
        kind:
          $ref: '#/components/schemas/PublicDispositionKind'
        reason:
          anyOf:
          - type: string
            maxLength: 128
            minLength: 1
            pattern: ^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$
          - type: 'null'
          title: Reason
      type: object
      required:
      - kind
      title: PublicTerminalDisposition
      description: Versioned, server-authored customer meaning for a terminal result.
    AgentConversationInboxSummaryResponse:
      properties:
        unread_conversation_count:
          type: integer
          title: Unread Conversation Count
          description: Unread conversation count for this scope
        latest_activity_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Latest Activity At
          description: Latest conversation activity timestamp for this scope
        previews:
          items:
            $ref: '#/components/schemas/AgentConversationInboxPreview'
          type: array
          title: Previews
          description: Recent conversation metadata for lightweight closed-state previews
      type: object
      required:
      - unread_conversation_count
      title: AgentConversationInboxSummaryResponse
    AgentConversationInboxPreview:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Conversation ID
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
          description: Conversation title
        conversation_source:
          type: string
          enum:
          - web
          - slack
          title: Conversation Source
          description: Conversation source label used for UI filtering
          default: web
        has_unread:
          type: boolean
          title: Has Unread
          description: Whether the conversation has unread activity
          default: false
        last_message_at:
          type: string
          format: date-time
          title: Last Message At
          description: Timestamp of latest activity
      type: object
      required:
      - id
      - last_message_at
      title: AgentConversationInboxPreview
    RuntimeKey:
      type: string
      enum:
      - legacy
      - markee_v2
      title: RuntimeKey
      description: 'Canonical Markee engine versions.


        The serialized values predate the v1/v2 product vocabulary and remain

        stable so existing conversation rows and in-flight jobs stay readable.

        Callers must use the versioned enum members rather than repeating those

        persistence literals.'
    AgentTraceStep:
      properties:
        agent_key:
          type: string
          title: Agent Key
          description: Agent key, e.g. 'market_intelligence'
        agent_display_name:
          type: string
          title: Agent Display Name
          description: Human-readable name, e.g. 'Market Intelligence Agent'
        agent_role:
       

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pomo/refs/heads/main/openapi/pomo-agentic-conversations-api-openapi.yml