GET /api/v2/buyer/discovery/{discoveryId}/events
Opens a Server-Sent Events stream that pushes each newly landed seller group from a progressive discovery as it lands, instead of you polling Browse products with sinceRevision. Same continuation contract, delivered as a stream: the server watches the discovery snapshot server-side and emits an event whenever the revision advances.
This is a REST/browser-friendly alternative for callers that want push instead of poll — MCP clients get the equivalent behavior for free via progress notifications during the tool call, then continue with browse_discovery?sinceRevision.
Request
The discovery session must already exist — start one with Discover products usingprogressive: true first.
curl
EventSource
Parameters
Response
Content-Type: text/event-stream. The stream emits these named events, each a data: line of JSON:
Worked example — a discovery with two sellers still outstanding, then completion:
complete event, on a hard 5-minute cap, or when you close it client-side. pendingAgents (still answering) is distinct from incompleteAgents (timed out or answered partially at the final revision) — same distinction as the poll contract.
The stream is served from whichever pod handles your connection, which is not necessarily the pod running the discovery fan-out. It polls the shared discovery snapshot server-side on your behalf (about once a second) — you don’t need to poll anything yourself once the stream is open.
Errors
Errors before the stream opens use the standard JSON error envelope, since noevent: frame has been written yet:
401 UNAUTHORIZED— missing or invalid auth.404 NOT_FOUND—discoveryIddoes not exist or is not visible to the authenticated account.400 VALIDATION_ERROR— the discovery session exists but is not active.
error event instead — the connection cannot switch back to a JSON response body.
Related
Discover products
Run discovery and open a progressive session
Browse products
Poll for the same revisions instead of streaming
Discovery overview
Sessions, refinement, proposals, and storefronts
Webhooks
Get the same revisions pushed to your own endpoint instead