Connect an AdCP source
curl --request POST \
--url https://api.interchange.io/api/v2/api/v2/buyer/storefronts/{storefrontId}/sources/{sourceId}/adcp-connection \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.interchange.io/api/v2/api/v2/buyer/storefronts/{storefrontId}/sources/{sourceId}/adcp-connection"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.interchange.io/api/v2/api/v2/buyer/storefronts/{storefrontId}/sources/{sourceId}/adcp-connection', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Task Reference
Connect an AdCP source
Project a registered AdCP provider account into tracked-campaign mirroring
POST
/
api
/
v2
/
buyer
/
storefronts
/
{storefrontId}
/
sources
/
{sourceId}
/
adcp-connection
Connect an AdCP source
curl --request POST \
--url https://api.interchange.io/api/v2/api/v2/buyer/storefronts/{storefrontId}/sources/{sourceId}/adcp-connection \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.interchange.io/api/v2/api/v2/buyer/storefronts/{storefrontId}/sources/{sourceId}/adcp-connection"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.interchange.io/api/v2/api/v2/buyer/storefronts/{storefrontId}/sources/{sourceId}/adcp-connection', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));This operation is for active, registered AdCP sources, not official social
adapters.
Before you call
- Find the storefront and source with
list_storefrontsandget_storefront_capabilities. - Register the source credential with
register_source_credentials. - Discover accounts with
list_available_accounts; use only an account and credential ID returned by that operation. - Link the account to the intended advertiser.
get_media_buys is required for
account-wide mirroring and get_media_buy_delivery for reporting, but a source
that omits either may still connect and use its other directed operations.
curl -X POST \
"https://api.interchange.io/api/v2/buyer/storefronts/42/sources/publisher-sales/adcp-connection" \
-H "Authorization: Bearer $SCOPE3_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"advertiserId": "12345",
"accountId": "provider-account-7",
"credentialId": "81"
}'
| Field | Location | Required | Description |
|---|---|---|---|
storefrontId | path | Yes | Listed storefront ID containing the source |
sourceId | path | Yes | Active source ID returned by storefront capabilities |
advertiserId | body | Yes | Advertiser already linked to the source account |
accountId | body | Yes | Account ID returned by list_available_accounts |
credentialId | body | Conditional | Required when multiple active credentials expose the account |
Response
{
"data": {
"connectionId": "101",
"connectionAccountId": "102",
"storefrontId": "42",
"sourceId": "publisher-sales",
"agentId": "publisher-sales-agent",
"advertiserId": "12345",
"externalAccountId": "provider-account-7",
"providerType": "adcp",
"connectionKind": "THIRD_PARTY_AGENT"
}
}
connectionId and connectionAccountId to subscribe that account to the
tracked-campaign mirror. The operation is idempotent for the same
registered source credential and reuses its active connection.
get_media_buys is account-wide, so a seller agent credential can be associated
with only one source on the storefront. If a sibling source uses the same
credential, reuse the existing source; creating a second connection would
duplicate campaign shells and is rejected.
Security boundary
This operation does not accept arbitrary endpoint URLs, tokens, or raw secrets. Endpoint ownership, seller identity, andadagents.json authorization must be
established by the registered storefront source before it can be connected.
Errors
422 CAPABILITY_NOT_SUPPORTED— the requested downstream operation is not supported by the seller. Other directed operations remain available.409 CONFLICT— the same account-wide agent credential is already associated with another source.403 ACCESS_DENIED— the advertiser is outside the caller’s customer scope.400 VALIDATION_ERROR— the source/account relationship is not registered and mapped, the storefront/source is unavailable, orcredentialIdis required to disambiguate it.
Campaigns on connected provider accounts
Subscribe, mirror, and read delivery
Register source credentials
Establish the source credential first