Skip to main content
POST
/
audiences
Create Audience
curl --request POST \
  --url https://{defaultHost}/audiences \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "account_id": "<string>",
  "name": "<string>",
  "column_mapping": {},
  "file_id": "<string>"
}
'
{
  "id": "<string>",
  "name": "<string>",
  "status": "<string>",
  "total_rows": 123,
  "processed_rows": 123,
  "matched_rows": 123,
  "progress_percent": 123,
  "error_message": "<string>",
  "platform_audience_ids": "<array>",
  "created_at": 123,
  "updated_at": 123
}

Authorizations

Authorization
string
header
required

An account API key, account scoped JWT, app API key, or user OAuth token.

Body

application/json
account_id
string
required

The ID of the account that will own the audience.

name
string
required

A display name for the audience.

column_mapping
object
required

Map of identity field (email, phone, first_name, last_name, country) to the CSV column header that holds it. Map at least an email or phone column.

file_id
string
required

A direct upload ID returned by the standard media upload endpoint.

Response

audience created

id
string
required

The ID of the audience, which will look like adaud_*************

name
string
required

The display name of the audience

status
string
required

Processing status: pending, processing, syncing, ready, partial, or failed

total_rows
number
required

Total data rows detected in the uploaded CSV

processed_rows
number
required

Rows ingested so far

matched_rows
number
required

Rows uploaded to the ad platform

progress_percent
number
required

Processing progress from 0 to 100

error_message
string | null
required

Populated when the audience is partial or failed

platform_audience_ids
array
required

External ad-platform audience IDs created for this audience

created_at
number
required

When the audience was created, as a Unix timestamp

updated_at
number
required

When the audience was last updated, as a Unix timestamp