Array of matching products
OptionalproposalsOptional array of proposed media plans with budget allocations across products. Publishers include proposals when they can provide strategic guidance based on the brief. Proposals are actionable - buyers can refine them via follow-up get_products calls within the same session, or execute them directly via create_media_buy.
OptionalerrorsTask-specific errors and warnings (e.g., product filtering issues)
Optionalproperty_[AdCP 3.0] Indicates whether property_list filtering was applied. True if the agent filtered products based on the provided property_list. Absent or false if property_list was not provided or not supported by this agent.
Optionalcatalog_Whether the seller filtered results based on the provided catalog. True if the seller matched catalog items against its inventory. Absent or false if no catalog was provided or the seller does not support catalog matching.
Optionalrefinement_Seller's response to each change request in the refine array, matched by position. Each entry acknowledges whether the corresponding ask was applied, partially applied, or unable to be fulfilled. MUST contain the same number of entries in the same order as the request's refine array. Only present when the request used buying_mode: 'refine'.
Optionalscope?: "product" | "request" | "proposal"Echoes the scope from the corresponding refine entry. Allows orchestrators to cross-validate alignment.
Optionalid?: stringEchoes the id from the corresponding refine entry (for product and proposal scopes).
'applied': the ask was fulfilled. 'partial': the ask was partially fulfilled — see notes for details. 'unable': the seller could not fulfill the ask — see notes for why.
Optionalnotes?: stringSeller explanation of what was done, what couldn't be done, or why. Recommended when status is 'partial' or 'unable'.
OptionalincompleteDeclares what the seller could not finish within the buyer's time_budget or due to internal limits. Each entry identifies a scope that is missing or partial. Absent when the response is fully complete.
'products': not all inventory sources were searched. 'pricing': products returned but pricing is absent or unconfirmed. 'forecast': products returned but forecast data is absent. 'proposals': proposals were not generated or are incomplete.
Human-readable explanation of what is missing and why.
Optionalestimated_wait?: DurationHow much additional time would resolve this scope. Allows the buyer to decide whether to retry with a larger time_budget.
OptionalpaginationOptionalsandboxWhen true, this response contains simulated data from sandbox mode.
OptionalcontextOptionalext
Response payload for get_products task