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

# List emails

> Returns your emails, newest first, with cursor pagination. Pass `next_cursor` from one
page as `cursor` to get the next.



## OpenAPI

````yaml /openapi.json get /emails
openapi: 3.1.2
info:
  title: PulseSend API
  version: 1.0.0
  description: >-
    Send transactional email over HTTP. Authenticate with a `ps_live_` or
    `ps_test_` key.
servers:
  - url: https://pulse-send.jiordiviera.me/api/v1
    description: Production
security:
  - apiKey: []
tags:
  - name: Emails
paths:
  /emails:
    get:
      tags:
        - Emails
      summary: List emails
      description: >-
        Returns your emails, newest first, with cursor pagination. Pass
        `next_cursor` from one

        page as `cursor` to get the next.
      operationId: v1.emails.index
      parameters:
        - name: limit
          in: query
          description: Emails per page, from 1 to 100.
          schema:
            type: integer
            default: 20
          example: 20
        - name: cursor
          in: query
          description: The `next_cursor` value from the previous page.
          schema:
            type: string
      responses:
        '200':
          description: A page of emails, newest first.
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    const: list
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/EmailResource'
                  has_more:
                    type: boolean
                  next_cursor:
                    type:
                      - string
                      - 'null'
                required:
                  - object
                  - data
                  - has_more
                  - next_cursor
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    EmailResource:
      type: object
      properties:
        object:
          type: string
          const: email
          description: Always `email`.
        id:
          type: string
          description: Unique identifier, prefixed `em_`.
          examples:
            - em_01jbz8m3k2q7x9c4v5n6p8r0st
        from:
          type: string
          examples:
            - Acme <hello@acme.com>
        to:
          type: array
          items:
            type: string
          examples:
            - - jane@example.com
        cc:
          type:
            - array
            - 'null'
          items:
            type: string
        bcc:
          type:
            - array
            - 'null'
          items:
            type: string
        subject:
          type: string
        status:
          type: string
          enum:
            - queued
            - sent
            - delivered
            - delivery_delayed
            - bounced
            - complained
            - failed
            - canceled
          description: >-
            Delivery status. `queued` → `sent` → `delivered`. Final states:
            `delivered`, `bounced`, `complained`, `failed`, `canceled`.
        test_mode:
          type: boolean
          description: >-
            True when sent with a `ps_test_` key. Test emails are never
            delivered and cost no credits.
        tags:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Tags you attached when sending.
        credits_charged:
          type: integer
          description: One credit per recipient (to, cc and bcc). Zero in test mode.
        created_at:
          type: string
          format: date-time
          examples:
            - '2026-10-17T09:41:00Z'
      required:
        - object
        - id
        - from
        - to
        - cc
        - bcc
        - subject
        - status
        - test_mode
        - tags
        - credits_charged
        - created_at
      title: Email
    Error:
      type: object
      title: Error
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - authentication_error
                - permission_error
                - not_found
                - validation_error
                - insufficient_credits
                - idempotency_error
                - rate_limit_error
                - api_error
              description: Error category. Determines the HTTP status.
            code:
              type: string
              description: Stable, machine-readable code. Branch on this.
            message:
              type: string
              description: Human-readable explanation. May change; do not parse it.
            param:
              type: string
              description: The request field at fault, when there is one.
            doc_url:
              type: string
              format: uri
          required:
            - type
            - code
            - message
      required:
        - error
  responses:
    Unauthorized:
      description: Invalid or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: authentication_error
              code: invalid_api_key
              message: Invalid or revoked API key.
              doc_url: https://docs.pulse-send.jiordiviera.me/errors#invalid_api_key
    Forbidden:
      description: This key does not have the emails:send scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: permission_error
              code: missing_scope
              message: This key does not have the emails:send scope.
              doc_url: https://docs.pulse-send.jiordiviera.me/errors#missing_scope
    RateLimited:
      description: Too many requests, retry later.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: rate_limit_error
              code: rate_limited
              message: Too many requests, retry later.
              doc_url: https://docs.pulse-send.jiordiviera.me/errors#rate_limited
  securitySchemes:
    apiKey:
      type: http
      description: Your API key, `ps_live_…` or `ps_test_…`.
      scheme: bearer

````

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