Authentication
All requests are authenticated with a workspace-scoped bearer token.
curl https://api.finmaro.com/v1/workflows \ -H "Authorization: Bearer $FINMARO_TOKEN"
Workflows
List, inspect, and trigger workflows. POST /v1/workflows/:id/runs starts a new run.
POST /v1/workflows/cash_forecast/runs
{
"scenario": "base",
"horizon_weeks": 13,
"notify": ["#finance"]
}
Runs
A run is the immutable execution record. Fetch its trace, outputs, and confidence score.
GET /v1/runs/run_8H32 → {
"status": "succeeded",
"confidence": 0.97,
"trace_url": "...",
"outputs": [...]
}
Evals
Score Finmaro against your golden dataset. Used internally on every PR; exposed so customers can do the same.
Webhooks
Subscribe to run.succeeded, run.failed, review.requested, and 12 other events.
TypeScript SDK
import Finmaro from "@finmaro/sdk";
const f = new Finmaro({ token: process.env.FINMARO_TOKEN });
const run = await f.workflows.run("cash_forecast", { scenario: "base" });
Python SDK
from finmaro import Finmaro
f = Finmaro(token=os.environ["FINMARO_TOKEN"])
run = f.workflows.run("cash_forecast", scenario="base")
MCP server
Expose Finmaro to any MCP-compatible agent (Claude, Cursor, internal tools) with one command:
npx @finmaro/mcp serve --token $FINMARO_TOKEN