Skip to main content
POST
/
advertisers
/
{accountId}
/
audiences
/
sync
Sync audiences
curl --request POST \
  --url https://api.agentic.scope3.com/api/v2/buyer/advertisers/{accountId}/audiences/sync \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "audiences": [
    {
      "audienceId": "<string>",
      "name": "<string>",
      "add": [
        {
          "externalId": "<string>",
          "hashedEmail": "a1b2c3d4e5f6...",
          "hashedPhone": "f6e5d4c3b2a1...",
          "uids": [
            {
              "type": "<string>",
              "value": "<string>"
            }
          ]
        }
      ],
      "remove": [
        {
          "externalId": "<string>"
        }
      ],
      "delete": true,
      "consentBasis": "consent"
    }
  ]
}
'
{
  "success": true,
  "accountId": "<string>",
  "operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "taskId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}

Authorizations

Authorization
string
header
required

API key or access token

Body

application/json

Sync audience data into Scope3

audiences
object[]
required

Audiences to sync

Minimum array length: 1
deleteMissing
boolean

When true, audiences not in this request are marked as deleted.

Response

Sync audiences

Audience sync accepted for async processing

success
boolean
required
accountId
string
required

AdCP account ID (advertiser) these audiences belong to

operationId
string<uuid>
required

Batch operation UUID for tracking async processing

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
taskId
string<uuid>
required

Task ID for polling progress via GET /tasks/{taskId}. Same value as operationId.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$