Skip to content

Link an audience to a campaign

POST
/v1/campaigns/{id}/audiences/{audience_id}
curl --request POST \
--url https://dev-api.infiniteaudience.ai/v1/campaigns/example/audiences/example \
--header 'Authorization: Bearer <token>'

Associates an existing audience with a campaign. An audience can belong to at most one campaign at a time (exclusive ownership). Returns 409 if the audience is already linked to a different campaign — unlink it first. Idempotent: linking an already-linked audience to the same campaign returns 204 without error.

For new audiences, it is simpler to pass campaign_id directly to POST /v1/audiences or POST /v1/match/file to auto-link at creation time. Requires ‘purchase’ scope.

id
required
string

Campaign ID.

audience_id
required
string

Audience ID to link.

Audience linked (or was already linked to this campaign).

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).

Media typeapplication/json
object
error
required

Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.

string
message

Human-readable explanation of the error.

string
code

Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.

string
request_id

Opaque support/debug identifier when available.

string
key
additional properties
any
Examples
{
"error": "Unauthorized: Missing or invalid Authorization header"
}

Token is valid but lacks the required scope for this endpoint. Check the endpoint description for the required scope (discovery, purchase, or account).

Media typeapplication/json
object
error
required

Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.

string
message

Human-readable explanation of the error.

string
code

Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.

string
request_id

Opaque support/debug identifier when available.

string
key
additional properties
any
Examples
Examplemissing_scope
{
"error": "SCOPE_REQUIRED",
"message": "This endpoint requires the purchase scope."
}

Resource not found or not accessible to the calling org.

Media typeapplication/json
object
error
required

Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.

string
message

Human-readable explanation of the error.

string
code

Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.

string
request_id

Opaque support/debug identifier when available.

string
key
additional properties
any
Examples
Examplenot_found
{
"error": "Audience not found"
}

Audience is already linked to a different campaign.

Media typeapplication/json
object
error
string
linked_campaign_id

The campaign this audience is currently linked to.

string
Examplegenerated
{
"error": "example",
"linked_campaign_id": "example"
}