Objects reference
The shapes that recur across the API, each with its full field reference. This page is the canonical definition of every object; endpoint pages link here instead of redefining shapes. How the objects relate: the object model.
Reading the tables
- A required badge marks fields the API rejects without; no badge means optional. Some fields are alternatives: the description names the choice.
- Enumerated values live once, in Enumerations. Open enums may grow; treat unknown values as pass-through.
- All timestamps are UTC. Local time ranges resolve against the seller's declared timezone at ingest.
package
The sellable unit: seller-defined, versioned, date-bounded. Concept: Packages.
{
"package_id": "acme-prime",
"type": "daypart",
"network": "ACME",
"provider": "National ACME",
"definition": {
"selling_title": "Prime",
"days": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
"start": "20:00",
"end": "23:00",
"timezone": "America/New_York",
"sample_programming": ["Acme Tonight", "Prime Movie"],
"mirror": {
"offset_minutes": 240
}
},
"taxonomy_version": "acme-2026q4-v1",
"effective": {
"start": "2026-09-28",
"end": "2026-12-27"
},
"currencies": ["spots", "hh", "p2plus", "a25_54"],
"guarantee_tiers": ["ng_preemptible", "guaranteed", "audience_guaranteed"],
"deal_types": ["preemptible", "fixed", "audience_as_aired", "audience_guaranteed"],
"spot_lengths": [15, 30, 60],
"advertiser_classes": ["general", "dr", "competitive", "theatrical"],
"sm_daypart": "Primetime",
"disclosure": {
"avails_policy": "published",
"pricing_policy": "published"
},
"market": {
"scheme": "nielsen_dma",
"code": "501",
"name": "New York",
"country": "US"
},
"inventory_pool": {
"pool_id": "acme-prime-breaks",
"max_per_week": 60
}
}
| Field | Type | Description |
|---|---|---|
package_id required | string | Stable identifier. Maps to the EDI product code on delivered orders. |
type required | enum | One of the package types. Tentpoles are programs. |
network required | string | The channel. |
provider required | string | The bookable entity. Multi-network sellers carry both: provider books, network airs. |
definition required | object | What the package covers. Shape varies by type; fields below. |
taxonomy_version required | string | Selling-title definitions are versioned data with effective windows, never enums. Orders pin the version they bought against. |
effective.start, effective.end required | ISO date | The package's active window. Holiday variants are just versions. |
currencies required | array of string | What the package trades in: spots or audience codes. |
guarantee_tiers | array of string | Offered guarantee tiers. |
deal_types | array of string | Permitted deal types. |
spot_lengths | array of integer | Supported creative lengths in seconds. |
advertiser_classes | array of string | Accepted advertiser classes. Seller-defined; open. |
sm_daypart | string | Mapping to the platform's fixed reporting dayparts. Reporting only; never a booking key. |
disclosure | object | How much the package reveals: avails_policy (one of the avails policies) and pricing_policy (one of the pricing policies). Both default to published; overridable per agreement. See Disclosure. |
market | object | Geography. Omitted means national. Fields below. |
inventory_pool | object | Opts the package into shared capacity: pool_id references a declared pool; max_per_week caps this package's draw. See shared pools. |
definition
| Field | Type | Description |
|---|---|---|
selling_title | string | Daypart packages: the seller's own selling title, with days, start, and end. Program and genre packages carry program or genre references instead; rotators carry rotation rules. |
days | array of string | Weekday pattern, Mon through Sun. |
start, end | string | Local time range, HH:MM, resolved against timezone at ingest. |
occurrences | array of object | Event-dated programs replace days/start/end with dated occurrences: {date, start, end, label}. Slots then exist only on those dates. |
timezone required | string | IANA timezone the local times resolve against. |
sample_programming | array of string | Representative programming. Required on ROS and RON selling titles. |
mirror.offset_minutes | integer | Paired mirror airing at a fixed offset: the "8P-12A with 12A-4A mirror" pattern. Order lines opt in with include_mirror. |
market
| Field | Type | Description |
|---|---|---|
scheme required | enum | One of the market schemes. |
code required | string | The market code within the scheme, for example DMA 501. |
name | string | Display name. |
country | string | ISO country code. |
pool
Seller-owned shared capacity. Packages that declare the same inventory_pool may overlap in coverage (the declared exception to the catalog integrity rule) and draw down one capacity, each bounded by its own max_per_week. Concept: Packages: shared pools.
{
"pool_id": "acme-prime-breaks",
"network": "ACME",
"unit": "spots",
"capacity": {
"grain": "week",
"per_week": 80
},
"effective": {
"start": "2026-09-28",
"end": "2026-12-27"
}
}
| Field | Type | Description |
|---|---|---|
pool_id required | string | Referenced by package.inventory_pool.pool_id. Validated at ingest: the pool must exist on the same seller and network, with matching unit and a covering effective window, or the catalog update rejects. |
network required | string | Pools do not span networks. |
unit required | string | What the capacity counts, for example spots. |
capacity.grain, capacity.per_week required | object | The shared floor. Member caps may add up to more than the pool; the pool holds either way, first committed wins. |
effective.start, effective.end required | ISO date | Must cover the coverage of every member package. |
slot
A package on a date: the orderable instance. Slots are not a registry; the ID is derived, and a slot inherits the rate entries of its ISO week. The grain rule in one sentence: cards price by week; trades book by slot. Concept: Packages: slots.
{
"slot_id": "acme-prime:2026-10-07",
"package_id": "acme-prime",
"date": "2026-10-07",
"week": "2026-W41"
}
| Field | Type | Description |
|---|---|---|
slot_id required | string | Always {package_id}:{date}. Constructible; no lookup needed. |
package_id required | string | The package this slot instantiates. |
date required | ISO date | Booking a slot pins this air date: daylocked by construction. |
week required | ISO week | The date's ISO week; the rate entries it inherits. |
rate entry
One priced cell of a rate card commit: (package, week) by class, length, and tier. Concept: Rates.
{
"package_id": "acme-prime",
"week": "2026-W41",
"advertiser_class": "general",
"spot_length": 30,
"guarantee_tier": "ng_preemptible",
"clearance_tier": "P2",
"class": "scatter",
"gross_rate_unit": 405.00,
"gross_rate_weekly": 4050.00,
"currency": "USD",
"locked_rate_id": "lr_88c1",
"commit": "acme-2026q4-v2",
"commit_kind": "standing",
"agreement_scope": null
}
| Field | Type | Description |
|---|---|---|
package_id, week required | string, ISO week | Cards price by week; the week's slots inherit these entries. |
advertiser_class required | enum | One of the advertiser classes. Seller-defined; open. |
spot_length required | integer | Creative length in seconds this rate prices. |
guarantee_tier required | enum | One of the guarantee tiers. |
clearance_tier | enum | One of the clearance tiers. |
class required | enum | Market timing, one of the market classes. Political LUR is an advertiser class, not a market class; negotiated pricing is agreement-scoped, not a class. |
gross_rate_unit, gross_rate_weekly required | number | Gross rates, honestly named. Per-second sellers may declare rate_basis: "cost_per_second" instead; unit cost then resolves as cost_per_second x spot_length at order time. |
currency required | ISO 4217 | Declared once per card commit and echoed per entry. One trade currency per commit and per order: locked at order time, carried, never converted. |
locked_rate_id required | string | What an order line cites to lock this price. See the price-clearance invariant. |
commit required | string | The versioned card commit this entry belongs to. |
commit_kind | enum | standing (default) or quote. A quote commit is minted per campaign inside a plan, carries quote_expires_at and a proposal_ref, and locks like any card on confirm. See Disclosure. |
quote_expires_at | ISO datetime | Set on quote commits: after it, the entry is a stale card and returns STALE_RATE_CARD. |
agreement_scope | string | null on open cards; an agreement id on buyer-scoped cards and quotes minted for one buyer alone. |
avail
One availability statement at the seller's declared precision. A week-grain entry speaks for every slot in that week; a date-grain entry speaks for one slot. The platform never invents per-date data from a week-grain statement. Concept: Currencies.
{
"package_id": "acme-prime",
"week": "2026-W41",
"grain": "week",
"date": null,
"slot_id": null,
"state": "available",
"basis": "actual",
"spots": {
"available": 42,
"total": 80
},
"impressions": {
"hh": {
"per_spot": 128000,
"source": "nielsen",
"stream": "c3"
}
},
"sellout_level": 0.62,
"as_of": "2026-10-01T12:00:00Z"
}
| Field | Type | Description |
|---|---|---|
package_id, week required | string, ISO week | What the statement covers. |
grain required | enum | week or date: the seller's declared precision. |
date, slot_id | ISO date, string | Populated when grain is date; the one slot the entry speaks for. |
state required | enum | One of the avail states. |
basis required | enum | actual or projected. |
spots.available, spots.total | object | Unit counts for spot currency. |
impressions | object | Map keyed by audience code; each value carries per_spot, source, and stream (c3, c7, live_sd). The platform carries these figures; it never computes them. |
sellout_level | number | 0 to 1. |
as_of required | ISO datetime | Staleness marker for the two-phase availability pattern. |
pool | object | Echoed on pooled packages: {pool_id, remaining}. Pooled avails report the lower of package cap remaining and pool remaining. |
order
The transaction. Price locks at order time; later card changes never invalidate an accepted price. Concept: Orders; lifecycle: the state machine.
{
"order_id": "ord_9f3a12c4b7e1",
"external_order_id": "q4-campaign-042",
"seller": "acme",
"deal_type": "preemptible",
"workflow": "catalog",
"status": "placed",
"substatus": null,
"last_seq": 5,
"rate_version": "acme-2026q4-v1",
"settlement_mode": "direct",
"line_items": [
{
"unit_id": "u-0001",
"package_id": "acme-prime",
"provider": "National ACME",
"network": "ACME",
"week": "2026-W40",
"slot_id": null,
"units": 10,
"spot_length": 30,
"rate": {
"class": "scatter",
"unit_cost": 405.00,
"locked_rate_id": "lr_88c1",
"currency": "USD"
},
"status": "accepted",
"num_requested": 10,
"num_accepted": 10,
"allocation": [
{
"date": "2026-10-05",
"units": 4
},
{
"date": "2026-10-07",
"units": 3
},
{
"date": "2026-10-09",
"units": 3
}
]
}
],
"totals": {
"gross": 4050.00,
"currency": "USD"
}
}
| Field | Type | Description |
|---|---|---|
order_id required | string | Platform-minted, ord_ plus 12 hex. |
external_order_id required | string | Your idempotency key, echoed on every event. Byte-identical resubmission replays the stored response; 409 only on a changed payload. |
seller required | string | The counterparty. |
deal_type required | enum | One of the deal types. |
workflow | enum | One of the workflows. Default: catalog. |
status, substatus | enum | One of the order statuses. Switch on status; step markers stay informational. |
last_seq | integer | The latest event sequence, for replay via GET /events. |
rate_version required | string | The card commit the order prices against. See the price-clearance invariant. |
settlement_mode | enum | One of the settlement modes. Default: direct. |
line_items required | array of object | One line books one week or one slot. Fields below. |
buyer_metadata | object | Named keys include advertiser and estimate_id, the agency estimate number echoed on EDI delivery. Without it, agency billing systems cannot match the record. |
totals.gross, totals.currency, totals.impressions | object | Gross total in the order's one trade currency, plus impression totals per traded audience. |
line_items[]
| Field | Type | Description |
|---|---|---|
unit_id | string | Platform-assigned per line; how results and counters reference lines. |
package_id required | string | From the seller's catalog. |
provider, network required | string | Bookable entity and channel. |
week | ISO week | Books a package week; the seller distributes units across the week's slots. Set week or slot_id, not both. |
slot_id | string | Books one slot: acme-prime:2026-10-07. Daylocked by construction. |
units | integer | For spot currency. Set units or impressions_goal, not both. |
impressions_goal | integer | For impression currency. |
spot_length required | integer | Seconds; must be a length the rate entry prices. |
include_mirror | boolean | Books the package's paired mirror airing too. Default: false. |
rate required | object | {class, advertiser_class, guarantee_tier, clearance_tier, unit_cost, locked_rate_id, currency}: the priced cell the line locks, citing its rate entry. |
rc_impressions | object | Impression estimates at order time, per audience code, kept for buysheet parity. |
copy_id | string | Creative reference. Ad-ID and ISCI identifiers ride here. |
status | enum | Result, one of the unit statuses. |
num_requested, num_accepted | integer | Partial acceptance reports per unit; order-level partial is a completed order with a mixed unit set, never a stall. |
allocation | array of object | Authoritative air dates once decided: {date, units} entries summing to num_accepted. Slot lines have a single entry; week lines may spread across the package's weekday pattern. A multi-unit week line never collapses to one date. |
reason | string | Populated on rejected and countered lines; persisted. |
in_response_to | string | On countered lines: the unit_id this counter answers. Counters are additive result lines; see Negotiation. |
order_event
The append-only record of everything that happens to an order. Delivery semantics: the event envelope.
{
"order_id": "ord_9f3a12c4b7e1",
"external_order_id": "q4-campaign-042",
"seq": 5,
"status": "placed",
"substatus": null,
"units": [
{
"unit_id": "u-0001",
"status": "accepted",
"num_accepted": 10
}
],
"artifact": {
"name": "placement_receipt",
"seller_order_id": "ACME-77120"
},
"error": null,
"occurred_at": "2026-10-02T14:41:09Z"
}
| Field | Type | Description |
|---|---|---|
order_id, external_order_id required | string | Both ids on every event. |
seq required | integer | Strictly increasing per order. Retries reuse the seq; dedup on (order_id, seq). |
status required | enum | One of the order statuses. |
substatus | string | Informational step marker. |
units | array of object | Per-unit results when the transition carries them. |
artifact | object | Attached document or receipt, by name: placement_receipt (the booking receipt: the seller's order ID and daylocks), parsed buysheets, delivery posts. |
error | object | {error_code, stage, recoverable}. Codes are UPPERCASE; see Errors. |
occurred_at required | ISO datetime | UTC. |
negotiation
The offer and counter history of one order. The order parks in negotiating between rounds. Concept: Negotiation.
{
"negotiation_id": "neg_33a7",
"order_id": "ord_9f3a12c4b7e1",
"state": "countered",
"rounds": [
{
"actor": "seller",
"counter": {
"unit_id": "u-0002",
"week": "2026-W42",
"unit_cost": 392.00,
"num_offered": 8
},
"expires_at": "2026-09-30T20:00:00Z"
}
]
}
| Field | Type | Description |
|---|---|---|
negotiation_id, order_id required | string | One negotiation per order. |
state required | enum | One of open, countered, accepted, expired, withdrawn. |
rounds required | array of object | Each round: {offer, counter, actor, expires_at}. Counters surface on the order as additive lines with in_response_to. |
proposal_request
The buyer's open ask: carried on POST /orders with deal_type: "proposal" instead of line items. No package IDs required. Concept: Proposals.
{
"request_type": "audience_plan",
"audience": {
"definition": {
"demo": "A25-54",
"segments": ["auto_intenders_q4"]
},
"currency_goal": {
"unit": "a25_54",
"target": 42000000
}
},
"anchor_package_ids": ["acme-prime"],
"budget_gross": 500000,
"flight": {
"start": "2026-10-05",
"end": "2026-12-27"
},
"constraints": {
"spot_lengths": [15, 30],
"max_unit_cost": 450.00
},
"acceptance_band": {
"metric": "delivery",
"tolerance_pct": 2,
"action": "auto_accept"
},
"brief": "Reach auto intenders in the Northeast; avoid overnight rotations."
}
| Field | Type | Description |
|---|---|---|
request_type required | enum | One of the request types. |
audience.definition | object | An inline audience definition. Set one of definition, audience_id, or upload_id. |
audience.audience_id | string | A shared audience reference. |
audience.upload_id | string | An uploaded plan or audience file. |
audience.currency_goal | object | {unit, target}: the audience code and impression goal the plan should hit. |
anchor_package_ids | array of string | Optional starting points. |
budget_gross required | number | Gross, in the trade currency. |
flight.start, flight.end required | ISO date | The flight window. |
constraints | object | Spot lengths, max unit cost, copy splits, daypart mix. |
acceptance_band | object | Optional auto-accept tolerance: metric (delivery or budget), tolerance_pct (a percentage; 2 means 2%), and action (auto_accept or flag). The platform evaluates it deterministically against the request target when the plan returns; the comparison is one-sided per metric. The exact math, boundary, and missing-metric rules, with worked examples, are on Proposals. |
brief | string | Free text for the seller's planners. |
The seller's plan_proposal response prices line items off their card and may mint custom packages scoped to your agreement: each gets a real package_id and books through the same rails. Rates it mints per campaign are quote commits. Where the seller cannot meet the whole ask, the plan returns the shortfall as unmet[] rather than a silent gap. Nothing books until you confirm, or until an acceptance_band you set fires.
plan_proposal
The seller's answer to a proposal order: the assembled first-pass plan, attached as an artifact when the order enters needs_confirmation. The seller writes it with POST /me/orders/{id}/plan; the buyer confirms, counters, or declines. Concept: Proposals.
{
"name": "plan_proposal",
"plan_id": "plan_5b2e",
"proposal_ref": "ord_c19a44e2f0b1",
"line_items": [
{
"package_id": "acme-auto-q4-9f",
"minted": true,
"week": "2026-W40",
"impressions_goal": 21000000,
"spot_length": 30,
"rate": {
"class": "scatter",
"unit_cost": 11.90,
"locked_rate_id": "lr_q_2f7a",
"currency": "USD",
"commit_kind": "quote"
}
}
],
"minted_packages": ["acme-auto-q4-9f"],
"quote_refs": ["acme-yourco-q4-quote-1"],
"plan_totals": {
"gross": 499800.00,
"currency": "USD",
"projected_delivery": {
"a25_54": 41800000
}
},
"unmet": [
{
"requested": "overnight rotations",
"reason": "held for a committed buyer"
}
],
"expires_at": "2026-09-30T20:00:00Z",
"created_at": "2026-09-23T15:10:00Z"
}
| Field | Type | Description |
|---|---|---|
plan_id required | string | The plan's id; referenced when the buyer confirms or counters. |
proposal_ref required | string | The order_id of the proposal order this plan answers. |
line_items required | array of object | The proposed buy. Same shape as an order line, each citing a locked_rate_id; minted: true marks a package minted for this request. |
minted_packages | array of string | The package_ids minted for this request, scoped to your agreement and reorderable next quarter. |
quote_refs | array of string | The quote rate-card commits the line rates lock against; each carries a quote_expires_at. |
plan_totals required | object | {gross, currency, projected_delivery}. projected_delivery is a map keyed by audience code; it is the figure an acceptance_band with metric: delivery is checked against. |
unmet | array of object | The availability counter: what the seller could not fill, each {requested, reason}. Empty when the plan meets the whole ask. |
expires_at required | ISO datetime | The plan offer's own validity; after it, the order lapses. Distinct from a quote's quote_expires_at (the rate's validity). |
created_at required | ISO datetime | When the seller returned the plan. |
delivery_post
Seller-supplied actuals, attached to an order as an artifact. Audience guarantees reconcile against it; the platform carries the numbers and never computes them. Concept: Reconciliation.
{
"name": "delivery_post",
"order_id": "ord_9f3a12c4b7e1",
"week": "2026-W40",
"units": [
{
"unit_id": "u-0001",
"aired": 10,
"delivered": {
"hh": 1260000,
"p2plus": 1910000,
"a25_54": 804000
},
"source": "nielsen"
}
],
"currency_of_record": "a25_54",
"shortfall": null
}
| Field | Type | Description |
|---|---|---|
order_id, week required | string, ISO week | Posts are week-grain per-unit counts today. |
units required | array of object | Per unit: aired count, delivered impressions keyed by audience code, and source. |
currency_of_record required | string | The audience the guarantee settles on. |
shortfall | object | Populated when a guarantee under-delivers; triggers the package's make-good policy. |
capability_profile
What a seller's connection can do. The orchestrator never calls what the profile does not advertise; it degrades gracefully instead. Endpoints: Capabilities. Concept: Connections.
{
"seller_id": "acme",
"conformance_level": 2,
"transports": {
"result_delivery": ["callback", "poll", "sqs", "console"],
"formats": ["json", "csv", "xlsx"]
},
"capabilities": {
"realtime_availability": true,
"counter_proposals": false,
"reservation_hold": false,
"pricing_modes": ["rate_card"]
},
"rate_management": {
"mode": "frozen_quarterly"
},
"sla": {
"standard": {
"min_lead_minutes": 2880,
"max_decision_latency_seconds": 14400
}
}
}
| Field | Type | Description |
|---|---|---|
seller_id required | string | The tenant the profile describes. |
conformance_level required | integer | 0 through 4. See Seller levels. |
transports.result_delivery required | array of string | Delivery rungs offered: callback, poll, sqs, console. |
transports.formats | array of string | File formats accepted and produced. |
capabilities.realtime_availability | boolean | Live avails vs declared cadence. |
capabilities.counter_proposals | boolean | Level 3 counters on decide. |
capabilities.reservation_hold | boolean | Level 4 holds with TTL. |
capabilities.pricing_modes | array of string | rate_card, clearance, negotiated. |
rate_management.mode | enum | frozen_quarterly, live_avails, or live_rates. |
sla | object | Per service class: minimum lead time and maximum decision latency. |
agreement
The relationship, made explicit: functionally a deal ID. Presenting it unlocks private catalog scope, buyer-scoped rate cards, permitted deal types, and the settlement mode. Concept: Agreements.
{
"agreement_id": "agr_71c0d2",
"buyer": "yourco",
"seller": "acme",
"catalog_scope": ["open", "private"],
"rate_card_refs": ["acme-yourco-2026q4"],
"deal_types": ["preemptible", "fixed", "audience_as_aired", "audience_guaranteed"],
"settlement_mode": "direct",
"disclosure_overrides": [
{ "package_id": "acme-prime", "avails_policy": "published", "pricing_policy": "agreement" },
{ "package_id": "*", "avails_policy": "on_request" }
],
"credit": null,
"effective": {
"start": "2026-10-01",
"end": "2027-09-30"
}
}
| Field | Type | Description |
|---|---|---|
agreement_id required | string | What rate_entry.agreement_scope and minted proposal packages reference. |
buyer, seller required | string | The two parties. |
catalog_scope required | array of string | open, private, or both. |
rate_card_refs | array of string | Buyer-scoped card commits only this buyer can transact. |
deal_types | array of string | Permitted deal types under this agreement. |
settlement_mode required | enum | One of the settlement modes. |
disclosure_overrides | array of object | Seller-authored, optional. Each entry is {package_id, avails_policy?, pricing_policy?}, where package_id may be "*" for all packages in scope. For a buyer presenting this agreement, the effective policy per field resolves as override(package_id) ?? override("*") ?? package.disclosure ?? published (avails and pricing independent; an omitted field inherits the package default). This is how a seller publishes to a trusted buyer while withholding from the open catalog. Buyers never set disclosure; an override naming a package outside catalog_scope is a no-op. See Disclosure. |
credit | object | Populated on cleared agreements: limit and exposure. See GET /settlement/credit. |
effective.start, effective.end required | ISO date | The agreement's window. |
Enumerations
Every enumerated value in the API, defined once. Field tables across the docs link here; lifecycle and business meaning live on the linked concept pages. Enums marked open may grow: treat unknown values as pass-through, never as errors.
package.type
| Value | Meaning |
|---|---|
daypart | A selling title over a weekday pattern and local time range. |
program | A named program; event-dated programs use occurrences. Tentpoles are programs. |
genre | A genre reference. |
rotator | Rotation rules across dayparts or titles. |
ron | Run of network. |
custom | Seller-defined; includes agreement-scoped packages minted from proposals. |
Semantics: Packages.
deal_type
| Value | Meaning |
|---|---|
preemptible | Pay for what airs; the seller may preempt. |
fixed | Fixed placement; airs as booked. |
audience_as_aired | Pay on delivered audience, no guarantee. |
audience_guaranteed | Audience guarantee; shortfalls trigger the make-good policy. |
proposal | The request phase, not a payment basis: carries a proposal_request instead of line items. Orders booked when you accept the returned plan each carry one of the four pay-basis values above. |
Semantics: The deal model.
workflow
| Value | Meaning |
|---|---|
catalog | Line items against published packages. Default. |
document | A document reference; parsed, validated, and confirmed at needs_confirmation. |
Semantics: Submit a document order.
class (market timing)
| Value | Meaning |
|---|---|
scatter | In-quarter buying at card rates. |
upfront | Committed money against a future season. See Upfront. |
remnant | Discounted unsold inventory, preemptible. |
opportunistic | Last-minute clearance windows. |
Timing, not geography. Political LUR is an advertiser class; negotiated pricing is agreement-scoped. Semantics: The deal model.
guarantee_tier
| Value | Meaning |
|---|---|
ng_preemptible | No guarantee; preemptible. |
guaranteed | Placement guaranteed. |
audience_guaranteed | Delivered audience guaranteed against the delivery post. |
Semantics: Guarantees.
clearance_tier
| Value | Meaning |
|---|---|
P1 | Highest clearance priority; last to be preempted. |
P2 | Standard priority. |
P3 | Lowest priority; first to be preempted. |
Semantics: Guarantees.
advertiser_class
| Value | Meaning |
|---|---|
general | General market. |
dr | Direct response. |
competitive | Category-competitive rates. |
theatrical | Studio and entertainment releases. |
political_candidate_lur | Candidate buys at lowest unit rate. See Political buying. |
political_issue | Issue advertising; LUR does not apply. |
Open enum, seller-defined: a seller's card may carry classes beyond these. Semantics: Rates.
avail.state
| Value | Meaning |
|---|---|
available | Clearable now. |
unavailable | Sold out or blocked. |
projected | Quotable, not firmly clearable. |
Semantics: Avails.
order status
| Value | Meaning |
|---|---|
draft, submitted, validating | Intake. |
needs_confirmation | The buyer confirms an artifact before it books: a document workflow's parsed interpretation, or a proposal's seller-returned plan_proposal. |
confirmed | Validated and confirmed. |
negotiating | Parked between rounds: the negotiated workflow, or a proposal counter. |
seller_review | The seller's approval gate. |
placed, completed | Booked; done. Order-level partial is a completed order with a mixed unit set. |
rejected, canceled, failed | Terminals. |
Semantics: The state machine.
unit status
| Value | Meaning |
|---|---|
pending | Not yet decided. |
accepted | Booked as requested. |
rejected | Declined; reason populated. |
partial | Fewer units than requested; see num_accepted. |
countered | An additive counter line; in_response_to names the unit it answers. |
Semantics: Orders.
settlement_mode
| Value | Meaning |
|---|---|
direct | You invoice each other; the platform carries the paper trail. Default. |
cleared | The platform clears the trade. Optional; per agreement. |
Semantics: Settlement.
proposal request_type
| Value | Meaning |
|---|---|
audience_plan | An audience definition and goal in; a priced plan back. |
specs | Concrete constraints in; a plan that satisfies them back. |
open | A brief; the seller's planners propose. |
Semantics: Proposals.
disclosure.avails_policy
| Value | Meaning |
|---|---|
published | The tri-state avails feed is materialized and queryable. Default. |
on_request | No standing feed; a read returns 202 and the seller answers a scoped query. |
withheld | Availability is never exposed; a read returns 409 AVAILS_WITHHELD. Resolves at seller review or in a plan. |
Semantics: Disclosure.
disclosure.pricing_policy
| Value | Meaning |
|---|---|
published | An open rate card visible to any authorized buyer. Default. |
agreement | A buyer-scoped card, the deal-ID pattern, unlocked by presenting the agreement. |
quote | Priced per campaign as a quote commit inside a plan. |
Semantics: Disclosure.
market.scheme
| Value | Meaning |
|---|---|
nielsen_dma | Nielsen DMA codes. |
msa | Metropolitan statistical areas. |
cable_zone | Cable interconnect zones. |
country | National markets outside the US schemes. |
custom | Seller-defined geography. |
Open enum. Omitting market entirely means national. Semantics: Packages: markets.
audience codes
| Value | Meaning |
|---|---|
spots | Unit currency: count of airings. |
hh | Household impressions. |
p2plus | Persons 2+. |
a25_54 and other demo codes | Standard demos. |
custom:<def> | Seller-declared custom audiences. |
Open enum. Semantics: Currencies.