← Back to product·Simulmedia Switchboard Docs · v1 draft·API reference / Objects reference
API reference

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
  }
}
FieldTypeDescription
package_id requiredstringStable identifier. Maps to the EDI product code on delivered orders.
type requiredenumOne of the package types. Tentpoles are programs.
network requiredstringThe channel.
provider requiredstringThe bookable entity. Multi-network sellers carry both: provider books, network airs.
definition requiredobjectWhat the package covers. Shape varies by type; fields below.
taxonomy_version requiredstringSelling-title definitions are versioned data with effective windows, never enums. Orders pin the version they bought against.
effective.start, effective.end requiredISO dateThe package's active window. Holiday variants are just versions.
currencies requiredarray of stringWhat the package trades in: spots or audience codes.
guarantee_tiersarray of stringOffered guarantee tiers.
deal_typesarray of stringPermitted deal types.
spot_lengthsarray of integerSupported creative lengths in seconds.
advertiser_classesarray of stringAccepted advertiser classes. Seller-defined; open.
sm_daypartstringMapping to the platform's fixed reporting dayparts. Reporting only; never a booking key.
disclosureobjectHow 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.
marketobjectGeography. Omitted means national. Fields below.
inventory_poolobjectOpts the package into shared capacity: pool_id references a declared pool; max_per_week caps this package's draw. See shared pools.

definition

FieldTypeDescription
selling_titlestringDaypart 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.
daysarray of stringWeekday pattern, Mon through Sun.
start, endstringLocal time range, HH:MM, resolved against timezone at ingest.
occurrencesarray of objectEvent-dated programs replace days/start/end with dated occurrences: {date, start, end, label}. Slots then exist only on those dates.
timezone requiredstringIANA timezone the local times resolve against.
sample_programmingarray of stringRepresentative programming. Required on ROS and RON selling titles.
mirror.offset_minutesintegerPaired mirror airing at a fixed offset: the "8P-12A with 12A-4A mirror" pattern. Order lines opt in with include_mirror.

market

FieldTypeDescription
scheme requiredenumOne of the market schemes.
code requiredstringThe market code within the scheme, for example DMA 501.
namestringDisplay name.
countrystringISO 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"
  }
}
FieldTypeDescription
pool_id requiredstringReferenced 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 requiredstringPools do not span networks.
unit requiredstringWhat the capacity counts, for example spots.
capacity.grain, capacity.per_week requiredobjectThe shared floor. Member caps may add up to more than the pool; the pool holds either way, first committed wins.
effective.start, effective.end requiredISO dateMust 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"
}
FieldTypeDescription
slot_id requiredstringAlways {package_id}:{date}. Constructible; no lookup needed.
package_id requiredstringThe package this slot instantiates.
date requiredISO dateBooking a slot pins this air date: daylocked by construction.
week requiredISO weekThe 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
}
FieldTypeDescription
package_id, week requiredstring, ISO weekCards price by week; the week's slots inherit these entries.
advertiser_class requiredenumOne of the advertiser classes. Seller-defined; open.
spot_length requiredintegerCreative length in seconds this rate prices.
guarantee_tier requiredenumOne of the guarantee tiers.
clearance_tierenumOne of the clearance tiers.
class requiredenumMarket 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 requirednumberGross 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 requiredISO 4217Declared 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 requiredstringWhat an order line cites to lock this price. See the price-clearance invariant.
commit requiredstringThe versioned card commit this entry belongs to.
commit_kindenumstanding (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_atISO datetimeSet on quote commits: after it, the entry is a stale card and returns STALE_RATE_CARD.
agreement_scopestringnull 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"
}
FieldTypeDescription
package_id, week requiredstring, ISO weekWhat the statement covers.
grain requiredenumweek or date: the seller's declared precision.
date, slot_idISO date, stringPopulated when grain is date; the one slot the entry speaks for.
state requiredenumOne of the avail states.
basis requiredenumactual or projected.
spots.available, spots.totalobjectUnit counts for spot currency.
impressionsobjectMap 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_levelnumber0 to 1.
as_of requiredISO datetimeStaleness marker for the two-phase availability pattern.
poolobjectEchoed 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"
  }
}
FieldTypeDescription
order_id requiredstringPlatform-minted, ord_ plus 12 hex.
external_order_id requiredstringYour idempotency key, echoed on every event. Byte-identical resubmission replays the stored response; 409 only on a changed payload.
seller requiredstringThe counterparty.
deal_type requiredenumOne of the deal types.
workflowenumOne of the workflows. Default: catalog.
status, substatusenumOne of the order statuses. Switch on status; step markers stay informational.
last_seqintegerThe latest event sequence, for replay via GET /events.
rate_version requiredstringThe card commit the order prices against. See the price-clearance invariant.
settlement_modeenumOne of the settlement modes. Default: direct.
line_items requiredarray of objectOne line books one week or one slot. Fields below.
buyer_metadataobjectNamed 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.impressionsobjectGross total in the order's one trade currency, plus impression totals per traded audience.

