AgentMail pods > threads API

The pods > threads API from AgentMail — 4 operation(s) for pods > threads.

Operations 6

GET /v0/pods/{pod_id}/threads List Threads #
GET /v0/pods/{pod_id}/threads/{thread_id} Get Thread #
PATCH /v0/pods/{pod_id}/threads/{thread_id} Update Thread #
DELETE /v0/pods/{pod_id}/threads/{thread_id} Delete Thread #
GET /v0/pods/{pod_id}/threads/{thread_id}/attachments/{attachment_id} Get Attachment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/agentmail-pods-threads-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

agentmail-pods-threads-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference pods > threads API
  version: 1.0.0
servers:
- url: https://api.agentmail.to
  description: prod
- url: https://x402.api.agentmail.to
  description: prod-x402
- url: https://mpp.api.agentmail.to
  description: prod-mpp
- url: https://api.agentmail.eu
  description: eu-prod
tags:
- name: pods > threads
paths:
  /v0/pods/{pod_id}/threads:
    get:
      operationId: list
      summary: List Threads
      description: 'Lists threads in the pod, most recent first. Pass `senders`,

        `recipients`, or `subject` to filter by substring. Filtered requests are

        served by search, which caps `limit` at 100. For relevance-ranked

        full-text search, use `Search Threads`.


        **CLI:**

        ```bash

        agentmail pods:threads list --pod-id <pod_id>

        ```'
      tags:
      - pods > threads
      parameters:
      - name: pod_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_pods_PodId'
      - name: limit
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__Limit'
      - name: page_token
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__PageToken'
      - name: labels
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__Labels'
      - name: before
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__Before'
      - name: after
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__After'
      - name: ascending
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__Ascending'
      - name: include_spam
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__IncludeSpam'
      - name: include_blocked
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__IncludeBlocked'
      - name: include_unauthenticated
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__IncludeUnauthenticated'
      - name: include_trash
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__IncludeTrash'
      - name: senders
        in: query
        description: Filter to threads whose senders contain this value (substring match). Repeatable; all values must match.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: recipients
        in: query
        description: Filter to threads whose recipients contain this value (substring match). Repeatable; all values must match.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: subject
        in: query
        description: Filter to threads whose subject contains this value (substring match). Repeatable; all values must match.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response with status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_threads_ListThreadsResponse'
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ErrorResponse'
  /v0/pods/{pod_id}/threads/search:
    get:
      operationId: search
      summary: Search Threads
      description: 'Full-text search across threads in the pod, ranked by relevance. The

        query is matched against senders, recipients, and subject (substring)

        and the message body (tokenized full text). Spam, trash, blocked, and

        unauthenticated threads are always excluded. `limit` cannot exceed 100.'
      tags:
      - pods > threads
      parameters:
      - name: pod_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_pods_PodId'
      - name: q
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/type__Query'
      - name: limit
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__Limit'
      - name: page_token
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__PageToken'
      - name: before
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__Before'
      - name: after
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/type__After'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response with status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_threads_SearchThreadsResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ValidationErrorResponse'
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ErrorResponse'
  /v0/pods/{pod_id}/threads/{thread_id}:
    get:
      operationId: get
      summary: Get Thread
      description: '**CLI:**

        ```bash

        agentmail pods:threads get --pod-id <pod_id> --thread-id <thread_id>

        ```'
      tags:
      - pods > threads
      parameters:
      - name: pod_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_pods_PodId'
      - name: thread_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_threads_ThreadId'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response with status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_threads_Thread'
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ErrorResponse'
    patch:
      operationId: update
      summary: Update Thread
      description: Updates thread labels. Cannot add or remove system labels (sent, received, bounced, etc.). Rejects requests with a `422` for threads with 100 or more messages.
      tags:
      - pods > threads
      parameters:
      - name: pod_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_pods_PodId'
      - name: thread_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_threads_ThreadId'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response with status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_threads_UpdateThreadResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ValidationErrorResponse'
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ErrorResponse'
        '422':
          description: Error response with status 422
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/type_threads_UpdateThreadRequest'
    delete:
      operationId: delete
      summary: Delete Thread
      description: 'Permanently deletes a thread and all of its messages.


        **CLI:**

        ```bash

        agentmail pods:threads delete --pod-id <pod_id> --thread-id <thread_id>

        ```'
      tags:
      - pods > threads
      parameters:
      - name: pod_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_pods_PodId'
      - name: thread_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_threads_ThreadId'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ErrorResponse'
  /v0/pods/{pod_id}/threads/{thread_id}/attachments/{attachment_id}:
    get:
      operationId: get-attachment
      summary: Get Attachment
      description: '**CLI:**

        ```bash

        agentmail pods:threads get-attachment --pod-id <pod_id> --thread-id <thread_id> --attachment-id <attachment_id>

        ```'
      tags:
      - pods > threads
      parameters:
      - name: pod_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_pods_PodId'
      - name: thread_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_threads_ThreadId'
      - name: attachment_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_attachments_AttachmentId'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response with status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_attachments_AttachmentResponse'
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type__ErrorResponse'
components:
  schemas:
    type_threads_ThreadItem:
      type: object
      properties:
        inbox_id:
          $ref: '#/components/schemas/type_inboxes_InboxId'
        thread_id:
          $ref: '#/components/schemas/type_threads_ThreadId'
        labels:
          $ref: '#/components/schemas/type_threads_ThreadLabels'
        timestamp:
          $ref: '#/components/schemas/type_threads_ThreadTimestamp'
        received_timestamp:
          $ref: '#/components/schemas/type_threads_ThreadReceivedTimestamp'
        sent_timestamp:
          $ref: '#/components/schemas/type_threads_ThreadSentTimestamp'
        senders:
          $ref: '#/components/schemas/type_threads_ThreadSenders'
        recipients:
          $ref: '#/components/schemas/type_threads_ThreadRecipients'
        subject:
          $ref: '#/components/schemas/type_threads_ThreadSubject'
        preview:
          $ref: '#/components/schemas/type_threads_ThreadPreview'
        attachments:
          $ref: '#/components/schemas/type_threads_ThreadAttachments'
        last_message_id:
          $ref: '#/components/schemas/type_threads_ThreadLastMessageId'
        message_count:
          $ref: '#/components/schemas/type_threads_ThreadMessageCount'
        size:
          $ref: '#/components/schemas/type_threads_ThreadSize'
        updated_at:
          $ref: '#/components/schemas/type_threads_ThreadUpdatedAt'
        created_at:
          $ref: '#/components/schemas/type_threads_ThreadCreatedAt'
      required:
      - inbox_id
      - thread_id
      - labels
      - timestamp
      - senders
      - recipients
      - last_message_id
      - message_count
      - size
      - updated_at
      - created_at
      title: ThreadItem
    type__Labels:
      type: array
      items:
        type: string
      description: Labels to filter by.
      title: Labels
    type_messages_MessageSize:
      type: integer
      description: Size of message in bytes.
      title: MessageSize
    type__Before:
      type: string
      format: date-time
      description: Timestamp before which to filter by.
      title: Before
    type_threads_ThreadReceivedTimestamp:
      type: string
      format: date-time
      description: Timestamp of last received message.
      title: ThreadReceivedTimestamp
    type_attachments_AttachmentId:
      type: string
      description: ID of attachment.
      title: AttachmentId
    type_attachments_AttachmentSize:
      type: integer
      description: Size of attachment in bytes.
      title: AttachmentSize
    type_attachments_Attachment:
      type: object
      properties:
        attachment_id:
          $ref: '#/components/schemas/type_attachments_AttachmentId'
        filename:
          $ref: '#/components/schemas/type_attachments_AttachmentFilename'
        size:
          $ref: '#/components/schemas/type_attachments_AttachmentSize'
        content_type:
          $ref: '#/components/schemas/type_attachments_AttachmentContentType'
        content_disposition:
          $ref: '#/components/schemas/type_attachments_AttachmentContentDisposition'
        content_id:
          $ref: '#/components/schemas/type_attachments_AttachmentContentId'
      required:
      - attachment_id
      - size
      title: Attachment
    type_threads_ThreadSubject:
      type: string
      description: Subject of thread.
      title: ThreadSubject
    type_messages_MessageHeaders:
      type: object
      additionalProperties:
        type: string
      description: Headers in message.
      title: MessageHeaders
    type_messages_MessageCreatedAt:
      type: string
      format: date-time
      description: Time at which message was created.
      title: MessageCreatedAt
    type_messages_MessageLabels:
      type: array
      items:
        type: string
      description: Labels of message.
      title: MessageLabels
    type_threads_SearchThreadHighlights:
      type: object
      properties:
        from:
          type: array
          items:
            type: string
          description: Matched fragments from a sender address in the thread.
        recipients:
          type: array
          items:
            type: string
          description: Matched fragments from a recipient address in the thread (to, cc, or bcc).
        subject:
          type: array
          items:
            type: string
          description: Matched fragments from the subject.
        text:
          type: array
          items:
            type: string
          description: Matched fragments from a message body in the thread.
      description: 'Matched fragments per field on a thread search result, with matched terms

        wrapped in `**`. A field key is present only when the query matched that

        field, so the present keys also tell you which fields produced the hit.'
      title: SearchThreadHighlights
    type__IncludeUnauthenticated:
      type: boolean
      description: Include unauthenticated in results.
      title: IncludeUnauthenticated
    type_threads_ThreadSize:
      type: integer
      description: Size of thread in bytes.
      title: ThreadSize
    type_threads_ThreadTimestamp:
      type: string
      format: date-time
      description: Timestamp of last sent or received message.
      title: ThreadTimestamp
    type_messages_MessageUpdatedAt:
      type: string
      format: date-time
      description: Time at which message was last updated.
      title: MessageUpdatedAt
    type__ErrorFix:
      type: string
      description: The concrete next action that resolves the error.
      title: ErrorFix
    type__Count:
      type: integer
      description: Number of items returned.
      title: Count
    type_threads_ThreadLabels:
      type: array
      items:
        type: string
      description: Labels of thread.
      title: ThreadLabels
    type__ValidationErrorResponse:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/type__ErrorName'
        code:
          $ref: '#/components/schemas/type__ErrorCode'
        message:
          $ref: '#/components/schemas/type__ErrorMessage'
        errors:
          description: Validation errors. Each entry has a path and a message identifying the invalid field.
        fix:
          $ref: '#/components/schemas/type__ErrorFix'
        docs:
          $ref: '#/components/schemas/type__ErrorDocs'
      required:
      - name
      - errors
      title: ValidationErrorResponse
    type__IncludeTrash:
      type: boolean
      description: Include trash in results.
      title: IncludeTrash
    type_messages_MessageAttachments:
      type: array
      items:
        $ref: '#/components/schemas/type_attachments_Attachment'
      description: Attachments in message.
      title: MessageAttachments
    type__IncludeSpam:
      type: boolean
      description: Include spam in results.
      title: IncludeSpam
    type_threads_ThreadAttachments:
      type: array
      items:
        $ref: '#/components/schemas/type_attachments_Attachment'
      description: Attachments in thread.
      title: ThreadAttachments
    type_attachments_AttachmentContentId:
      type: string
      description: Content ID of attachment.
      title: AttachmentContentId
    type__ErrorName:
      type: string
      description: Name of error.
      title: ErrorName
    type_messages_MessageText:
      type: string
      description: Plain text body of message.
      title: MessageText
    type_messages_MessageCc:
      type: array
      items:
        type: string
      description: Addresses of CC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.
      title: MessageCc
    type__ErrorResponse:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/type__ErrorName'
        code:
          $ref: '#/components/schemas/type__ErrorCode'
        message:
          $ref: '#/components/schemas/type__ErrorMessage'
        fix:
          $ref: '#/components/schemas/type__ErrorFix'
        docs:
          $ref: '#/components/schemas/type__ErrorDocs'
      required:
      - name
      - message
      title: ErrorResponse
    type_messages_MessageId:
      type: string
      description: ID of message.
      title: MessageId
    type_threads_ThreadUpdatedAt:
      type: string
      format: date-time
      description: Time at which thread was last updated.
      title: ThreadUpdatedAt
    type_messages_MessageTimestamp:
      type: string
      format: date-time
      description: Time at which message was sent or drafted.
      title: MessageTimestamp
    type__ErrorMessage:
      type: string
      description: Error message.
      title: ErrorMessage
    type__IncludeBlocked:
      type: boolean
      description: Include blocked in results.
      title: IncludeBlocked
    type_messages_MessageSubject:
      type: string
      description: Subject of message.
      title: MessageSubject
    type__PageToken:
      type: string
      description: Page token for pagination.
      title: PageToken
    type_messages_MessageTo:
      type: array
      items:
        type: string
      description: Addresses of recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.
      title: MessageTo
    type_threads_UpdateThreadRequest:
      type: object
      properties:
        add_labels:
          type: array
          items:
            type: string
          description: Labels to add to thread. Cannot be system labels.
        remove_labels:
          type: array
          items:
            type: string
          description: Labels to remove from thread. Cannot be system labels. Takes priority over `add_labels` (in the event of duplicate labels passed in).
      title: UpdateThreadRequest
    type__Limit:
      type: integer
      description: Limit of number of items returned.
      title: Limit
    type_pods_PodId:
      type: string
      description: ID of pod.
      title: PodId
    type__ErrorCode:
      type: string
      description: Stable, machine-readable error code in snake_case (for example, not_found or missing_permission). Branch on this rather than the message text.
      title: ErrorCode
    type_threads_ThreadRecipients:
      type: array
      items:
        type: string
      description: Recipients in thread. In format `username@domain.com` or `Display Name <username@domain.com>`.
      title: ThreadRecipients
    type_threads_SearchThreadItem:
      type: object
      properties:
        inbox_id:
          $ref: '#/components/schemas/type_inboxes_InboxId'
        thread_id:
          $ref: '#/components/schemas/type_threads_ThreadId'
        labels:
          $ref: '#/components/schemas/type_threads_ThreadLabels'
        timestamp:
          $ref: '#/components/schemas/type_threads_ThreadTimestamp'
        received_timestamp:
          $ref: '#/components/schemas/type_threads_ThreadReceivedTimestamp'
        sent_timestamp:
          $ref: '#/components/schemas/type_threads_ThreadSentTimestamp'
        senders:
          $ref: '#/components/schemas/type_threads_ThreadSenders'
        recipients:
          $ref: '#/components/schemas/type_threads_ThreadRecipients'
        subject:
          $ref: '#/components/schemas/type_threads_ThreadSubject'
        preview:
          $ref: '#/components/schemas/type_threads_ThreadPreview'
        attachments:
          $ref: '#/components/schemas/type_threads_ThreadAttachments'
        last_message_id:
          $ref: '#/components/schemas/type_threads_ThreadLastMessageId'
        message_count:
          $ref: '#/components/schemas/type_threads_ThreadMessageCount'
        size:
          $ref: '#/components/schemas/type_threads_ThreadSize'
        updated_at:
          $ref: '#/components/schemas/type_threads_ThreadUpdatedAt'
        created_at:
          $ref: '#/components/schemas/type_threads_ThreadCreatedAt'
        highlights:
          $ref: '#/components/schemas/type_threads_SearchThreadHighlights'
          description: Matched fragments per field. Present only when the query matched an indexed field.
      required:
      - inbox_id
      - thread_id
      - labels
      - timestamp
      - senders
      - recipients
      - last_message_id
      - message_count
      - size
      - updated_at
      - created_at
      title: SearchThreadItem
    type__Query:
      type: string
      description: 'Full-text search query. Matched against the sender, recipients, and

        subject (substring) and the message body (tokenized full text).'
      title: Query
    type_attachments_AttachmentFilename:
      type: string
      description: Filename of attachment.
      title: AttachmentFilename
    type__After:
      type: string
      format: date-time
      description: Timestamp after which to filter by.
      title: After
    type_messages_MessagePreview:
      type: string
      description: Text preview of message.
      title: MessagePreview
    type_messages_MessageFrom:
      type: string
      description: Address of sender. In format `username@domain.com` or `Display Name <username@domain.com>`.
      title: MessageFrom
    type_messages_MessageBcc:
      type: array
      items:
        type: string
      description: Addresses of BCC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.
      title: MessageBcc
    type_attachments_AttachmentResponse:
      type: object
      properties:
        attachment_id:
          $ref: '#/components/schemas/type_attachments_AttachmentId'
        filename:
          $ref: '#/components/schemas/type_attachments_AttachmentFilename'
        size:
          $ref: '#/components/schemas/type_attachments_AttachmentSize'
        content_type:
          $ref: '#/components/schemas/type_attachments_AttachmentContentType'
        content_disposition:
          $ref: '#/components/schemas/type_attachments_AttachmentContentDisposition'
        content_id:
          $ref: '#/components/schemas/type_attachments_AttachmentContentId'
        download_url:
          type: string
          description: URL to download the attachment.
        expires_at:
          type: string
          format: date-time
          description: Time at which the download URL expires.
      required:
      - attachment_id
      - size
      - download_url
      - expires_at
      title: AttachmentResponse
    type_threads_ListThreadsResponse:
      type: object
      properties:
        count:
          $ref: '#/components/schemas/type__Count'
        limit:
          $ref: '#/components/schemas/type__Limit'
        next_page_token:
          $ref: '#/components/schemas/type__PageToken'
        threads:
          type: array
          items:
            $ref: '#/components/schemas/type_threads_ThreadItem'
          description: Ordered by `timestamp` descending.
      required:
      - count
      - threads
      title: ListThreadsResponse
    type_threads_SearchThreadsResponse:
      type: object
      properties:
        count:
          $ref: '#/components/schemas/type__Count'
        limit:
          $ref: '#/components/schemas/type__Limit'
        next_page_token:
          $ref: '#/components/schemas/type__PageToken'
        threads:
          type: array
          items:
            $ref: '#/components/schemas/type_threads_SearchThreadItem'
          description: Ordered by relevance, best match first.
      required:
      - count
      - threads
      title: SearchThreadsResponse
    type_threads_ThreadMessageCount:
      type: integer
      description: Number of messages in thread.
      title: ThreadMessageCount
    type_messages_MessageInReplyTo:
      type: string
      description: ID of message being replied to.
      title: MessageInReplyTo
    type_messages_MessageReferences:
      type: array
      items:
        type: string
      description: IDs of previous messages in thread.
      title: MessageReferences
    type_threads_ThreadSenders:
      type: array
      items:
        type: string
      description: Senders in thread. In format `username@domain.com` or `Display Name <username@domain.com>`.
      title: ThreadSenders
    type_attachments_AttachmentContentDisposition:
      type: string
      enum:
      - inline
      - attachment
      description: Content disposition of attachment.
      title: AttachmentContentDisposition
    type_messages_Message:
      type: object
      properties:
        inbox_id:
          $ref: '#/components/schemas/type_inboxes_InboxId'
        thread_id:
          $ref: '#/components/schemas/type_threads_ThreadId'
        message_id:
          $ref: '#/components/schemas/type_messages_MessageId'
        labels:
          $ref: '#/components/schemas/type_messages_MessageLabels'
        timestamp:
          $ref: '#/components/schemas/type_messages_MessageTimestamp'
        from:
          $ref: '#/components/schemas/type_messages_MessageFrom'
        reply_to:
          type: array
          items:
            type: string
          description: Reply-to addresses. In format `username@domain.com` or `Display Name <username@domain.com>`.
        to:
          $ref: '#/components/schemas/type_messages_MessageTo'
        cc:
          $ref: '#/components/schemas/type_messages_MessageCc'
        bcc:
          $ref: '#/components/schemas/type_messages_MessageBcc'
        subject:
          $ref: '#/components/schemas/type_messages_MessageSubject'
        preview:
          $ref: '#/components/schemas/type_messages_MessagePreview'
        text:
          $ref: '#/components/schemas/type_messages_MessageText'
        html:
          $ref: '#/components/schemas/type_messages_MessageHtml'
        extracted_text:
          type: string
          description: Extracted new text content.
        extracted_html:
          type: string
          description: Extracted new HTML content.
        attachments:
          $ref: '#/components/schemas/type_messages_MessageAttachments'
        in_reply_to:
          $ref: '#/components/schemas/type_messages_MessageInReplyTo'
        references:
          $ref: '#/components/schemas/type_messages_MessageReferences'
        headers:
          $ref: '#/components/schemas/type_messages_MessageHeaders'
        size:
          $ref: '#/components/schemas/type_messages_MessageSize'
        updated_at:
          $ref: '#/components/schemas/type_messages_MessageUpdatedAt'
        created_at:
          $ref: '#/components/schemas/type_messages_MessageCreatedAt'
      required:
      - inbox_id
      - thread_id
      - message_id
      - labels
      - timestamp
      - from
      - to
      - size
      - updated_at
      - created_at
      title: Message
    type_inboxes_InboxId:
      type: string
      description: The ID of the inbox.
      title: InboxId
    type_threads_ThreadPreview:
      type: string
      description: Text preview of last message in thread.
      title: ThreadPreview
    type_attachments_AttachmentContentType:
      type: string
      description: Content type of attachment.
      title: AttachmentContentType
    type_threads_ThreadSentTimestamp:
      type: string
      format: date-time
      description: Timestamp of last sent message.
      title: ThreadSentTimestamp
    type_threads_ThreadCreatedAt:
      type: string
      format: date-time
      description: Time at which thread was created.
      title: ThreadCreatedAt
    type_threads_Thread:
      type: object
      properties:
        inbox_id:
          $ref: '#/components/schemas/type_inboxes_InboxId'
        thread_id:
          $ref: '#/components/schemas/type_threads_ThreadId'
        labels:
          $ref: '#/components/schemas/type_threads_ThreadLabels'
        timestamp:
          $ref: '#/components/schemas/type_threads_ThreadTimestamp'
        received_timestamp:
          $ref: '#/components/schemas/type_threads_ThreadReceivedTimestamp'
        sent_timestamp:
          $ref: '#/components/schemas/type_threads_ThreadSentTimestamp'
        senders:
          $ref: '#/components/schemas/type_threads_ThreadSenders'
        recipients:
          $ref: '#/components/schemas/type_threads_ThreadRecipients'
        subject:
          $ref: '#/components/schemas/type_threads_ThreadSubject'
        preview:
          $ref: '#/components/schemas/type_threads_ThreadPreview'
        attachments:
          $ref: '#/components/schemas/type_threads_ThreadAttachments'
        last_message_id:
          $ref: '#/components/schemas/type_threads_ThreadLastMessageId'
        message_count:
          $ref: '#/components/schemas/type_threads_ThreadMessageCount'
        size:
          $ref: '#/components/schemas/type_threads_ThreadSize'
        updated_at:
          $ref: '#/components/schemas/type_threads_ThreadUpdatedAt'
        created_at:
          $ref: '#/components/schemas/type_threads_ThreadCreatedAt'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/type_messages_Message'
          description: Messages in thread. Ordered by `timestamp` ascending.
      required:
      - inbox_id
      - thread_id
      - labels
      - timestamp
      - senders
      - recipients
      - last_message_id
      - message_count
      - size
      - updated_at
      - created_at
      - messages
      title: Thread
    type_messages_MessageHtml:
      type: string
      description: HTML body of message.
      title: MessageHtml
    type_threads_ThreadLastMessageId:
      type: string
      description: ID of last message in thread.
      title: ThreadLa

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/agentmail/refs/heads/main/openapi/agentmail-pods-threads-api-openapi.yml