Overview
Base URL: https://api.switchboard.simulmedia.com/v1 (sandbox: api.sandbox.switchboard.simulmedia.com/v1). JSON everywhere; UTF-8; UTC on all timestamps. Auth per Authentication. TLS required. See Conventions for idempotency, pagination, and error shape; every request and response shape is defined once in the objects reference.
Every card below links to that endpoint's full reference: parameters, field tables, examples, and errors.
Seller endpoints
Publish what you sell, then decide what books. Your capability profile declares which of these you serve.
Connection
GET
/me/capabilitiesThe profile the platform routes on
PUT/me/capabilitiesDeclare transports, modes, and SLAs
Catalog, rates, avails
PUT
/me/catalogPublish packages and taxonomy, integrity-checked
PUT/me/rate-cardsPublish a versioned rate card commit
PUT/me/availsPush availability and impressions
POST/me/files/manifestRegister an S3 or SFTP file drop
Orders
GET
/me/ordersYour approval queue and order book
GET/me/orders/{id}One order, with the buyer context you decide against
POST/me/orders/{id}/decideApprove, reject, or counter, per unit
GET/me/settlement/invoicesOutbound invoices on cleared trades
Buyer endpoints
Discover, book, track, reconcile.
Discovery
GET
/sellersSellers within your authorized scope
GET/sellers/{seller}/catalogPackages, taxonomy, deal types, rate classes
GET/sellers/{seller}/availsTri-state availability, spots, impressions, rates
Orders
POST
/ordersCreate: line items, proposal, or document
GET/orders/{id}Authoritative snapshot with last_seq
POST/orders/{id}/confirmResume at needs_confirmation
POST/orders/{id}/respondNegotiation: accept, counter, withdraw
POST/orders/{id}/cancelIdempotent cancel
GET/ordersOrder book with status filters and cursors
Events and webhooks
GET
/eventsEvent replay after a sequence number
POST/webhooks/endpointsRegister and allowlist a notify URL
DELETE/webhooks/endpoints/{id}Remove a registered endpoint
Agreements and settlement
GET
/agreementsYour active agreements and what they unlock
GET/agreements/{id}/pacingUpfront commitment drawdown and pace
GET/settlement/invoicesInvoices on cleared trades
GET/settlement/creditCurrent credit limit and exposure
HTTP status codes
| Status | Meaning |
|---|---|
| 200 / 201 | Success; 201 on resource creation |
| 202 | Accepted for async processing (confirm, decide, cancel) |
| 204 | Success, no body (webhook dedup acknowledgement) |
| 400 | Malformed request syntax |
| 401 | Missing or invalid token |
| 403 | Valid token, insufficient scope or agreement |
| 404 | Resource not found within your scope |
| 409 | Conflict: same external_order_id with a different payload, or action not valid in current state (identical duplicates replay the original response instead) |
| 422 | Semantically invalid: non-allowlisted notify_url, unknown package_id, etc. |
| 429 | Rate limit; Retry-After header present |
| 5xx | Platform fault; retry with backoff; the audit log will say exactly where |