line_items[]

FieldTypeDescription
unit_idstringPlatform-assigned per line; how results and counters reference lines.
package_id requiredstringFrom the seller's catalog.
provider, network requiredstringBookable entity and channel.
weekISO weekBooks a package week; the seller distributes units across the week's slots. Set week or slot_id, not both.
slot_idstringBooks one slot: acme-prime:2026-10-07. Daylocked by construction.
unitsintegerFor spot currency. Set units or impressions_goal, not both.
impressions_goalintegerFor impression currency.
spot_length requiredintegerSeconds; must be a length the rate entry prices.
include_mirrorbooleanBooks the package's paired mirror airing too. Default: false.
rate requiredobject{class, advertiser_class, guarantee_tier, clearance_tier, unit_cost, locked_rate_id, currency}: the priced cell the line locks, citing its rate entry.
rc_impressionsobjectImpression estimates at order time, per audience code, kept for buysheet parity.
copy_idstringCreative reference. Ad-ID and ISCI identifiers ride here.
statusenumResult, one of the unit statuses.
num_requested, num_acceptedintegerPartial acceptance reports per unit; order-level partial is a completed order with a mixed unit set, never a stall.
allocationarray of objectAuthoritative 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.
reasonstringPopulated on rejected and countered lines; persisted.
in_response_tostringOn 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"
}
FieldTypeDescription
order_id, external_order_id requiredstringBoth ids on every event.
seq requiredintegerStrictly increasing per order. Retries reuse the seq; dedup on (order_id, seq).
status requiredenumOne of the order statuses.
substatusstringInformational step marker.
unitsarray of objectPer-unit results when the transition carries them.
artifactobjectAttached document or receipt, by name: placement_receipt (the booking receipt: the seller's order ID and daylocks), parsed buysheets, delivery posts.
errorobject{error_code, stage, recoverable}. Codes are UPPERCASE; see Errors.
occurred_at requiredISO datetimeUTC.

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"
    }
  ]
}
FieldTypeDescription
negotiation_id, order_id requiredstringOne negotiation per order.
state requiredenumOne of open, countered, accepted, expired, withdrawn.
rounds requiredarray of objectEach 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."
}
FieldTypeDescription
request_type requiredenumOne of the request types.
audience.definitionobjectAn inline audience definition. Set one of definition, audience_id, or upload_id.
audience.audience_idstringA shared audience reference.
audience.upload_idstringAn uploaded plan or audience file.
audience.currency_goalobject{unit, target}: the audience code and impression goal the plan should hit.
anchor_package_idsarray of stringOptional starting points.
budget_gross requirednumberGross, in the trade currency.
flight.start, flight.end requiredISO dateThe flight window.
constraintsobjectSpot lengths, max unit cost, copy splits, daypart mix.
acceptance_bandobjectOptional 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.
briefstringFree 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"
}
FieldTypeDescription
plan_id requiredstringThe plan's id; referenced when the buyer confirms or counters.
proposal_ref requiredstringThe order_id of the proposal order this plan answers.
line_items requiredarray of objectThe proposed buy. Same shape as an order line, each citing a locked_rate_id; minted: true marks a package minted for this request.
minted_packagesarray of stringThe package_ids minted for this request, scoped to your agreement and reorderable next quarter.
quote_refsarray of stringThe quote rate-card commits the line rates lock against; each carries a quote_expires_at.
plan_totals requiredobject{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.
unmetarray of objectThe availability counter: what the seller could not fill, each {requested, reason}. Empty when the plan meets the whole ask.
expires_at requiredISO datetimeThe plan offer's own validity; after it, the order lapses. Distinct from a quote's quote_expires_at (the rate's validity).
created_at requiredISO datetimeWhen 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
}
FieldTypeDescription
order_id, week requiredstring, ISO weekPosts are week-grain per-unit counts today.
units requiredarray of objectPer unit: aired count, delivered impressions keyed by audience code, and source.
currency_of_record requiredstringThe audience the guarantee settles on.
shortfallobjectPopulated 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
    }
  }
}
FieldTypeDescription
seller_id requiredstringThe tenant the profile describes.
conformance_level requiredinteger0 through 4. See Seller levels.
transports.result_delivery requiredarray of stringDelivery rungs offered: callback, poll, sqs, console.
transports.formatsarray of stringFile formats accepted and produced.
capabilities.realtime_availabilitybooleanLive avails vs declared cadence.
capabilities.counter_proposalsbooleanLevel 3 counters on decide.
capabilities.reservation_holdbooleanLevel 4 holds with TTL.
capabilities.pricing_modesarray of stringrate_card, clearance, negotiated.
rate_management.modeenumfrozen_quarterly, live_avails, or live_rates.
slaobjectPer 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"
  }
}
FieldTypeDescription
agreement_id requiredstringWhat rate_entry.agreement_scope and minted proposal packages reference.
buyer, seller requiredstringThe two parties.
catalog_scope requiredarray of stringopen, private, or both.
rate_card_refsarray of stringBuyer-scoped card commits only this buyer can transact.
deal_typesarray of stringPermitted deal types under this agreement.
settlement_mode requiredenumOne of the settlement modes.
disclosure_overridesarray of objectSeller-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.
creditobjectPopulated on cleared agreements: limit and exposure. See GET /settlement/credit.
effective.start, effective.end requiredISO dateThe 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

