---
title: "Connect many mailboxes"
method: POST
path: "/api/v1/inboxes/smtp/bulk"
tags: ["Mailboxes"]
---

# Connect many mailboxes

`POST /api/v1/inboxes/smtp/bulk`

## Request

- Base URL: `https://app.argorant.com`
- URL: `https://app.argorant.com/api/v1/inboxes/smtp/bulk`
- Auth: HTTP bearer

Connects up to 25 mailboxes in one call, each with the same fields as a single connect. Every row gets its own result: `connected`, `failed` (with the reason) or `skipped` (for example past a free trial's 2 mailboxes). Rows are checked 5 at a time, so a full call can take a minute or two. Up to 500 rows an hour.

| Cost | What it does | Key scopes |
| --- | --- | --- |
| Free | Writes | `argorant:manage_lists` |

## Headers

- `Idempotency-Key` string
- `X-Request-Id` string

## Request body

- object
  - `mailboxes` object[], required: 1 to 25 mailboxes, each with the fields of a single connect.
    - `email` string, required: The mailbox address that sends.
    - `display_name` string: The sender name people see.
    - `preset` 'zoho' | 'zoho_eu' | 'zoho_personal' | 'fastmail' | 'godaddy' | 'titan' | 'hostinger' | 'ionos' | 'ionos_de' | 'ionos_uk' | 'namecheap' | 'yahoo' | 'icloud' | 'outlook' | 'other': An email provider from the presets. Fills every empty server name, port and security setting.
    - `smtp_host` string: Server for sending. Needed without a preset.
    - `smtp_port` integer: Port for sending. Use 587. If you send 465, Argorant tries 587 with starttls and saves 587 when it works. Needed without a preset.
    - `smtp_secure` 'ssl' | 'starttls' | 'none': Security for sending, starttls on port 587. Leave out to pick it from the port.
    - `smtp_username` string: Sign-in name for sending. Leave out when it is the email address.
    - `smtp_password` string, required: The password, or an app password when the provider asks for one. Stored encrypted, never returned.
    - `imap_host` string: Server for reading replies. Needed without a preset.
    - `imap_port` integer: Port for reading replies.
    - `imap_secure` 'ssl' | 'starttls' | 'none': Security for reading replies. Leave out to use ssl on port 993 and starttls on port 143.
    - `imap_username` string: Sign-in name for reading replies. Leave out to use the one for sending.
    - `imap_password` string: Password for reading replies. Leave out to use the one for sending.
    - `daily_limit` integer: Cold emails a day from this mailbox.

## Response `200`

OK

- object
  - `connected` integer
  - `failed` integer
  - `skipped` integer
  - `results` object[]
    - `row` integer
    - `email` string
    - `status` string
    - `result` string
    - `message` string
    - `inbox` object
      - `email` string
      - `provider` string
      - `status` string
      - `daily_limit` integer

## Other responses

- `401`: 401 Unauthorized. `unauthorized` when the API key is missing, wrong or revoked.
- `403`: 403 Forbidden. `scope_missing` when the key lacks argorant:manage_lists.
- `409`: 409 Conflict. `idempotency_conflict` when the Idempotency-Key was used with another body.
- `422`: 422 Validation error. `validation_error` when a field has the wrong type or is missing.
- `429`: 429 Too many requests. `rate_limited` when too many requests this minute.

---

[API](https://skmtc.dev/argorant/apis/argorant-api.md) · [All operations](https://skmtc.dev/argorant/apis/argorant-api/llms.txt) · [OpenAPI document](https://skmtc.dev/argorant/apis/argorant-api/revisions/4bc28c0085b6?raw)
