---
title: "Add subscribers in bulk"
method: POST
path: "/audiences/{id}/subscribers/batch"
tags: ["Audiences"]
---

# Add subscribers in bulk

`POST /audiences/{id}/subscribers/batch`

## Request

- Base URL: `https://shipmail.to/api/v1`
- URL: `https://shipmail.to/api/v1/audiences/{id}/subscribers/batch`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://shipmail.to/api/auth/oauth2/authorize`, token URL `https://shipmail.to/api/auth/oauth2/token`)

Add up to 1000 subscribers in one call (single opt-in). Returns a per-row outcome for each address, in input order. Net-new admissions are all-or-nothing against the monthly ingest quota: if the remaining quota cannot admit every net-new address in the batch, they are all returned as skipped_quota.

## Headers

- `X-Shipmail-Organization` string

## Request body

- AddSubscribersBatchRequest
  - `subscribers` AddSubscriberRequest[], required
    - `email_address` string, email, required
    - `display_name` string, nullable
    - `merge_fields` MergeFields: Arbitrary string/number/boolean/null values keyed by field name. Max 50 keys.
    - `consent_source` string, nullable
    - `consent_ip` string, nullable

## Response `200`

Per-row outcomes, in input order.

- object
  - `results` SubscriberResult[], required
    - `email_address` string, email, required
    - `outcome` 'created' | 'updated' | 'skipped_not_mailable' | 'skipped_invalid' | 'skipped_cap' | 'skipped_quota', required

## Other responses

- `403`: Insufficient permissions.
- `404`: Resource not found.
- `422`: Validation failed.
- `429`: Rate limit exceeded.

---

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