ValueMeaning
daypartA selling title over a weekday pattern and local time range.
programA named program; event-dated programs use occurrences. Tentpoles are programs.
genreA genre reference.
rotatorRotation rules across dayparts or titles.
ronRun of network.
customSeller-defined; includes agreement-scoped packages minted from proposals.

Semantics: Packages.

deal_type

ValueMeaning
preemptiblePay for what airs; the seller may preempt.
fixedFixed placement; airs as booked.
audience_as_airedPay on delivered audience, no guarantee.
audience_guaranteedAudience guarantee; shortfalls trigger the make-good policy.
proposalThe 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

ValueMeaning
catalogLine items against published packages. Default.
documentA document reference; parsed, validated, and confirmed at needs_confirmation.

Semantics: Submit a document order.

class (market timing)

ValueMeaning
scatterIn-quarter buying at card rates.
upfrontCommitted money against a future season. See Upfront.
remnantDiscounted unsold inventory, preemptible.
opportunisticLast-minute clearance windows.

Timing, not geography. Political LUR is an advertiser class; negotiated pricing is agreement-scoped. Semantics: The deal model.

guarantee_tier

ValueMeaning
ng_preemptibleNo guarantee; preemptible.
guaranteedPlacement guaranteed.
audience_guaranteedDelivered audience guaranteed against the delivery post.

Semantics: Guarantees.

clearance_tier

ValueMeaning
P1Highest clearance priority; last to be preempted.
P2Standard priority.
P3Lowest priority; first to be preempted.

Semantics: Guarantees.

advertiser_class

ValueMeaning
generalGeneral market.
drDirect response.
competitiveCategory-competitive rates.
theatricalStudio and entertainment releases.
political_candidate_lurCandidate buys at lowest unit rate. See Political buying.
political_issueIssue advertising; LUR does not apply.

Open enum, seller-defined: a seller's card may carry classes beyond these. Semantics: Rates.

avail.state

ValueMeaning
availableClearable now.
unavailableSold out or blocked.
projectedQuotable, not firmly clearable.

Semantics: Avails.

order status

ValueMeaning
draft, submitted, validatingIntake.
needs_confirmationThe buyer confirms an artifact before it books: a document workflow's parsed interpretation, or a proposal's seller-returned plan_proposal.
confirmedValidated and confirmed.
negotiatingParked between rounds: the negotiated workflow, or a proposal counter.
seller_reviewThe seller's approval gate.
placed, completedBooked; done. Order-level partial is a completed order with a mixed unit set.
rejected, canceled, failedTerminals.

Semantics: The state machine.

unit status

ValueMeaning
pendingNot yet decided.
acceptedBooked as requested.
rejectedDeclined; reason populated.
partialFewer units than requested; see num_accepted.
counteredAn additive counter line; in_response_to names the unit it answers.

Semantics: Orders.

settlement_mode

ValueMeaning
directYou invoice each other; the platform carries the paper trail. Default.
clearedThe platform clears the trade. Optional; per agreement.

Semantics: Settlement.

proposal request_type

ValueMeaning
audience_planAn audience definition and goal in; a priced plan back.
specsConcrete constraints in; a plan that satisfies them back.
openA brief; the seller's planners propose.

Semantics: Proposals.

disclosure.avails_policy

ValueMeaning
publishedThe tri-state avails feed is materialized and queryable. Default.
on_requestNo standing feed; a read returns 202 and the seller answers a scoped query.
withheldAvailability is never exposed; a read returns 409 AVAILS_WITHHELD. Resolves at seller review or in a plan.

Semantics: Disclosure.

disclosure.pricing_policy

ValueMeaning
publishedAn open rate card visible to any authorized buyer. Default.
agreementA buyer-scoped card, the deal-ID pattern, unlocked by presenting the agreement.
quotePriced per campaign as a quote commit inside a plan.

Semantics: Disclosure.

market.scheme

ValueMeaning
nielsen_dmaNielsen DMA codes.
msaMetropolitan statistical areas.
cable_zoneCable interconnect zones.
countryNational markets outside the US schemes.
customSeller-defined geography.

Open enum. Omitting market entirely means national. Semantics: Packages: markets.

audience codes

ValueMeaning
spotsUnit currency: count of airings.
hhHousehold impressions.
p2plusPersons 2+.
a25_54 and other demo codesStandard demos.
custom:<def>Seller-declared custom audiences.

Open enum. Semantics: Currencies.