Deal lifecycle
How a deal's status changes and how to observe it.
Sovrn owns the deal's status; you observe it through the read endpoints. A deal
with a future start date is created as scheduled and becomes active on its
start date. Sovrn operators may pause or archive a deal; those changes surface on
the next read of that deal.
Deal types
type on a deal request selects how buyers reach the deal. It is chosen at
creation and cannot be changed afterwards.
type | What it is |
|---|---|
pmp (default) | A private marketplace deal. Every buyer carries at least one seatIds entry — the seats on that DSP that may transact. Omitting type is the same as sending pmp, so existing integrations are unaffected. |
open | A non-seat deal: any buyer on the DSP can transact. Each buyer carries the partner only — seatIds must be omitted, and a buyer that includes it is rejected. On DV360 an open deal appears as an Auction Package. |
{
"type": "open",
"buyers": [{ "partner": "dv360" }]
}Two consequences of type being fixed at creation:
PATCH /deal-requests/{id}does not accepttype. Sending it returns400.- Buyers on an
opendeal cannot be edited. APATCHthat includesbuyers
on an open deal returns400; to change the buyer, create a new deal request.
DSP-specific requirementsSome DSPs require fields this API otherwise treats as optional. See
Demand partners for the requirements that apply to a
given buyer before you submit.
Statuses
| Status | Meaning |
|---|---|
active | Live and eligible to transact. |
scheduled | Created with a future start date; becomes active on that date. |
paused | Temporarily paused by a Sovrn operator. |
review | Pending operator review. |
dsp review | Awaiting DSP confirmation (applies to certain buyers). |
archived | Terminated; no longer active. |
Judging freshness
GET /deal-requests/{id}refreshes the status from source (cached ~30s) and
reportsstatusAsOf. If that refresh fails, it returns the last-known status
with a200(not an error) — always readstatusAsOfto judge freshness. The
list endpoint does not refresh; poll the by-id endpoint for current status.
Updated 4 days ago

