Skip to main content
POST /api/v2/buyer/advertisers/{advertiserId}/property-lists Creates a named property list scoped to an advertiser. Submit website domains via the domains shorthand, mixed web/mobile/CTV identifiers via identifiers, or both. Identifiers are resolved against the AAO registry and local catalog; the response carries a resolutionSummary showing how many will actually target.

Request

curl -X POST https://api.interchange.io/api/v2/buyer/advertisers/12345/property-lists \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q1 Campaign - UK Premium",
    "purpose": "include",
    "domains": ["example-times.com", "example-press.co.uk", "example-news.com"],
    "filters": { "channels_any": ["display", "olv"] }
  }'

Parameters

FieldTypeRequiredNotes
advertiserIdstringYesPath. Owning advertiser
namestringYesList name (1–255 chars)
purposeenumYesinclude (only buy these) or exclude (never buy these)
domainsstring[]NoShorthand for identifiers of type: "domain". Up to 100,000
identifiersobject[]NoTyped { type, value }. type is domain, subdomain, ios_bundle, android_package, apple_app_store_id, google_play_id, roku_store_id, fire_tv_asin, samsung_app_id, apple_tv_bundle, or bundle_id. Up to 100,000
filtersobjectNochannels_any restricts which targeting profiles the list links to. Channels include display, olv, social, ctv, dooh, and more
Provide domains, identifiers, or both — the combined total must be 1–100,000. They are concatenated and deduplicated.

Response

{
  "propertyList": {
    "listId": "42",
    "name": "Cross-screen premium",
    "purpose": "include",
    "identifiers": [
      { "type": "domain", "value": "example-times.com" },
      { "type": "ios_bundle", "value": "com.exampletimes.ExampleTimes" },
      { "type": "android_package", "value": "com.exampletimes.android" }
    ],
    "unresolvedIdentifiers": [{ "type": "roku_store_id", "value": "12" }],
    "registeredIdentifiers": [],
    "domains": ["example-times.com"],
    "unresolvedDomains": [],
    "registeredDomains": [],
    "propertyCount": 14,
    "resolutionSummary": {
      "totalRequested": 4,
      "resolvedCount": 3,
      "registeredCount": 0,
      "unresolvedCount": 1,
      "resolutionRate": 0.75
    },
    "createdAt": "2026-01-15T10:30:00.000Z",
    "updatedAt": "2026-01-15T10:30:00.000Z"
  }
}
identifiers is the persisted resolved set. unresolvedIdentifiers and registeredIdentifiers are transient — they appear on create/update only, not on subsequent GETs. Always inspect resolutionSummary: a non-zero unresolvedCount means those identifiers will not target.

Errors

  • 400 VALIDATION_ERROR — missing name or purpose, empty identifier set, or combined total above 100,000.
  • 404 NOT_FOUNDadvertiserId does not exist or is not visible to the authenticated customer.
See Errors for the full error contract.

Property list tasks

All property list operations

Property Lists guide

Identifier types, resolution, and concepts

Check property list

Validate a candidate set before creating

Update property list

Replace identifiers on an existing list