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

# Read an Ask Snowy Chat

> Get one Ask Snowy chat with its newest messages.

> [!WARNING]
>
> Chats belong to a user, not to a brand, so this endpoint isn't available with an API key (brand or organization) and returns `403` with code `API_KEY_ROUTE_NOT_ALLOWED`. It works from a signed-in session or the MCP server.

Get one saved Ask Snowy chat and its newest page of messages, oldest first. Only the chat's owner can read it; any other chat ID returns `404`.

### Response

Returns `{ "thread": {...}, "messages": [...], "hasMore": true }`.

* `thread`: `id`, `title`, `archived`, `pinned`, `lastMessageAt` (`null` if the chat has no messages), `createdAt`, and `updatedAt`.
* `messages`: the newest 30 messages by default, oldest first. Each has `id`, `threadId`, `role`, `parts`, and `createdAt`.
* `hasMore`: `true` when older messages exist.

### Messages

Each message has a `role` (`user` or `assistant`) and a list of `parts`. A part's `type` says what it is:

| Part type | Meaning |
| - | - |
| `text` | Plain message text, in `text` |
| `source-url`, `source-document` | A web page or uploaded document Snowy cited |
| `tool-render_artifact` | Something Snowy rendered in the chat, such as a chart, table or document |

Other part types may appear as Snowy gains features, so don't treat this list as closed. Attached images are not stored and never appear here.

### Paging back

When `hasMore` is `true`, older messages exist. Pass the `createdAt` and `id` of the oldest message you received to [Read Older Messages](https://snowseo.com/docs/api-reference/endpoints/ask-snowy-thread-messages.md).


## OpenAPI

````yaml GET /v3/ask-snowy/threads/{id}
openapi: 3.0.0
info:
  title: SnowSEO API
  description: API documentation for SnowSEO
  version: 1.0.0
servers:
  - url: https://api.snowseo.com
    description: Production server
security:
  - bearerAuth: []
  - apiKey: []
externalDocs:
  url: https://snowseo.com/docs
  description: Find more info here
paths:
  /v3/ask-snowy/threads/{id}:
    get:
      tags:
        - Ask Snowy
      summary: Read an Ask Snowy chat
      description: >-
        One saved Ask Snowy chat with its newest messages in chronological
        order. When `hasMore` is true, call snowy_thread_messages with the
        oldest returned message's `createdAt` and `id` to read further back.
      operationId: getSnowyThread
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
          description: Chat ID from `snowy_threads`.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                  - thread
                  - messages
                  - hasMore
                properties:
                  thread:
                    type: object
                    required:
                      - id
                      - title
                      - archived
                      - pinned
                      - createdAt
                      - updatedAt
                    properties:
                      id:
                        type: string
                      title:
                        type: string
                      archived:
                        type: boolean
                      pinned:
                        type: boolean
                      lastMessageAt:
                        type: string
                        format: date-time
                        nullable: true
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                  messages:
                    type: array
                    items:
                      type: object
                      required:
                        - id
                        - threadId
                        - role
                        - parts
                        - createdAt
                      properties:
                        id:
                          type: string
                        threadId:
                          type: string
                        role:
                          type: string
                          enum:
                            - user
                            - assistant
                        parts:
                          type: array
                          items:
                            type: object
                            additionalProperties: true
                        createdAt:
                          type: string
                          format: date-time
                  hasMore:
                    type: boolean
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  success:
                    type: boolean
                  error:
                    type: string
                  code:
                    type: string
                  message:
                    type: string
                  reference:
                    type: string
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  success:
                    type: boolean
                  error:
                    type: string
                  code:
                    type: string
                  message:
                    type: string
                  reference:
                    type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your SnowSEO API key (sk_...).
    apiKey:
      type: apiKey
      name: x-api-key
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.