API Reference
A thin API that turns decisions into portable records, then publishes into VMS systems via adapters.
Core
Intent → Plan → Preflight → Publish
| Method | Path | Summary | Request | Response |
|---|---|---|---|---|
| POST | /intent | Create an intent record (returns intent_id). | IntentCreateRequest | IntentRecord |
| PATCH | /intent/{intent_id} | Patch diagnostics/routing/admin fields. | IntentPatchRequest | IntentRecord |
| POST | /plan | Apply Channel Map to determine target destination(s). | PlanGenerateRequest | PlanGenerateResponse |
| POST | /preflight | Validate required fields and transforms; returns enrichment gaps. | PreflightRequest | PreflightResponse |
| POST | /publish | Idempotent publish via adapter; records external IDs. | PublishRequest | PublishResponse |
Example flow (pseudo) expand
POST /intent → { intent_id }
PATCH /intent/{intent_id} → attach diagnostics/routing/admin
POST /plan → select destination(s) via Channel Map
POST /preflight → missing_fields[] (if any)
POST /publish → external_id + receipts
Meta
Platform variability (capabilities + requirements)
This is the “linked destination” layer: what objects/operations exist, what fields are required, and which features are supported.
| Method | Path | Purpose |
|---|---|---|
| GET | /platforms | List platforms and doc availability. |
| GET | /destinations | List connected tenants (“linked accounts”). |
| GET | /destinations/{id}/capabilities | Capability matrix + required fields per object/op. |
Operations
Passthrough, webhooks, reconciliation, enrichment loop
Passthrough
Use when a platform field/endpoint isn’t in the canonical model. Still anchors the call to the Intent ID and timeline.
POST /passthrough
Reconciliation
Detect drift when humans change the VMS directly. Produces a report and can trigger follow-up actions.
POST /reconcile
Webhooks (back-sync)
Update intent state when a VMS object changes (cancelled, updated rate, status changed).
POST /webhooks/{platform}
Enrichment loop
If preflight fails due to missing platform-required fields, emit an enrichment request back to Triage/Intake.
POST /enrichment-request