Skip to main content
A storefront is a publisher’s buyer-facing home on Interchange — a single ID that aggregates one or more inventory sources. A source can be an external AdCP sales agent or managed ad-server-backed inventory. As a buyer you browse the storefronts you can transact with and connect the credentials each source or adapter needs so discovery and media buys flow. For the full conceptual model — the Merchandising Agent, composition vs. passthrough storefronts, OAuth flows, and the seller side — see the Storefront object guide. Buying through a source-backed storefront is gated on credentials per source when the source requires them. List endpoints return compact summaries with scalar source counts: sourceCount is the number of active sources behind the storefront, and connectedSourceCount is how many of those sources the buyer is already wired to use. Fetching a single storefront returns the rolled-up connected, requiresCredentials, and customerAccounts fields rather than exposing the full source list. Use GET /api/v2/buyer/storefronts/:storefrontId/capabilities when you need a diagnostic view of the active sources behind a storefront. External AdCP sales-agent sources are capability-checkable and include cached-or-refreshed capability details. Managed ad-server-backed sources are returned with probeable: false and probeStatus: "not_applicable"; do not treat those rows as unreachable agents just because they are not checked through the AdCP capabilities endpoint. Adapter storefronts can have more than one connected provider account for the same buyer. For example, an agency can connect separate Snap business accounts for different brands, or a single advertiser can connect separate provider accounts for separate product lines. Use the storefront connection OAuth flow again to add another provider account; already-connected storefronts show this as adding an account rather than replacing the existing one. When listing or linking advertiser accounts from an adapter storefront, use the returned credentialId to distinguish which connected provider credential owns the account. This is required when more than one connected credential can expose the same upstream accountId. Adapter credentials are separate from inventory source credentials. Do not use POST /storefronts/:storefrontId/sources/:sourceId/credentials to fix an adapter-provider OAuth token, API key, or bearer token; reconnect or rotate the adapter credential through the storefront adapter connection flow for that provider.

Adapter credential lifecycle

Adapter storefront credential status is maintained after the initial connection. OAuth credentials are refreshed automatically during use and by a nightly health sweep before expiry. If refresh fails because the provider token is expired, revoked, or otherwise rejected, Interchange marks the adapter credential EXPIRED and the storefront connection summary reports error until the buyer reconnects. Bearer and API-key adapter credentials cannot be refreshed by Interchange. If they carry an expiry timestamp, the health sweep notifies operators before expiry and marks them EXPIRED after expiry. Delegated adapter calls that receive provider auth failures also write back credential health: expired OAuth credentials become EXPIRED, while invalid API keys, bearer tokens, or permission failures become ERROR.

Key concepts

ConceptDescription
StorefrontA publisher’s buyer-facing presence aggregating inventory sources behind one id
Inventory sourceA source behind a storefront, either an external AdCP sales agent or managed ad-server-backed inventory
requiresCredentialsWhether the buyer must register credentials to use a source
connectedWhether the source is usable without additional credentials or already has working buyer credentials
CredentialA buyer’s registered account at a source — covers one or more (storefrontId, sourceId) pairs
credentialIdConnected provider credential identifier used to disambiguate duplicate upstream account IDs
displayStatusconfiguring, transacting, or archived
sourceCount / connectedSourceCountTotal sources vs. those the buyer has wired up

Task reference

List storefronts

GET /storefronts — paginated summaries

Get storefront

GET /storefronts/:storefrontId — rolled-up connection state

Get storefront capabilities

GET /storefronts/:storefrontId/capabilities — source diagnostics

List credentials

GET /storefronts/credentials — all your registered credentials

Register source credentials

POST /storefronts/:storefrontId/sources/:sourceId/credentials — connect an inventory source, not an adapter provider

Storefront object guide

Full model: sources, OAuth, seller side

Discovery

Once connected, run discovery to find products