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

# List sending mailboxes

> The team’s sending mailboxes with their health, warmup state and daily capacity. A sequence containing an email step cannot be enabled unless at least one mailbox is connected, unpaused and able to send.

Credentials are never returned. The documented fields are an allowlist applied independently of the sending provider, so a field added upstream cannot appear here without being named first.

Paged like every other list on this API.

The team’s sending mailboxes with their health, warmup state and daily capacity. A sequence containing an email step cannot be enabled unless at least one mailbox is connected, unpaused and able to send. Credentials are never returned.


## OpenAPI

````yaml GET /v2/sequencer/email-accounts
openapi: 3.0.1
info:
  title: Salesfinity API
  description: >-
    The Salesfinity API is a JSON-over-HTTPS REST API for the Salesfinity
    parallel dialer.

    Use it to manage contact lists, read call logs and AI call scores, pull team
    and SDR

    analytics, and enrich email addresses. Webhook subscriptions are managed in
    the

    Salesfinity application rather than through this API.


    ## Base URL


    All requests go to `https://client-api.salesfinity.co`. There is no separate
    sandbox host;

    see the developer portal for the recommended way to test safely.


    ## Authentication


    Every endpoint requires an API key sent in the `x-api-key` request header.
    Generate a key

    in the Salesfinity dashboard under **Settings -> Connections & API**. A key
    is scoped to a

    single team, and every response is filtered to that team.


    ```bash

    curl https://client-api.salesfinity.co/v1/team \
      --header 'x-api-key: YOUR_API_KEY'
    ```


    ## Errors


    Errors are always JSON and always use the same envelope, so a client can
    parse a failure

    the same way on every endpoint:


    ```json

    { "message": "Forbidden resource", "error": "Forbidden", "statusCode": 403 }

    ```


    `statusCode` matches the HTTP status. `error` is the stable reason phrase to
    branch on.

    `message` is human readable, and is an array of strings when request
    validation fails.

    Note that a missing or invalid API key returns **403**, not 401.


    ## Pagination


    List endpoints accept `page` (1-based) and `limit` query parameters and
    return the matching

    page alongside the total count. The `limit` default varies by endpoint (10,
    50, or 100) and

    is capped at 100 where a cap applies, so read the parameter schema on the
    operation itself.


    ## Rate limits


    Salesfinity does not currently publish a fixed request quota. Treat HTTP 429
    as retryable

    and back off with exponential jitter.
  version: 1.0.0
  termsOfService: https://salesfinity.ai/terms
  contact:
    name: Salesfinity Support
    email: hello@salesfinity.co
    url: https://support.salesfinity.ai
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://client-api.salesfinity.co
    description: Production. The only public Salesfinity API host.
security:
  - ApiKeyAuth: []
tags:
  - name: Contact Lists
    description: >-
      Create, read, merge, and delete CSV contact lists, and add or remove the
      contacts inside them.
  - name: Teams
    description: >-
      Read the team that owns the API key, including its members, licenses, and
      statuses.
  - name: Dispositions
    description: Read the default and custom call outcomes configured for the team.
  - name: Sequences
    description: Read the sequences referenced by the team's call logs.
  - name: Call Logs
    description: >-
      Read the raw call history for the team, with filtering, sorting, and
      pagination.
  - name: Analytics
    description: Aggregated call metrics for the team, by contact list, and by SDR.
  - name: Snoozed Contacts
    description: Read and manage contacts that have been snoozed out of the dialing queue.
  - name: Follow-up Tasks
    description: Read follow-up tasks created from call outcomes.
  - name: Custom Fields
    description: Read the custom field mappings configured for the team.
  - name: Scored Calls
    description: Read AI-scored calls with per-facet scoring and coaching recommendations.
  - name: Notes
    description: >-
      Attach freeform notes to a person or company, list them, and pin the ones
      that matter.
  - name: Enrichment
    description: >-
      Look up phone numbers and work or personal email addresses for a LinkedIn
      profile, and check the team's remaining enrichment credits.
  - name: Sequencer Sequences
    description: >-
      Create, configure, enable and duplicate Sequencer cadences, and read their
      analytics. Distinct from the Sequences group, which lists sequence names
      observed on call logs from an external CRM.
  - name: Sequencer Steps
    description: The ordered steps that make up a cadence.
  - name: Sequencer Templates
    description: Reusable email subjects and bodies that email steps send from.
  - name: Sequencer Enrollments
    description: >-
      Contacts inside a sequence: where they are in the cadence, and the verbs
      that move them.
  - name: Sequencer Enrolment Runs
    description: >-
      Background enrolment of large batches, and the preview that shows what a
      batch would do.
  - name: Sequencer Tasks
    description: The rep task queue a cadence produces, plus standalone one-off tasks.
  - name: Sequencer Suppression
    description: >-
      The team do-not-contact list, checked before every enrolment and every
      send.
  - name: Sequencer Policies
    description: 'Rules of engagement: what may be enrolled, and what happens at each step.'
  - name: Sequencer Settings
    description: Team-level sequencer settings and sending mailboxes. Read-only.
externalDocs:
  description: Salesfinity API documentation
  url: https://docs.salesfinity.ai
