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

# List threads

> List threads for an inbox. Use is_read to filter by read status — for example, ?is_read=false returns only unread threads.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/inboxes/{id}/threads
openapi: 3.0.3
info:
  title: OpenMail API
  description: >-
    Email infrastructure API for AI agents. Create inboxes, send and receive
    email, and get real-time notifications via webhooks.
  version: 1.0.0
  license:
    name: Proprietary
servers:
  - url: https://api.openmail.sh
security:
  - bearerAuth: []
tags:
  - name: pods
    description: Isolated sub-accounts for your end users or tenants
  - name: inboxes
    description: Email inboxes and their webhook configuration
  - name: messages
    description: Sending and listing messages
  - name: threads
    description: Conversation threads and read status
  - name: attachments
    description: Downloading and extracting text from attachments
paths:
  /v1/inboxes/{id}/threads:
    get:
      tags:
        - threads
      summary: List threads
      description: >-
        List threads for an inbox. Use is_read to filter by read status — for
        example, ?is_read=false returns only unread threads.
      operationId: listThreads
      parameters:
        - schema:
            type: integer
            default: 50
          in: query
          name: limit
          required: false
        - schema:
            type: integer
            default: 0
          in: query
          name: offset
          required: false
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
          in: query
          name: is_read
          required: false
          description: >-
            Filter by read status. true = read threads only, false = unread
            threads only. Omit to return all.
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: List of threads
          content:
            application/json:
              schema:
                description: List of threads
                type: object
                additionalProperties: true
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Thread'
                  total:
                    type: integer
        '401':
          description: Missing, invalid, or expired API key
          content:
            application/json:
              schema:
                description: Missing, invalid, or expired API key
                allOf:
                  - $ref: '#/components/schemas/Error'
        '404':
          description: Inbox not found
          content:
            application/json:
              schema:
                description: Inbox not found
                allOf:
                  - $ref: '#/components/schemas/Error'
components:
  schemas:
    Thread:
      type: object
      additionalProperties: true
      properties:
        id:
          type: string
        subject:
          type: string
        isRead:
          type: boolean
          description: >-
            Whether the thread has been marked as read. Defaults to false for
            new inbound threads. Auto-set to true when a reply is sent.
        lastMessageAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        messageCount:
          type: integer
    Error:
      type: object
      additionalProperties: true
      properties:
        error:
          type: string
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key

````