Skip to main content
GET
Browse products for discovery session

Authorizations

Authorization
string
header
required

API key or access token

Path Parameters

discoveryId
string
required

Discovery ID

Minimum string length: 1
Example:

"abc123-def456-ghi789"

Query Parameters

groupLimit
integer
default:10

Maximum number of product groups to return (default: 10, max: 10)

Required range: 1 <= x <= 10
Example:

10

groupOffset
integer
default:0

Number of groups to skip for pagination

Required range: 0 <= x <= 9007199254740991
Example:

0

productsPerGroup
integer
default:10

Maximum products to return per group (default: 10, max: 15)

Required range: 1 <= x <= 15
Example:

10

productOffset
integer
default:0

Number of products to skip within each group (default: 0, max: 1000)

Required range: 0 <= x <= 1000
Example:

5

publisherDomain
string

Filter products by publisher domain (exact domain component match)

Minimum string length: 1
Example:

"hulu"

pricingModel
enum<string>

Filter products by pricing model

Available options:
cpm,
vcpm,
cpc,
cpcv,
cpv,
cpp,
cpa,
flat_rate,
time
Example:

"cpm"

storefrontIds

Filter products by storefront ID(s) (from list_storefronts).

Maximum array length: 50
Required range: 1 <= x <= 9007199254740991
Example:
storefrontNames

Filter products by storefront name (case-insensitive substring match).

Maximum array length: 50
Maximum string length: 255
Example:
debug

When true, includes detailed ADCP agent request/response debug logs in the response for troubleshooting

waitMode
enum<string>
default:quick

quick waits up to 30 seconds per storefront agent and returns partial results if slow agents miss the window. long waits up to 210 seconds per storefront agent; ask the user before using it.

Available options:
quick,
long
Example:

"quick"

waitSeconds
integer

Optional explicit per-storefront wait in seconds, max 210. Overrides waitMode. Ask the user before setting this above 30.

Required range: 1 <= x <= 210
Example:

120

sinceRevision
integer

Progressive polling: return only seller groups that landed after this snapshot revision. Groups use REPLACE semantics — a group may be re-delivered at a later revision when more of its products land; replace it by groupId, never append. The response always carries the current revision, resultsComplete, and pendingAgents; poll again with the returned revision until resultsComplete is true, and stop polling after roughly the wait budget if it never turns true (the fan-out may have been interrupted).

Required range: 0 <= x <= 9007199254740991
Example:

3

Response

Browse products for discovery session

Response from discovering products

discoveryId
string
required

Discovery ID

Example:

"abc123-def456-ghi789"

productGroups
object[]
required

Products grouped by publisher

totalGroups
integer
required

Total number of product groups available

Required range: 0 <= x <= 9007199254740991
Example:

25

hasMoreGroups
boolean
required

Whether more groups are available beyond those shown

summary
object
required

Summary statistics for discovered products

budgetContext
object

Budget context if budget was provided

proposals
object[]

Recommended media plans from sales agents (ADCP v3). Each proposal explains WHY certain products are recommended together and how budget should be allocated.

incompleteAgents
object[]

Storefront agents that timed out or returned ADCP incomplete scopes under the requested wait window. Present without debug=true so callers can offer a longer retry without exposing raw agent logs.

connectionIssues
object[]

Adapter connections that require re-authentication. When present, one or more storefronts were skipped because their OAuth credentials have expired. Go to Settings > Connections to reconnect, then retry.

retryWithLongerWaitAvailable
boolean

True when at least one storefront timed out or returned ADCP incomplete scopes and the request used less than the maximum interactive wait window.

agentResults
object[]

Per-agent debug info. Only present when debug=true; includes timing so callers can decide whether to retry with a longer wait.

refinementApplied
object[]

Seller's response to each refinement instruction, matched by position to the request's refine array. Only present when refine was provided.

revision
integer

Progressive delivery: monotonic snapshot revision. Present on progressive responses and sinceRevision polls; pass it back as sinceRevision to fetch only newly landed seller groups.

Required range: 0 <= x <= 9007199254740991
Example:

3

resultsComplete
boolean

Progressive delivery: false while sellers are still answering in the background. Poll browse_discovery with sinceRevision until true.

Example:

false

pendingAgents
object[]

Progressive delivery: sellers still in flight (not yet answered). Distinct from incompleteAgents, which timed out or answered partially at the final revision.

progress
object

Progressive delivery: authoritative storefront response counts, independent of result-group pagination and sinceRevision delta pages.

diagnostics
object

Advanced support diagnostics. Returned only to elevated/admin contexts and intended for internal troubleshooting.

guidance
string

Human-readable next-step guidance. On progressive responses this spells out the exact continuation call (browse with sinceRevision); on empty results it explains what was queried and suggests adding a brief/brand URL or broadening filters.

Example:

"2 seller(s) still working — call browse_discovery with sinceRevision: 3 for newly landed results."