---
title: "Get Messages"
method: GET
path: "/v1/omni-ai/threads/{thread_id}/messages"
tags: ["Omni AI"]
---

# Get Messages

`GET /v1/omni-ai/threads/{thread_id}/messages`

List finalized messages in a thread.

Returns the latest page of **finalized** messages by default, with messages
within each page ordered chronologically. Messages from in-progress
assistant turns are excluded — use
`GET /omni-ai/threads/{thread_id}/response` or
`GET /omni-ai/responses/{response_id}` for live output.

If the last finalized message has role `USER`, an active response likely
exists and should be polled separately.

## Path parameters

- `thread_id` string, uuid, required

## Query parameters

- `account_id` integer, required
- `page_size` integer
- `page_token` string, byte — Base64URL-encoded pagination token

## Response `200`

Paginated list of finalized messages; latest page by default, chronological within each page

- object
  - `error` ApiError — A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required — The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required — A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required — Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `page_number` integer, nullable — Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `request_id` string, required — A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable — Total number of items available (not just in this page).
    - `total_pages` integer, nullable — Total number of pages available.
  - `data` Message[], required
    - `content` MessageContent, required — Finalized immutable message content container. Never includes thinking parts.
      - `parts` MessageContentPart[], required
        - union — Final immutable content part visible on persisted messages.
          - object — Text content part.
            - `text` string, required
            - `type` 'text', required
          - object — Structured action content part.
            - `action` union, required — Structured actions that Omni AI can return to clients. These actions provide machine-readable instructions for the client to execute, such as prefilling an order ticket, opening a chart, or navigating to a route.
              - …
            - `action_id` string, uuid, required
            - `type` 'structured_action', required
          - object — Chart payload content part.
            - `payload` ChartPayload, required — Typed chart payload rendered inline in assistant content.
              - …
            - `type` 'chart', required
          - object — Suggested actions payload content part.
            - `payload` SuggestedActionsPayload, required — Suggested follow-up buttons rendered at the end of an assistant message.
              - …
            - `type` 'suggested_actions', required
          - object — Escape-hatch custom payload content part.
            - `payload` object, required
            - `type` 'custom', required
    - `created_at` string, required
    - `error` ErrorStatus — Shared sanitized error payload.
      - `code` string, required
      - `details` object, nullable — When a null/undefined value is observed, it indicates it does not apply.
      - `message` string, required
    - `id` string, uuid, required
    - `outcome` 'completed' | 'errored' | 'canceled', required — Immutable terminal outcome for a finalized assistant message.
    - `role` 'USER' | 'ASSISTANT', required — Finalized message role in the public contract.
    - `seq` integer, required
    - `thread_id` string, uuid, required

## Other responses

- `403` — Forbidden
- `404` — Thread not found
- `500` — Internal server error

---

[API](https://skmtc.net/clear-street/apis/clear-street-trading-api.md) · [All operations](https://skmtc.net/clear-street/apis/clear-street-trading-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clear-street/clear-street-trading-api/revisions/80e6fb2644e0/schema)
