GET /api/v2/buyer/discovery/{discoveryId}/discover-products
Returns products from an existing session without spending another LLM-enriched discovery call. Filters narrow the cached result set in place. Use this to page across groups (groupOffset) and products (productOffset) after the first Discover products call.
Request
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
discoveryId | string | Yes | Path param — session to browse |
groupLimit | integer | No | Max product groups (max 10). Default 10 |
groupOffset | integer | No | Groups to skip. Default 0 |
productsPerGroup | integer | No | Max products per group (max 15). Default 10 |
productOffset | integer | No | Products to skip within each group (max 1000). Default 0 |
publisherDomain | string | No | Filter by publisher domain (exact component match) |
pricingModel | enum | No | cpm, vcpm, cpc, cpcv, cpv, cpp, or flat_rate |
storefrontIds | integer[] | No | Filter by storefront ID(s) (max 50) |
storefrontNames | string[] | No | Filter by storefront name substring (max 50) |
debug | boolean | No | Include per-agent ADCP debug logs for failed agents |
Response
DiscoverProductsResponse shape as discover. Browsing reads from per-group cache (TTL 30 minutes) — re-run POST /discover-products with the same brief to refresh after expiry.
Errors
400 VALIDATION_ERROR— invalidpricingModelor out-of-range pagination value.404 NOT_FOUND—discoveryIddoes not exist or is not visible to the authenticated customer.
Related
Discovery overview
Sessions, pagination, and caching
Discover products
Run discovery and open a session
Add products
Add a browsed product to the selection
Get products
List the current selection