Skip to main content

Overview

A buyer property list is a buyer-owned include or exclude set of domains, apps, or CTV identifiers. On the seller side, the most important case is an include list attached to a campaign or media-buy package: the buyer is asking the seller to run on that set of properties if the seller can honor it. The property list reaches the seller as an ADCP PropertyListReference. Its placement depends on the request:
Request stageWhere the reference appears
Initial product discoveryTop-level property_list
Campaign or media-buy package executiontargeting_overlay.property_list
For initial discovery, the buyer’s get_products request can carry the reference at the top level:
{
  "property_list": {
    "agent_url": "https://api.interchange.io",
    "list_id": "42",
    "auth_token": "..."
  }
}
For campaign or media-buy execution, the reference appears in the targeting overlay:
{
  "targeting_overlay": {
    "property_list": {
      "agent_url": "https://api.interchange.io",
      "list_id": "42",
      "auth_token": "..."
    }
  }
}

What the seller’s agent does

When your sales agent receives a property-list reference, it resolves the list from the buyer’s agent URL:
GET {agent_url}/lists/{list_id}
Authorization: Bearer {auth_token}
For Interchange buyer lists, that path is mounted at the app root:
GET https://api.interchange.io/lists/42
Authorization: Bearer {auth_token}
The response uses the ADCP property-list shape:
{
  "list": {
    "list_id": "42",
    "name": "Q1 premium food sites"
  },
  "identifiers": [
    { "type": "domain", "value": "wholesomeyum.com" },
    { "type": "domain", "value": "tastesbetterfromscratch.com" }
  ],
  "resolved_at": "2026-04-25T10:30:00.000Z",
  "cache_valid_until": "2026-04-26T10:30:00.000Z",
  "pagination": {
    "has_more": false,
    "total_count": 2
  }
}
Agents should cache the resolved list until cache_valid_until, then re-fetch if the buy or update still needs it. Large lists can be paginated. Pass max_results and follow pagination.cursor while pagination.has_more is true. Cache each resolved page until cache_valid_until.

What it means operationally

Today, Interchange forwards the property-list reference and provides the resolution endpoint. The seller decides how to honor it. Common seller-side outcomes:
If the seller can…Then the seller can…
Map the identifiers to an existing productOffer or execute that product.
Map the identifiers to ad-server controlsApply the seller’s own GAM key-values, ad units, or placement logic.
Honor only part of the listExplain the supported subset or offer the closest available package.
Not honor the listSay the current products do not support that subset.
Do not treat a buyer property list as automatic ad-server enforcement. If the seller has not configured a way to execute that subset, the honest answer is that the storefront can see the buyer’s requested properties but must decide seller-side whether it can run against them.

How this relates to coverage

Coverage and buyer property lists answer different questions.
QuestionAnswered by
”What publisher domains does this product cover?”The product’s publisher_properties in get_products.
”Which properties is the buyer asking this request to include?”property_list or targeting_overlay.property_list, resolved through GET {agent_url}/lists/{list_id}.
”Can this seller execute the requested subset?”The seller’s products, ad-server setup, and agent behavior.
For network sellers, publisher_properties usually comes from adagents.json authorized coverage. A buyer property list is the buyer’s requested subset inside or across seller coverage.

Property lists

Buyer-side list creation, validation, and resolution.

Publisher properties and coverage

How buyers see the publisher domains a product covers.

Custom targeting and properties

How seller-managed GAM key-values relate to site lists.

Ad-server signal components

Browse GAM targeting and create signal components.