APIs
REST advanced
Domains you reach after the first integration is running. The live contract is still GET /openapi.json and GET /agent/tools. This page is the map plus the calls you will actually type.
How-tos: Run a long-running process, Build a streaming topology, Migrate a script, Use the in-product agent.
Codecs
Stateless parse / serialize / get / set / validate. No tenant workflow required — useful from CI and from Studio.
curl -s -X POST "$SIRIUS/codecs/iso20022/parse" \
-H 'content-type: application/json' \
-d '{"payload":"…"}'
Families include ISO 20022, FIX, and related interchange formats, plus profile-aware FHIR validation (POST /codecs/fhir/validate). A family that is not wired in this deployment returns 501 not_configured.
BPMN
| Method | Path | Purpose |
|---|---|---|
GET | /bpmn/readiness | Banner checklist |
POST | /bpmn/processes/import | Import XML (save: false is preview) |
GET | /bpmn/processes | List |
POST | /bpmn/processes/{id}/execute | Simulate routing — no component I/O |
POST | /bpmn/processes/{id}/run | Design or async (mode) |
POST | /bpmn/processes/{id}/instances | Start a durable instance |
GET | /bpmn/instances | List (cursor in next_cursor, ceiling 500) |
GET | /bpmn/instances/{id} | One instance |
POST | /bpmn/instances/{id}/message | Resume a wait |
POST | /bpmn/messages | Broadcast / correlate |
POST | /bpmn/signals | Publish a signal |
execute checks gateways. run with mode=design exercises bound components and skips destinations. mode=async enqueues for real. Instances page with next_cursor in the body.
Streams
| Method | Path | Purpose |
|---|---|---|
GET | /streams/readiness | Banner checklist |
GET / POST | /streams/topologies | List / create (save: true persists; default is dry-run) |
GET | /streams/topologies/{id} | One topology |
GET | /streams/topologies/{id}/plan | Resolved chain + dangling ids |
POST | /streams/topologies/{id}/run | Sample record; sinks skipped |
POST | /streams/topologies/{id}/window | Aggregate a sample batch |
POST | /streams/topologies/{id}/enable | Live drive (when configured) |
POST | /streams/topologies/{id}/disable | Stop live drive |
GET | /streams/topologies/{id}/state | Offset, watermark, open windows |
A topology is JSON: source_id, stages[], sinks[], optional windowed stages. Live drive is off by default. Sample-run and window-on-samples still work.
Migration
POST /migration/{engine}/analyze
POST /migration/{engine}/translate
POST /migration/{engine}/inventory
POST /migration/{engine}/scaffold
{engine} is the source dialect. Output is always native Sirius. Translate in mode: "native". The report classifies each call site as native, connector, or needs-a-look.
Deployments, backup, cluster
| Prefix | Purpose |
|---|---|
/deployments | Promotion pipeline: create, advance, rollback |
/upgrade, /db | Application + data-layer upgrade, snapshots, restore |
/backup | Checksummed backup lifecycle |
/cluster | HA join, drain, failover, GET /cluster/config-bundle |
/env, /secrets, /keys | Tenant variables, managed secrets, encryption policy |
/license | GET status, POST to install |
/env values are cleartext — use /secrets for credentials. GET /secrets is metadata only (kind, length, timestamps). Components reference secret_provider + secret_name.
Promotion pipeline mutations accept an idempotency key. Reuse it.
Agent catalog
| Method | Path | Purpose |
|---|---|---|
GET | /agent/tools | Every operation: method, path, permission, read_only, schema |
GET | /agent/skills | Playbooks + allow-lists |
GET | /agent/mcp | MCP tools/list |
POST | /agent/chat | In-product chat (page context optional) |
Filter tools with ?category= (builder, studio, operate, identity, …) and ?read_only=true.
curl -s "$SIRIUS/agent/tools?category=builder" \
| jq '.tools[] | {name, method, path, permission, read_only}'
An MCP host issues the bound REST request. Send X-Sirius-Agent-ID so audit records actor_type=agent.
Marketplace, EDI, FIX
/marketplace/* is the connector catalog you browse in the console. /edi/* holds companion guides. GET /fix/sessions is live session-engine state (role, logon, sequence numbers) — read-only operations.
If a path is in OpenAPI but returns 501, the capability is not wired in this deployment. Configure it; do not assume the product is missing the route.