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

# List email messages

> Returns a paginated list of email messages. You can filter by thread, campaign, prospect, rep, tag, status, and type.

<Note>
  Returns a [paginated list](/api-reference/objects/paginated-list) of [email
  message](/api-reference/objects/email-message) objects.
</Note>


## OpenAPI

````yaml GET /inbox/email/messages
openapi: 3.1.0
info:
  title: Alta API
  description: >-
    The Alta public API allows you to programmatically access and manage your
    campaigns, prospects, companies, persons, email messages, LinkedIn messages,
    calls, reps, tags, and trigger assistant calls.
  version: 1.0.0
servers:
  - url: https://api.altahq.com/v1
    description: Production
security:
  - bearerAuth: []
paths:
  /inbox/email/messages:
    get:
      tags:
        - Inbox
      summary: List email messages
      description: >-
        Returns a paginated list of email messages. You can filter by thread,
        campaign, prospect, rep, tag, status, and type.
      operationId: listEmailMessages
      parameters:
        - name: limit
          in: query
          description: Maximum number of results to return (1–100). Defaults to 10.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: cursor
          in: query
          description: >-
            Cursor for pagination. Use the `next` or `previous` value from a
            prior response.
          schema:
            type: string
        - name: emailThreadId
          in: query
          description: Filter messages by email thread ID.
          schema:
            type: string
            format: uuid
        - name: campaignId
          in: query
          description: Filter messages by campaign ID.
          schema:
            type: string
            format: uuid
        - name: prospectId
          in: query
          description: Filter messages by prospect ID.
          schema:
            type: string
            format: uuid
        - name: repId
          in: query
          description: Filter messages by rep ID.
          schema:
            type: string
            format: uuid
        - name: status
          in: query
          description: Filter by message status.
          schema:
            type: string
            enum:
              - sent
              - draft
        - name: type
          in: query
          description: Filter by message type.
          schema:
            type: string
            enum:
              - manual
              - campaign
              - reply_agent
              - received
        - name: tag
          in: query
          description: Filter messages by tag.
          schema:
            type: string
        - name: onlyLastMessagePerThread
          in: query
          description: When `true`, returns only the last message per thread.
          schema:
            type: string
            enum:
              - 'true'
      responses:
        '200':
          description: A paginated list of email messages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailMessageListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    EmailMessageListResponse:
      allOf:
        - type: object
          required:
            - data
            - hasMore
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/EmailMessage'
            hasMore:
              type: boolean
            next:
              type: string
            previous:
              type: string
    EmailMessage:
      allOf:
        - $ref: '#/components/schemas/BaseEntity'
        - type: object
          required:
            - subject
            - body
            - recipients
            - sentAt
            - objectType
          properties:
            objectType:
              type: string
              enum:
                - email_message
            emailThreadId:
              type: string
              format: uuid
              description: The ID of the email thread this message belongs to.
            subject:
              type: string
              description: The email subject line.
            body:
              type: string
              description: The email body content.
            from:
              allOf:
                - $ref: '#/components/schemas/EmailMessageContactInfo'
              nullable: true
              description: The sender of the email.
            type:
              type: string
              enum:
                - manual
                - campaign
                - reply_agent
                - received
              description: The type of the email message.
            status:
              type: string
              enum:
                - sent
                - draft
              description: The status of the email message.
            prospectId:
              type: string
              format: uuid
              description: The ID of the prospect associated with this message.
            repId:
              type: string
              format: uuid
              description: The ID of the rep associated with this message.
            recipients:
              type: object
              required:
                - to
              properties:
                to:
                  type: array
                  items:
                    $ref: '#/components/schemas/EmailMessageContactInfo'
                  description: Primary recipients.
                cc:
                  type: array
                  items:
                    $ref: '#/components/schemas/EmailMessageContactInfo'
                  description: CC recipients.
                bcc:
                  type: array
                  items:
                    $ref: '#/components/schemas/EmailMessageContactInfo'
                  description: BCC recipients.
            sentAt:
              type: string
              format: date-time
              description: Timestamp when the email was sent.
    Error:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          description: Error type.
        message:
          type: string
          description: Human-readable error message.
    BaseEntity:
      type: object
      required:
        - id
        - objectType
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the object.
        objectType:
          type: string
          description: The type of this object.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the object was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the object was last updated.
    EmailMessageContactInfo:
      type: object
      required:
        - name
        - email
      properties:
        name:
          type: string
          description: Display name of the contact.
        email:
          type: string
          format: email
          description: Email address of the contact.
  responses:
    Unauthorized:
      description: Authentication failed - invalid or missing API token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Unauthorized
            message: Invalid API token
    RateLimited:
      description: >-
        Too many requests - you've exceeded the rate limit of 100 requests per
        minute.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: TooManyRequests
            message: Rate limit exceeded. Please retry after 60 seconds.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API token authentication. Generate a token from the Alta dashboard and
        pass it as a Bearer token in the Authorization header.

````