paths:
  /v2/sequencer/email-accounts:
    get:
      tags:
        - Sequencer Settings
      summary: List sending mailboxes
      description: >-
        The team’s sending mailboxes with their health, warmup state and daily
        capacity. A sequence containing an email step cannot be enabled unless
        at least one mailbox is connected, unpaused and able to send.


        Credentials are never returned. The documented fields are an allowlist
        applied independently of the sending provider, so a field added upstream
        cannot appear here without being named first.


        Paged like every other list on this API.
      operationId: list-sequencer-mailboxes
      parameters:
        - name: search
          required: false
          in: query
          description: Match on the mailbox address or sender name.
          schema:
            type: string
        - name: status
          required: false
          in: query
          description: >-
            `ready` can send now; `not_connecting` has failed SMTP or IMAP;
            `out_of_pool` is connected but not assigned to anyone or to the
            shared pool.
          schema:
            enum:
              - ready
              - not_connecting
              - paused
              - out_of_pool
            type: string
        - name: warmup
          required: false
          in: query
          description: Whether warmup is running on the mailbox.
          schema:
            enum:
              - 'on'
              - 'off'
            type: string
        - name: esp
          required: false
          in: query
          description: Email service provider.
          schema:
            type: string
        - name: tag_id
          required: false
          in: query
          description: Provider-side tag id.
          schema:
            type: number
        - name: shared
          required: false
          in: query
          description: Only mailboxes in the shared team pool.
          schema:
            type: boolean
        - name: assigned_to
          required: false
          in: query
          description: Team member the mailbox is assigned to.
          schema:
            type: string
        - name: page
          required: false
          in: query
          description: Page number, 1-based.
          schema:
            type: number
        - name: limit
          required: false
          in: query
          description: Results per page.
          schema:
            maximum: 200
            type: number
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SequencerMailboxList'
        '400':
          description: >-
            Validation failed. Check the request body and query parameters
            against the schema on this operation. `message` lists every field
            that failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                message:
                  - limit must not be greater than 100
                error: Bad Request
                statusCode: 400
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    SequencerMailboxList:
      type: object
      description: >-
        Mailboxes in the standard list envelope, plus whether the team has a
        sending sub-account at all.
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/SequencerMailbox'
        pagination:
          $ref: '#/components/schemas/SequencerPagination'
        provisioned:
          type: boolean
          description: >-
            False means the team has no sending sub-account yet, which is a
            different state from a provisioned team with no mailboxes connected.
            Both return an empty `data`.
        summary:
          type: object
          description: >-
            Counts across the whole fleet rather than the current filter, so
            they stay usable as the way out of a filter. Absent on an
            unprovisioned team.
          additionalProperties: true
      required:
        - data
        - pagination
        - provisioned
    Error:
      type: object
      title: Error
      description: >-
        The error envelope returned by every Salesfinity API error response. The
        shape is identical across all status codes and all endpoints.
      required:
        - message
        - error
        - statusCode
      properties:
        message:
          description: >-
            Human-readable description of the failure. A string for most errors,
            and an array of strings when request validation fails, with one
            entry per field that did not validate.
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example: Forbidden resource
        error:
          type: string
          description: >-
            Stable HTTP reason phrase for the status code. Branch on this rather
            than on `message`.
          example: Forbidden
        statusCode:
          type: integer
          format: int32
          description: >-
            HTTP status code, repeated in the body so it survives transports
            that drop it.
          example: 403
      example:
        message: Forbidden resource
        error: Forbidden
        statusCode: 403
    SequencerMailbox:
      type: object
      description: A sending mailbox. Credentials are never returned.
      properties:
        id:
          type: integer
          description: Numeric mailbox id, from the sending provider.
        from_name:
          type: string
          nullable: true
        from_email:
          type: string
          nullable: true
        is_paused:
          type: boolean
        is_connected:
          type: boolean
        can_send:
          type: boolean
          description: 'Ready to send: connected, unpaused and in a pool.'
        warmup_status:
          type: string
          nullable: true
        daily_sent_count:
          type: integer
          nullable: true
        message_per_day:
          type: integer
          nullable: true
        assigned_to:
          type: object
          nullable: true
          description: Team member the mailbox is reserved for, or null when shared.
    SequencerPagination:
      type: object
      description: >-
        Pagination for every list under /v2/sequencer. One shape across the
        whole namespace.
      properties:
        total:
          type: integer
          description: Total matching records.
        page:
          type: integer
          description: Current page, 1-based.
        limit:
          type: integer
          description: Page size used.
        pages:
          type: integer
          description: Total number of pages.
      required:
        - total
        - page
        - limit
        - pages
  responses:
    Forbidden:
      description: >-
        Forbidden. The `x-api-key` header is missing, malformed, revoked, or
        belongs to another team. Send a valid key in the `x-api-key` header.
        Salesfinity returns 403 (not 401) for a missing, malformed, revoked, or
        wrong-team key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Forbidden resource
            error: Forbidden
            statusCode: 403
    TooManyRequests:
      description: >-
        Too Many Requests. The client is being throttled and should retry with
        backoff. Back off and retry with exponential jitter. Treat 429 as
        retryable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Too many requests
            error: Too Many Requests
            statusCode: 429
    InternalServerError:
      description: >-
        Internal Server Error. Something went wrong on the Salesfinity side.
        Retry with exponential backoff. If it persists, contact
        hello@salesfinity.co with the request path and timestamp.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Internal server error
            error: Internal Server Error
            statusCode: 500
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Team-scoped API key generated in the Salesfinity dashboard under
        Settings -> Connections & API. A missing or invalid key returns HTTP
        403.

````