Embed agents in your product, your warehouse jobs, your Cursor, your Claude Desktop. Routix exposes REST, webhooks, streaming SSE, and an MCP server out of the box.
curl https://api.routix.com/v1/workflows/renewal-brief/run \ -H "Authorization: Bearer $ROUTIX_KEY" \ -H "Content-Type: application/json" \ -d '{ "inputs": { "window_days": 30 }, "mode": "review" }' # streamed events: event: plan data: { steps: 5 } event: tool data: { name: "salesforce.query", ms: 412 } event: draft data: { count: 6 } event: verify data: { pass: 5, hold: 1 } event: complete data: { trace_id: "8f24...", spent_credits: 21 }
import { Routix } from "@routix/sdk"; const rx = new Routix({ apiKey: process.env.ROUTIX_KEY }); const run = await rx.workflows.run("renewal-brief", { inputs: { window_days: 30 }, mode: "review", }); for await (const ev of run.stream()) { console.log(ev.type, ev.data); }
from routix import Routix rx = Routix(api_key=os.environ["ROUTIX_KEY"]) run = rx.workflows.run( "renewal-brief", inputs={"window_days": 30}, mode="review", ) for ev in run.stream(): print(ev.type, ev.data)
{
"mcpServers": {
"routix": {
"command": "npx",
"args": ["@routix/mcp", "--tenant", "acme"],
"env": { "ROUTIX_KEY": "rx_live_..." }
}
}
}
# every Routix workflow now appears as a tool to Claude| Method | Path | Description |
|---|---|---|
| GET | /v1/workflows | List workflows in your tenant. |
| POST | /v1/workflows/:id/run | Run a workflow synchronously or stream events. |
| GET | /v1/runs/:id | Get a run, its trace, and outputs. |
| POST | /v1/runs/:id/approve | Promote a held output to action. |
| GET | /v1/patterns | List mined patterns with hours-saved + frequency. |
| POST | /v1/patterns/:id/synthesize | Generate a workflow from a pattern. |
| GET | /v1/evals/:workflow | Read the eval set + last run scores. |
| POST | /v1/webhooks | Register a webhook for events. |