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 credentialEXPIRED 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
| Concept | Description |
|---|---|
| Storefront | A publisher’s buyer-facing presence aggregating inventory sources behind one id |
| Inventory source | A source behind a storefront, either an external AdCP sales agent or managed ad-server-backed inventory |
requiresCredentials | Whether the buyer must register credentials to use a source |
connected | Whether the source is usable without additional credentials or already has working buyer credentials |
| Credential | A buyer’s registered account at a source — covers one or more (storefrontId, sourceId) pairs |
credentialId | Connected provider credential identifier used to disambiguate duplicate upstream account IDs |
displayStatus | configuring, transacting, or archived |
sourceCount / connectedSourceCount | Total sources vs. those the buyer has wired up |
Task reference
List storefronts
GET /storefronts — paginated summariesGet storefront
GET /storefronts/:storefrontId — rolled-up connection stateGet storefront capabilities
GET /storefronts/:storefrontId/capabilities — source diagnosticsList credentials
GET /storefronts/credentials — all your registered credentialsRegister source credentials
POST /storefronts/:storefrontId/sources/:sourceId/credentials — connect an inventory source, not an adapter providerRelated
Storefront object guide
Full model: sources, OAuth, seller side
Discovery
Once connected, run discovery to find products