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

MethodPathPurpose
GET/bpmn/readinessBanner checklist
POST/bpmn/processes/importImport XML (save: false is preview)
GET/bpmn/processesList
POST/bpmn/processes/{id}/executeSimulate routing — no component I/O
POST/bpmn/processes/{id}/runDesign or async (mode)
POST/bpmn/processes/{id}/instancesStart a durable instance
GET/bpmn/instancesList (cursor in next_cursor, ceiling 500)
GET/bpmn/instances/{id}One instance
POST/bpmn/instances/{id}/messageResume a wait
POST/bpmn/messagesBroadcast / correlate
POST/bpmn/signalsPublish 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

MethodPathPurpose
GET/streams/readinessBanner checklist
GET / POST/streams/topologiesList / create (save: true persists; default is dry-run)
GET/streams/topologies/{id}One topology
GET/streams/topologies/{id}/planResolved chain + dangling ids
POST/streams/topologies/{id}/runSample record; sinks skipped
POST/streams/topologies/{id}/windowAggregate a sample batch
POST/streams/topologies/{id}/enableLive drive (when configured)
POST/streams/topologies/{id}/disableStop live drive
GET/streams/topologies/{id}/stateOffset, 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

PrefixPurpose
/deploymentsPromotion pipeline: create, advance, rollback
/upgrade, /dbApplication + data-layer upgrade, snapshots, restore
/backupChecksummed backup lifecycle
/clusterHA join, drain, failover, GET /cluster/config-bundle
/env, /secrets, /keysTenant variables, managed secrets, encryption policy
/licenseGET 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

MethodPathPurpose
GET/agent/toolsEvery operation: method, path, permission, read_only, schema
GET/agent/skillsPlaybooks + allow-lists
GET/agent/mcpMCP tools/list
POST/agent/chatIn-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.