Skip to main content
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

curl -X GET "https://api.interchange.io/api/v2/buyer/discovery/disc_01HZX3YQ7K9R6V3M2P1E0F8B2T/discover-products?groupOffset=10&publisherDomain=acme-media.example&pricingModel=cpm" \
  -H "Authorization: Bearer $SCOPE3_API_KEY"

Parameters

FieldTypeRequiredNotes
discoveryIdstringYesPath param — session to browse
groupLimitintegerNoMax product groups (max 10). Default 10
groupOffsetintegerNoGroups to skip. Default 0
productsPerGroupintegerNoMax products per group (max 15). Default 10
productOffsetintegerNoProducts to skip within each group (max 1000). Default 0
publisherDomainstringNoFilter by publisher domain (exact component match)
pricingModelenumNocpm, vcpm, cpc, cpcv, cpv, cpp, or flat_rate
storefrontIdsinteger[]NoFilter by storefront ID(s) (max 50)
storefrontNamesstring[]NoFilter by storefront name substring (max 50)
debugbooleanNoInclude per-agent ADCP debug logs for failed agents

Response

{
  "discoveryId": "disc_01HZX3YQ7K9R6V3M2P1E0F8B2T",
  "productGroups": [
    {
      "groupId": "ctx_disc_01HZX3-group-1",
      "groupName": "Example Media Premium CTV",
      "productCount": 6,
      "totalProducts": 9,
      "hasMoreProducts": true,
      "products": [
        {
          "productId": "prod_example_ctv_premium",
          "name": "Example Media Premium CTV - 30s",
          "channel": "ctv",
          "cpm": 28.0,
          "salesAgentId": "agent_example_media",
          "deliveryType": "guaranteed"
        }
      ]
    }
  ],
  "totalGroups": 18,
  "hasMoreGroups": false,
  "summary": { "totalProducts": 142, "publishersCount": 18, "priceRange": { "min": 4.5, "max": 78.0, "avg": 21.4 } }
}
Returns the same 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 — invalid pricingModel or out-of-range pagination value.
  • 404 NOT_FOUNDdiscoveryId does not exist or is not visible to the authenticated customer.
See Errors for the full error contract.

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