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

# Get a conversation summary

> Lean conversation summary — status, resolution and messages — by CloudChat conversation id or your helpdesk's ticket id. An id from a project your credentials don't cover answers the same 404 as an id that does not exist.



## OpenAPI

````yaml api-reference/specs/claudia/v1.json GET /v1/conversations/{id}/summary
openapi: 3.0.1
info:
  title: Claudia API
  version: 1.0.0
servers:
  - url: https://api.cloudhumans.com/claudia
    description: Production
  - url: https://api.cloudhumans.com/claudia/staging
    description: Staging
security:
  - bearerAuth: []
tags:
  - name: MCP Servers
    description: >-
      The MCP servers your agents can call tools on. Registering one here is
      what makes its tools selectable in an agent; the credentials it needs are
      stored encrypted and never read back.
  - name: Knowledge Base Content
    description: Read, search and edit the content that answers your customers.
  - name: Content Quality
    description: Rewrites proposed for content that is answering your customers badly.
  - name: Playground
    description: >-
      Talk to one of your agents as if you were a customer, without touching a
      real conversation.
  - name: Project Settings
    description: >-
      Read and change how a ClaudIA project behaves — the settings screens of
      the ClaudIA app, as an API.
  - name: Content Improvements
    description: Answers Claudia proposes for questions your content does not cover yet.
  - name: Knowledge Bases
    description: The knowledge bases your account can manage.
  - name: Content Sources
    description: The sites Claudia crawls to keep a knowledge base in sync.
  - name: Agents
    description: >-
      The AI agents (assistants) configured for your tenant: the orchestrator
      (supervisor) and its specialists (react). Reads answer the same
      passthrough shape the platform stores; creates land as DRAFTS a human
      reviews and publishes in the app.
  - name: Agent Tools
    description: >-
      The tool catalog your agents can be given, aggregated across every MCP
      server registered for the tenant. This is the same catalog an assistant's
      mcp_servers[].tools whitelist is validated against.
  - name: Conversations
    description: >-
      Read access to a conversation's lean investigation summary — messages,
      status and resolution — and the execution trace behind one of its
      processed messages, without the internal processing state the hub UI's
      full read carries.
paths:
  /v1/conversations/{id}/summary:
    get:
      tags:
        - Conversations
      summary: Get a conversation summary
      description: >-
        Lean conversation summary — status, resolution and messages — by
        CloudChat conversation id or your helpdesk's ticket id. An id from a
        project your credentials don't cover answers the same 404 as an id that
        does not exist.
      operationId: getConversationSummary
      parameters:
        - name: id
          in: path
          description: >-
            CloudChat conversation id (UUID) or your helpdesk's ticket id — when
            using a ticket id, `project` is required
          required: true
          schema:
            type: string
        - name: project
          in: query
          description: >-
            Project the conversation belongs to. REQUIRED when `id` is a
            helpdesk ticket id — those are only unique within a project, so
            without it a ticket id cannot be resolved and answers 404. Ignored
            for a CloudChat conversation id, which is globally unique. Discover
            your projects with `listMyClaudiaProjects`.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The conversation summary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationSummary'
        '400':
          description: The request could not be answered as written.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, expired or invalid credentials.
        '403':
          description: The credentials hold no account allowed to manage this content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No conversation reachable with your credentials matches this id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit applied by the API gateway. Back off and retry.
components:
  schemas:
    ConversationSummary:
      type: object
      required:
        - cloudChatId
        - projectName
        - status
        - statusAt
        - createdAt
        - messages
      properties:
        cloudChatId:
          type: string
          description: >-
            CloudChat's own id for this conversation (UUID). Stable, and the id
            this endpoint resolves without a `project`.
          example: 3f1c8a52-1c4e-4d0a-9a1b-2f6de2a3c111
        helpdeskId:
          type: string
          description: >-
            The id this conversation carries in your helpdesk — the ticket
            number your agents quote. Absent for a conversation that never
            reached a helpdesk. It is also the correlation key for a ticket-side
            investigation.
          example: '48219'
        projectName:
          type: string
          description: >-
            The ClaudIA project this conversation belongs to. Always present; it
            is the project your credentials were checked against to return this
            at all.
          example: acme_support
        status:
          type: string
          description: >-
            Lifecycle state: `Open`, `Resolved` or `Closed`. `Resolved` means
            ClaudIA finished the conversation itself; read `resolutionReason`
            for how.
          example: Resolved
        statusAt:
          type: string
          description: >-
            When the conversation entered its current `status` — opened,
            resolved or closed at (ISO-8601).
          example: '2026-08-10T18:20:41'
        createdAt:
          type: string
          description: When the conversation was created (ISO-8601).
          example: '2026-08-10T14:32:05'
        resolutionReason:
          type: string
          description: >-
            Why the conversation ended the way it did, when ClaudIA recorded a
            reason. Absent while it is still open, and for a conversation that
            ended without one.
          example: FORWARD_TO_HUMAN
        isN2:
          type: boolean
          description: >-
            Whether the conversation was handed to a human (N2). Absent when the
            platform never recorded either way — read that as unknown, not as
            false.
          example: false
        tag:
          type: string
          description: >-
            The resolution/classification tag the platform attached, when it
            attached one. Free text set per project, so treat it as a label to
            read, not a fixed vocabulary.
          example: order_status
        messages:
          type: array
          description: >-
            Every turn of the conversation, oldest first — customer messages,
            ClaudIA's replies, and any internal notes (`private: true`).
            Attachments and transcriptions are dropped.
          items:
            $ref: '#/components/schemas/ConversationMessage'
      description: >-
        One conversation reduced to what an investigation reads: how it ended,
        when, and the turns that got there. The internal per-message processing
        state the hub UI reads is not here.
    Error:
      required:
        - error
      type: object
      properties:
        error:
          type: string
          description: What went wrong.
          example: 'Forbidden: token holds no claim for the requested account'
      description: Something the caller needs to fix.
    ConversationMessage:
      type: object
      required:
        - role
        - content
        - sendAt
        - private
      properties:
        id:
          type: string
          description: >-
            Identifies this turn. Absent for a turn the platform stored without
            an id (older conversations).
          example: 6683f1c2a4b19e0012ab34cd
        role:
          type: string
          description: >-
            Who spoke: `USER` (the customer) or `AGENT` (ClaudIA, or a human
            answering in its place).
          example: USER
        content:
          type: string
          description: What was said, as text.
          example: Onde está meu pedido?
        sendAt:
          type: string
          description: When the turn was sent (ISO-8601).
          example: '2026-08-10T14:32:05'
        private:
          type: boolean
          description: >-
            True for an internal note the customer never saw. A reply the
            platform recorded as private did NOT reach the customer, however
            finished it reads.
          example: false
      description: One turn of the conversation, reduced to what an investigation reads.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````