---
title: "Get Conversation Export"
method: GET
path: "/api/chats/{chat_id}/export"
tags: ["chats"]
---

# Get Conversation Export

`GET /api/chats/{chat_id}/export`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/chats/{chat_id}/export`
- Auth: none declared

Return the caller's full visible conversation timeline for export.

The normal message endpoint is paginated for UI performance. Export reads
the full authorized timeline so generated files are not limited to the
current viewport. Message serialization is shared with ``GET /messages`` so
membership gates, per-owner summary visibility, attachment metadata, and
artifact parsing stay aligned.

## Path parameters

- `chat_id` string, uuid, required

## Headers

- `x-impersonate-identity-id` string, nullable

## Response `200`

Successful Response

- ConversationExportResponse
  - `format_version` 'conversation-export-v1'
  - `chat` ConversationExportChatResponse, required
    - `id` string, uuid, required
    - `title` string, nullable, required
    - `container_kind` string, required
  - `messages` MessageResponse[]
    - `initial_response_terminal_status` 'failed' | 'canceled'
    - `initial_response_run_id` string, uuid, nullable
    - `metadata` object, nullable
    - `browser_timing` object, nullable
    - `server_duration_ms` integer, nullable
    - `response_charge` object, nullable
    - `id` string, uuid, required
    - `sender_id` string, uuid, nullable, required
    - `sender_display_name` string, nullable, required
    - `sender_kind` string, nullable, required
    - `provider_capture` union
      - CalendarCapture
        - `kind` 'calendar_event'
        - `calendar_id` string, required
        - `event_id` string, required
        - `title` string, required
        - `status` string
        - `start` CalendarWhen
          - `date` string, nullable
          - `dateTime` string, nullable
          - `timeZone` string, nullable
        - `end` CalendarWhen
          - `date` string, nullable
          - `dateTime` string, nullable
          - `timeZone` string, nullable
        - `location` string, nullable
        - `organizer` CalendarPerson
          - `email` string, nullable
          - `displayName` string, nullable
          - `responseStatus` string, nullable
        - `attendees` CalendarPerson[]
          - `email` string, nullable
          - `displayName` string, nullable
          - `responseStatus` string, nullable
        - `recurrence` string[]
        - `recurring_event_id` string, nullable
        - `original_start_time` CalendarWhen
          - `date` string, nullable
          - `dateTime` string, nullable
          - `timeZone` string, nullable
        - `updated` string, nullable
        - `sequence` integer, nullable
        - `source_url` string, nullable
      - GmailCapture
        - `kind` 'gmail_message'
        - `message_id` string, required
        - `thread_id` string, nullable
        - `subject` string, required
        - `from_address` string, nullable
        - `to` string, nullable
        - `cc` string, nullable
        - `bcc` string, nullable
        - `source_url` string, nullable
    - `capture_author_key` string, nullable
    - `capture_author_kind` string, nullable
    - `sender_avatar_url` string, nullable, required
    - `sent_via` string, nullable
    - `role` string, required
    - `content` string, required
    - `model` string, nullable, required
    - `provider` string, nullable, required
    - `revised_at` string, date-time, nullable, required
    - `created_at` string, date-time, nullable, required
    - `input_tokens` integer, nullable
    - `output_tokens` integer, nullable
    - `cache_read_tokens` integer, nullable
    - `cache_creation_tokens` integer, nullable
    - `cost_usd` number, nullable
    - `cost_status` string
    - `attachments` AttachmentResponse[]
      - `id` string, uuid, required
      - `file_name` string, required
      - `file_type` string, required
      - `mime_type` string, required
      - `file_size_bytes` integer, nullable, required
      - `created_at` string, date-time, nullable, required
      - `generation_type` 'document' | 'image' | 'code', nullable
      - `capture_source` 'glance_auto' | 'embed_page' | 'app_page' | 'shared_tab' | 'shared_window' | 'shared_screen' | 'camera', nullable
      - `code` CodeAttachmentInfo: The ``code`` metadata block for a generate_code_file attachment (TOS-7015).
        - `language` string, required
        - `line_count` integer, required
        - `run_command` string, nullable
        - `group_size` integer, required
        - `previous_attachment_id` string, uuid, nullable
    - `interaction_prompts` InteractionPrompt[]
      - `id` string, required
      - `kind` 'choice' | 'multi' | 'text' | 'scale', required
      - `heading` string, nullable
      - `options` InteractionOption[], required
        - `id` string, required
        - `label` string, required
        - `value` string, required
      - `min` integer, nullable
      - `max` integer, nullable
      - `interaction_source` string, nullable
    - `show_request` ShowRequestResponse
      - `kind` 'screen' | 'object', required
      - `capabilities` string[], required
    - `interaction_answers` InteractionAnswer[]
      - `interaction_id` string, required
      - `heading` string, nullable
      - `kind` 'choice' | 'multi' | 'text' | 'scale', required
      - `labels` string[], required
      - `value` union, required
        - string
        - string[]
    - `mcp_tool_call_traces` McpToolCallTrace[]
      - `trace_id` string, required
      - `tool_name` string, required
      - `tool_label` string
      - `source_label` string, nullable
      - `duration_ms` integer, nullable
      - `registration_id` string, nullable
      - `success` boolean
      - `error_kind` string, nullable
      - `response_status` integer, nullable
      - `response_is_error` boolean, nullable
      - `phase_timings_ms` object
      - `request_target` string, nullable
    - `mcp_auth_failures` McpAuthFailure[]
      - `registration_id` string, required
      - `registration_name` string, required
      - `registration_owner_identity_id` string, required
      - `invoking_identity_id` string, required
      - `credential_target_identity_id` string, nullable
      - `auth_kind` string, required
      - `upstream_status` integer, nullable
      - `error_message` string, nullable
      - `tool_name` string, nullable
      - `trace_id` string, nullable
      - `failure_kind` string
      - `connect_definition_id` string, nullable
      - `connect_name` string, nullable
      - `connect_instance_id` string, nullable
    - `concierge_guidance` ConciergeGuidanceAction[]
      - `kind` 'navigation' | 'highlight', required
      - `screen_id` string, required
      - `screen_name` string, required
      - `route` string, required
      - `target` string, required
      - `label` string, required
      - `reason` string
      - `requires_user_action` boolean
    - `training_receipts` TrainingReceiptCard[]
      - `tool_name` string, required
      - `operation_id` string, nullable
      - `source_message_id` string, nullable
      - `surface` string, nullable
      - `actor_identity_id` string, required
      - `actor_display_name` string, nullable
      - `teacher_identity_id` string, required
      - `teacher_display_name` string, nullable
      - `target_identity_id` string, required
      - `target_display_name` string, nullable
      - `destination` 'shared' | 'private' | 'none', required
      - `destination_library_id` string, nullable
      - `status` string, required
      - `write_status` string, nullable
      - `document_count` integer
      - `mind_status` string, required
      - `source_kind` 'text' | 'website', required
      - `source_url` string, nullable
      - `reason_codes` string[]
      - `detail` string, nullable
      - `imported_count` integer, nullable
      - `skipped_count` integer, nullable
      - `failed_count` integer, nullable
      - `remaining_count` integer, nullable
      - `generated_summary` boolean
    - `connection_checks` ConnectionCheckCard[]
      - `subject_identity_id` string, required
      - `subject_name` string, nullable
      - `viewer_identity_id` string, required
      - `checked_at` string, required
      - `counts` object, required
      - `groups` ConnectionCheckGroup[]
        - `connector` string, required
        - `name` string, required
        - `icon_url` string, nullable
        - `definition_id` string, nullable
        - `status` 'working' | 'limited' | 'broken', required
        - `connections` ConnectionCheckConnection[]
          - `instance_id` string, required
          - `account` string, required
          - `status` 'working' | 'limited' | 'broken', required
          - `label` string, required
          - `reason` string, nullable
          - `next_action` string, nullable
          - `can_repair` boolean
          - `tested_now` boolean
          - `last_tested_at` string, nullable
          - `affected_agents` string[]
    - `provenance` MessageProvenance
      - `origin` string, required
      - `delegated_source` MessageDelegatedSource
        - `kind` string, required
        - `label` string, nullable
        - `invocation_id` string, nullable
        - `api_key_id` string, nullable
        - `transport` string, nullable
      - `subconscious_source` MessageSubconsciousSource: TOS-424/TOS-581: the conversation (and message) an ambient ask came from.
        - `chat_id` string, required
        - `label` string, required
        - `message_id` string, nullable
    - `artifacts` union[]
      - union
        - LineChartArtifact
          - `chart_type` 'line', required
          - `payload` LineChartPayloadResponse, required
            - `title` string, required
            - `x_label` string, required
            - `y_label` string, required
            - `series` LineSeries[], required
              - …
            - `reference_lines` ReferenceLine[]
              - …
            - `y_scale` string
            - `value_format` ValueFormat: Mirrors ``services.artifacts.schema.ValueFormat`` (TOS-434). Kept in lockstep with the request schema; a field missing here is silently stripped from the API response and never reaches the renderer.
              - …
        - BarChartArtifact
          - `chart_type` 'bar', required
          - `payload` BarChartPayloadResponse, required
            - `title` string, required
            - `x_label` string, required
            - `y_label` string, required
            - `categories` string[], required
            - `series` BarSeries[], required
              - …
            - `stacked` boolean
            - `reference_lines` ReferenceLine[]
              - …
            - `y_scale` string
            - `value_format` ValueFormat: Mirrors ``services.artifacts.schema.ValueFormat`` (TOS-434). Kept in lockstep with the request schema; a field missing here is silently stripped from the API response and never reaches the renderer.
              - …
        - AreaChartArtifact
          - `chart_type` 'area', required
          - `payload` AreaChartPayloadResponse, required
            - `title` string, required
            - `x_label` string, required
            - `y_label` string, required
            - `series` LineSeries[], required
              - …
            - `stacked` boolean
            - `reference_lines` ReferenceLine[]
              - …
            - `y_scale` string
            - `value_format` ValueFormat: Mirrors ``services.artifacts.schema.ValueFormat`` (TOS-434). Kept in lockstep with the request schema; a field missing here is silently stripped from the API response and never reaches the renderer.
              - …
        - ScatterChartArtifact
          - `chart_type` 'scatter', required
          - `payload` ScatterChartPayloadResponse, required
            - `title` string, required
            - `x_label` string, required
            - `y_label` string, required
            - `points` ScatterPoint[], required
              - …
            - `y_scale` string
            - `value_format` ValueFormat: Mirrors ``services.artifacts.schema.ValueFormat`` (TOS-434). Kept in lockstep with the request schema; a field missing here is silently stripped from the API response and never reaches the renderer.
              - …
            - `x_format` ValueFormat: Mirrors ``services.artifacts.schema.ValueFormat`` (TOS-434). Kept in lockstep with the request schema; a field missing here is silently stripped from the API response and never reaches the renderer.
              - …
        - RadarChartArtifact
          - `chart_type` 'radar', required
          - `payload` RadarChartPayloadResponse, required
            - `title` string, required
            - `categories` string[], required
            - `series` BarSeries[], required
              - …
            - `y_scale` string
            - `value_format` ValueFormat: Mirrors ``services.artifacts.schema.ValueFormat`` (TOS-434). Kept in lockstep with the request schema; a field missing here is silently stripped from the API response and never reaches the renderer.
              - …
        - DonutChartArtifact
          - `chart_type` 'donut', required
          - `payload` DonutChartPayloadResponse, required
            - `title` string, required
            - `slices` DonutSlice[], required
              - …
            - `value_format` ValueFormat: Mirrors ``services.artifacts.schema.ValueFormat`` (TOS-434). Kept in lockstep with the request schema; a field missing here is silently stripped from the API response and never reaches the renderer.
              - …
        - TableArtifact
          - `chart_type` 'table', required
          - `payload` TableArtifactPayloadResponse, required
            - `title` string, required
            - `columns` union[], required
              - …
            - `rows` array[], required
              - …
            - `default_sorts` TableSort[]
              - …
            - `summary` TableSummaryStat[]
              - …
            - `notes` string[]
        - IframeEmbedArtifact: An externally-hosted embed (e.g. a completed integration job's playable output) rendered inline via an iframe, rather than a chart rendered from a data payload. TOS-3689 Task 6.
          - `chart_type` 'iframe-embed', required
          - `url` string, required
          - `title` string, nullable
          - `poster` string, nullable
          - `actions` EmbedAction[]
            - `label` string, required
            - `url` string, required
          - `refresh` EmbedRefresh
            - `name` string, required
            - `arguments` object
          - `registration_id` string, nullable
        - UiArtifact: A declarative UI panel an agent sent with emit_ui (TOS-2341). The payload reuses the tool's own strict model, so the API can never emit a block the tool would have rejected.
          - `chart_type` 'ui', required
          - `payload` UiPayload, required: The whole ``emit_ui`` argument object, persisted verbatim as the payload.
            - `title` string, nullable
            - `blocks` union[], required
              - …
        - UiActionArtifact: A press of a panel button, stored on the pressing message (TOS-2341 Phase 2). Built server-side from the stored panel, so ``label`` and ``action`` are exactly what the button said, whoever pressed it.
          - `chart_type` 'ui_action', required
          - `message_id` string, uuid, required
          - `action_id` string, required
          - `label` string, required
          - `action` union, required
            - UiReplyAction: Send ``text`` as the viewer's own chat message.
              - …
            - UiToolAction: Ask the panel's author agent to call ``name`` with ``arguments``. Pressing it executes nothing. It records the press on the pressing message, and the agent that authored the panel then makes the call itself, under its own tool permissions and approval gates (TOS-2341 Phase 2). A button can therefore never reach a tool its author could not already call, and a person clicking it grants no new authority.
              - …
        - McpAppArtifact: A connected server's MCP Apps widget, shown after its tool ran (TOS-2341 Phase 4).
          - `chart_type` 'mcp_app', required
          - `registration_id` string, required
          - `tool_name` string, required
          - `upstream_tool` string, required
          - `resource_uri` string, required
          - `title` string, required
          - `arguments` object
          - `result` object
    - `ui_state` object
    - `result_blocks` ResultBlockResponse[]
      - `kind` 'artifact' | 'create-document' | 'generate-image' | 'edit-document' | 'unknown', required
      - `title` string, required
      - `body` string, required
    - `my_feedback` string, nullable
    - `can_delete` boolean
    - `compression_summary` CompressionSummaryResponse
      - `messages_compressed` integer, required
      - `summary_model` string, required
    - `reply_to` MessageReplyToResponse: TOS-6892 quote card: the message a ``MessageResponse`` replies to. ``excerpt`` is a UI-only preview (mentions projected to plain ``@Name``, simple markdown stripped, capped at 200 chars) - never what an agent's prompt sees. ``deleted=True`` means the original was soft-deleted after this reply was sent; ``excerpt`` is then empty and the client renders "Message deleted" instead of a clickable card.
      - `message_id` string, uuid, required
      - `sender_id` string, uuid, nullable, required
      - `sender_display_name` string, nullable, required
      - `sender_kind` string, nullable, required
      - `capture_author_key` string, nullable
      - `capture_author_kind` string, nullable
      - `excerpt` string, required
      - `created_at` string, date-time, nullable, required
      - `deleted` boolean
    - `system_event` SystemEventResponse: Parsed view of a role='system' chat event. The raw ``metadata_`` dict is flat; participant events nest the actor/subject sides, while context compaction exposes the durable summary row it references.
      - `kind` 'participant_added' | 'participant_removed' | 'participant_left' | 'participants_added_batch' | 'direct_chat_converted' | 'context_compacted' | 'conversation_catchup' | 'autopilot_paused', required
      - `actor` SystemEventParticipant: One side (actor or subject) of a participant lifecycle event.
        - `id` string, uuid, required
        - `kind` 'person' | 'agent', required
        - `name_at_event` string, required
      - `subject` SystemEventParticipant: One side (actor or subject) of a participant lifecycle event.
        - `id` string, uuid, required
        - `kind` 'person' | 'agent', required
        - `name_at_event` string, required
      - `subjects` SystemEventParticipant[], nullable
        - `id` string, uuid, required
        - `kind` 'person' | 'agent', required
        - `name_at_event` string, required
      - `room_title` string, nullable
      - `room_description` string, nullable
      - `summary_message_id` string, uuid, nullable
      - `owner_identity_id` string, uuid, nullable
      - `source_message_count` integer, nullable
      - `covered_message_start_id` string, uuid, nullable
      - `covered_message_end_id` string, uuid, nullable
      - `summary_model` string, nullable
      - `summary_provider` string, nullable
      - `summary_model_run_id` string, uuid, nullable
      - `validation_status` string, nullable
      - `fallback_used` boolean, nullable
      - `summary_text` string, nullable
      - `catchup_text` string, nullable
      - `fact_ledger` FactLedgerEntryResponse[]
        - `key` string, required
        - `value` string, required
      - `pause_reason` 'identity_auto_send_limit' | 'conversation_loop_guard' | 'loop_guard_n_consecutive' | 'time_budget_exhausted' | 'agent_mode_expired', nullable
      - `identity_auto_sends` integer, nullable
      - `auto_send_limit` integer, nullable
      - `conversation_non_human` integer, nullable
      - `conversation_loop_limit` integer, nullable
      - `consecutive_non_human` integer, nullable
      - `auto_reply_limit` integer, nullable
      - `auto_reply_window_seconds` integer, nullable
    - `read_receipts` ReadReceiptResponse[]
      - `identity_id` string, uuid, required
      - `display_name` string, required
      - `read_at` string, date-time, required
    - `automation_trigger` MessageAutomationTrigger
      - `kind` string, required
      - `label` string, required
      - `detail` string, nullable
      - `trigger_id` string, uuid, nullable
      - `run_id` string, uuid, nullable
      - `trigger_kind` string, nullable
      - `trigger_reason` string, nullable
      - `user_message_id` string, uuid, nullable
      - `occurred_at` string, date-time, nullable
    - `activity` object, nullable
    - `turn_job` object, nullable
    - `approval_resume` object, nullable
    - `room_turn_status` RoomTurnStatus
      - `activity_runs` object[]
      - `activity_runs_truncated` boolean
      - `status` string, required
      - `response_status_visible` boolean, required
      - `floor_control_mode` string, required
      - `routing_source` string, nullable
      - `selected` RoomTurnResponderStatus[]
        - `identity_id` string, uuid, nullable
        - `display_name` string, nullable
        - `kind` string, nullable
        - `state` string, required
        - `role_label` string, nullable
        - `code` string, nullable
        - `source` string, nullable
      - `invoked` RoomTurnResponderStatus[]
        - `identity_id` string, uuid, nullable
        - `display_name` string, nullable
        - `kind` string, nullable
        - `state` string, required
        - `role_label` string, nullable
        - `code` string, nullable
        - `source` string, nullable
      - `skipped` RoomTurnResponderStatus[]
        - `identity_id` string, uuid, nullable
        - `display_name` string, nullable
        - `kind` string, nullable
        - `state` string, required
        - `role_label` string, nullable
        - `code` string, nullable
        - `source` string, nullable
      - `availability` RoomTurnResponderStatus[]
        - `identity_id` string, uuid, nullable
        - `display_name` string, nullable
        - `kind` string, nullable
        - `state` string, required
        - `role_label` string, nullable
        - `code` string, nullable
        - `source` string, nullable
      - `budget_before` integer, nullable
      - `budget_after_selection` integer, nullable
      - `max_responders` integer, required
      - `max_chain_depth` integer, required
      - `top_k_claimants` integer, required
    - `turn_error` object, nullable
    - `answer_trace` object, nullable
    - `loop_exit_limitation` OperationLimitationResponse: A factual operational limit and safe recovery choices.
      - `explanation` string, required
      - `options` string[]
      - `coverage` string, nullable
    - `interim_segments` string[]
    - `auto_continue` AutoContinueChainResponse: TOS-2134: where this message sits in an automatic-continuation chain.
      - `chain_id` string, required
      - `index` integer, required
      - `max_follow_ups` integer, required
      - `state` string, required
      - `end_reason` string, nullable
      - `next_index` integer, nullable
      - `follow_up_run_id` string, nullable
      - `root_user_message_id` string, nullable
    - `submitted_by_mode` string
    - `suggestion_outcome` string, nullable
  - `message_count` integer, required
  - `exported_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thinqos/apis/thinqos-api.md) · [All operations](https://skmtc.dev/thinqos/apis/thinqos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thinqos/apis/thinqos-api/revisions/ce2c2ce318b1?raw)
