API referenceAudiences

Add up to 100 contacts to an audience

POST
/v1/audiences/{id}/members/bulk

Same idempotent-add + automation-enrollment behavior as the single-member endpoint, tallied into a summary. A contact_id not owned by the tenant is a per-item failure, not a batch abort.

Authorization

bearerAuth
headerAuthorizationBearer <token>

API key sent as Authorization: Bearer <key>. Looked up by SHA-256 hash (email_core::sha256_hex) against api_keys.hash; revoked keys and keys belonging to a suspended tenant are rejected. See the top-level Authentication section for permission levels.

Path Parameters

id*string

Request Body

application/json
  1. body
contact_ids*array<string>
Items1 <= items <= 100

Response Body

Batch processed.

application/json
  1. response
data?array<>
summary?
curl -X POST "https://example.com/v1/audiences/string/members/bulk" \  -H "Content-Type: application/json" \  -d '{    "contact_ids": [      "string"    ]  }'
{  "data": [    {      "contact_id": "string",      "added": true,      "error": "string"    }  ],  "summary": {    "added": 0,    "skipped": 0  }}