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

Capabilities

The capability profile is the contract between your systems and the platform's orchestrator: it declares what your connection can do, and the platform never calls what the profile does not advertise. Start integration here; everything else routes on it. Full shape: capability_profile.

At a glance
  • Scope: catalog:write
  • Declares: seller level, transports, pricing modes, rate management cadence, SLAs
  • Changing a declaration flips capability live: no contract change, no redeploy

Read your profile

GET/v1/me/capabilitiescatalog:write

Returns the profile the orchestrator currently routes on: the source of truth for what the platform will and will not call.

Response

The full capability_profile object.

200 Response
{
  "seller_id": "acme",
  "conformance_level": 2,
  "transports": {
    "result_delivery": ["callback", "poll", "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
    }
  }
}

Update your profile

PUT/v1/me/capabilitiescatalog:write

Replaces the profile. Declare only what your systems actually serve; the orchestrator degrades gracefully around anything absent, and a declared-but-null capability can flip live later without a contract change.

Request body

FieldTypeDescription
conformance_level requiredinteger0 through 4; see Seller levels. Levels are cumulative, but each capability's direction is free: push avails by file while orders pull into your endpoint.
transports.result_delivery requiredarray of stringDecision delivery rungs you offer: callback, poll, sqs, console.
transports.formatsarray of stringFile formats you accept and produce: json, csv, parquet, xlsx.
capabilities.realtime_availabilitybooleanWhether avails are live or on a declared cadence. Default: false.
capabilities.counter_proposalsbooleanWhether decide may counter, per unit. Default: false.
capabilities.reservation_holdbooleanLevel 4 holds with TTL. Default: false.
capabilities.pricing_modesarray of stringrate_card, clearance, negotiated.
rate_management.modeenumfrozen_quarterly, live_avails, or live_rates: how your rate cards move.
slaobjectPer service class: min_lead_minutes (shortest lead you accept) and max_decision_latency_seconds (how long a decision may take before the platform chases it).

Example request

{
  "conformance_level": 2,
  "transports": {
    "result_delivery": ["callback", "poll", "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
    }
  }
}

Response

200 Response
{
  "seller_id": "acme",
  "conformance_level": 2,
  "updated_at": "2026-10-01T12:00:00Z"
}

Errors

StatusCodeWhen
422INVALID_INPUTUnknown transport, mode, or a level inconsistent with the declared capabilities.

Error shape and recovery: Errors.