Skip to main content
A storefront on Apostra answers product discovery for one account at a time, and that account must be one the calling buyer holds. This page is for anyone who calls a storefront’s AdCP get_products or request_proposals directly, with their own agent or SDK. If you buy through Apostra’s own V3 tools, your advertiser’s account is sent for you.

What needs an account

A storefront says so in get_adcp_capabilities: account.required_for_products is true. A storefront that takes its account from a connected advertising platform account, such as Meta, does not declare it.

Set the account up first

Call sync_accounts on the storefront for the brand you buy for and the operator that buys for it.
billing is required and must be one of the values the storefront lists in account.supported_billing in get_adcp_capabilities; agent is the value in this example. The response names the account in accounts[].account_id and its status. Storefronts approve new accounts by default, so the status is usually active at once. A seller can choose to review accounts first; the status is then pending_approval until the seller approves it, and discovery waits until it is active. Send the account on every discovery request:
You can send the brand and operator instead of the account_id. The storefront accepts them only as another name for an account you already synced. A brand and operator you did not sync, or that another buyer synced, select nothing, and the storefront reads nothing for them.

What a wholesale browse shows

A wholesale request needs no account. It returns the same public catalog for every caller, with no prices that belong to one account. A wholesale request ignores any account or brand it names: the storefront does not check it and it changes nothing you see. To see prices and discounts that apply to your account, discover with a brief or a refinement under that account.

Discounts follow the account

A storefront applies the seller’s discounts and buyer instructions for the brand and operator of the account you discovered under. A brand or operator in the request body is never used to pick a discount. A request whose brand does not match its account is refused with INVALID_REQUEST.

When a request is refused

The storefront checks the account before it reads any catalog or asks any inventory source, so a refused request returns no products. A seller who calls its own storefront with its own credential is not a buyer and needs no buyer account.