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
| Field | Type | Description |
|---|---|---|
conformance_level required | integer | 0 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 required | array of string | Decision delivery rungs you offer: callback, poll, sqs, console. |
transports.formats | array of string | File formats you accept and produce: json, csv, parquet, xlsx. |
capabilities.realtime_availability | boolean | Whether avails are live or on a declared cadence. Default: false. |
capabilities.counter_proposals | boolean | Whether decide may counter, per unit. Default: false. |
capabilities.reservation_hold | boolean | Level 4 holds with TTL. Default: false. |
capabilities.pricing_modes | array of string | rate_card, clearance, negotiated. |
rate_management.mode | enum | frozen_quarterly, live_avails, or live_rates: how your rate cards move. |
sla | object | Per 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
| Status | Code | When |
|---|---|---|
| 422 | INVALID_INPUT | Unknown transport, mode, or a level inconsistent with the declared capabilities. |
Error shape and recovery: Errors.