I’m a buyer: why isn’t my buy live?
One-call lookup
GET /api/v2/buyer/media-buys/{mediaBuyId} returns one media buy with every field below. Over MCP,
call get with kind: "media_buy" and the id.
GET /api/v2/buyer/campaigns/{id}/media-buy-status returns
pendingReason, pendingSince, errorCode, errorOwner and blockers per buy. The campaign
workspace shows a short label for each buy, such as “Awaiting seller approval”.
pendingReason: what it’s waiting on
A buy that’s
ACTIVE can still be waiting to start or for creatives: the campaign’s operational
status (pending_start, pending_creatives) says which. See the
campaign page.
errorCode: why it failed
When a launch partly fails, the launch result lists each failed buy with a
recovery of
transient, correctable or terminal and a retrySafe flag. Launching again re-sends only the
buys that are still drafts or marked retrying.
What to quote
QuotebuyerReference (and forwardedAt when it’s set) when you contact the seller or the Semicola
team about a stuck buy. To reach the Semicola team, ask Semi to file an ask, or call save_ask with
type: "support".
Push notifications for buy transitions aren’t available yet. Read the buy, or poll its task, to
follow it.
I’m a seller: what needs my attention?
Buys that wait on you sit in your storefront’s approval queue.- Queued buys.
open_approvalsshows the review queue;decide_media_buy_approvalapproves or rejects one. See Approvals. - Every buy on the storefront.
open_media_buys_pagelists them, most urgent first. - A failed forward. When you approved a buy but sending it on to your inventory source failed,
retry_forwardre-sends it with the same idempotency key, so it can’t double-book.
Related
Tasks
Poll a seller’s review task.
Media buy lifecycle
Every status, and how acceptance works.