> ## 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 Older Messages

> Page back through the older messages of one Ask Snowy chat.

> [!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 the page of messages immediately older than a cursor, oldest first. Use it after [Read an Ask Snowy Chat](https://snowseo.com/docs/api-reference/endpoints/ask-snowy-thread.md) returns `hasMore: true`.

Returns `{ "messages": [...], "hasMore" }`. Repeat with the new oldest message while `hasMore` is `true`. A missing or invalid cursor returns `400`.


## OpenAPI

````yaml GET /v3/ask-snowy/threads/{id}/messages
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}/messages:
    get:
      tags:
        - Ask Snowy
      summary: Read older messages in an Ask Snowy chat
      description: >-
        The page of messages immediately older than a cursor, in chronological
        order. Pass the `createdAt` and `id` of the oldest message you already
        have. Repeat while `hasMore` is true.
      operationId: listSnowyThreadMessages
      parameters:
        - schema:
            type: string
          in: query
          name: before
          required: true
          description: '`createdAt` of the oldest message already loaded.'
        - schema:
            type: string
          in: query
          name: beforeId
          required: true
          description: '`id` of that same message.'
        - 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:
                  - messages
                  - hasMore
                properties:
                  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
        '400':
          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
        '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.