Bulk deliver multiple audiences
const url = 'https://dev-api.infiniteaudience.ai/v1/deliveries/bulk';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"audience_ids":["aud_abc123","aud_def456"],"destination":"download","template_id":"standard_iag"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://dev-api.infiniteaudience.ai/v1/deliveries/bulk \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "audience_ids": [ "aud_abc123", "aud_def456" ], "destination": "download", "template_id": "standard_iag" }'Accepts a list of audience IDs and shared delivery parameters. Fires N parallel delivery jobs and returns per-audience results as HTTP 207 Multi-Status. Partial failure is acceptable — failed items do not roll back succeeded ones. Download is the currently active destination; LiveRamp and Narrative return 503 before any item or billable record is created. Requires ‘purchase’ scope.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
IDs of audiences to deliver. Max 25 per request.
Shared destination. liveramp and narrative currently return DELIVERY_DESTINATION_UNAVAILABLE without billing.
Attribute template ID applied to every audience in the batch. Only standard_iag is valid. Mutually exclusive with field_list. If neither is provided, the Standard IAG attribute set is used.
Explicit attribute list applied to every audience in the batch — every attribute must be a valid audience attribute. Mutually exclusive with template_id. If neither is provided, the Standard IAG attribute set is used.
Shared download artifact format for the batch.
Shared artifact compression. gzip is supported for csv/json/jsonl; Avro uses native DEFLATE and rejects gzip.
Chat session ID for push notification routing.
Campaign context for notification routing.
Example
{ "audience_ids": [ "aud_abc123", "aud_def456" ], "destination": "download", "template_id": "standard_iag"}Responses
Section titled “Responses”Multi-Status — per-audience results. Each entry contains audience_id, delivery_id (if created), status, and error (if failed). Billing capacity errors also expose the same machine-readable code and USD-denominated capacity details as the single-audience delivery endpoint.
object
object
Present when a delivery was created or found.
Error message when status is ‘error’.
Machine-readable billing code when billing prevents this item.
Conservative USD requirement for a prepay billing failure.
Effective USD availability for a prepay billing failure.
USD shortfall for a prepay billing failure.
Projected USD spend for a postpay ceiling failure.
Configured USD ceiling for a postpay ceiling failure.
Artifact format when an existing or new download delivery is returned.
Artifact compression when an existing or new download delivery is returned.
Example
{ "results": [ { "audience_id": "aud_abc123", "delivery_id": "dlv_xyz001", "status": "processing" }, { "audience_id": "aud_def456", "status": "error", "error": "Audience expired on 2026-05-01. Run a refresh first." } ]}Invalid request — malformed body, missing required attribute, or failed validation. See error and message for details.
object
Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.
Human-readable explanation of the error.
Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.
Opaque support/debug identifier when available.
Examples
{ "error": "Bad Request", "code": "MISSING_SEGMENTS", "message": "segment_ids is required for filter audiences."}Missing or invalid Bearer token. Obtain one via POST /v1/auth/token. When a token was supplied but rejected, code distinguishes TOKEN_EXPIRED (the token’s lifetime has passed — request a new one via POST /v1/auth/token and retry) from TOKEN_INVALID (malformed or revoked — re-authenticate).
object
Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.
Human-readable explanation of the error.
Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.
Opaque support/debug identifier when available.
Examples
{ "error": "Unauthorized: Missing or invalid Authorization header"}{ "error": "Unauthorized", "code": "TOKEN_EXPIRED", "message": "Your session has expired. Please sign in again."}Token is valid but lacks the required scope for this endpoint. Check the endpoint description for the required scope (discovery, purchase, or account).
object
Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.
Human-readable explanation of the error.
Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.
Opaque support/debug identifier when available.
Examples
{ "error": "SCOPE_REQUIRED", "message": "This endpoint requires the purchase scope."}A required billing provider integration is temporarily unavailable.
object
Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.
Human-readable explanation of the error.
Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.
Opaque support/debug identifier when available.
Examplegenerated
{ "error": "example", "message": "example", "code": "example", "request_id": "example"}