Build on the same metrics your boards use.
A JSON REST API, signed webhooks, an Embed SDK for TypeScript and an MCP server let your applications and AI agents read governed metrics and act on decisions.
- Base URL
- api.orionpulse.xyz/v1
- Auth
- API key or OAuth 2.0
- Rate limit
- 600 req/min (Business)
- SDKs
- Python, TypeScript
Ask a question over HTTP
Calls run with the permissions of the key's service user, so row-level rules still apply.
ask.sh
curl https://api.orionpulse.xyz/v1/ask \
-H "Authorization: Bearer $ORIONPULSE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspace": "retail-ops",
"question": "Net revenue by region last week",
"return_sql": true
}' Read a metric from Python
The metrics endpoint returns the same numbers as the board tile, with no LLM involved.
metrics.py
import os, requests
API = "https://api.orionpulse.xyz/v1"
headers = {"Authorization": f"Bearer {os.environ['ORIONPULSE_API_KEY']}"}
# Read a governed metric from the semantic layer
r = requests.get(f"{API}/metrics/net_revenue/query", headers=headers,
params={"grain": "week", "dimensions": "region", "last": 8})
for row in r.json()["rows"]:
print(row["week"], row["region"], row["value"]) Core endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /v1/ask | Send a plain-English question to Ask Orion; returns SQL, rows and explanation |
| GET | /v1/metrics/{name}/query | Query a governed metric by grain, dimensions and filters |
| GET | /v1/forecasts/{id} | Fetch forecast values, intervals and backtest scores |
| POST | /v1/decisions | Open a decision card from your own system |
| GET | /v1/audit-events | Page through audit events for SIEM export |
Webhooks, embedding and MCP
- Webhooks. Events for decision.opened, decision.resolved, forecast.drift and metric.threshold, signed with HMAC-SHA256 and retried for 24 hours.
- Embed SDK. Render boards and Ask Orion inside your own app with short-lived signed tokens and per-tenant row filters.
- MCP server. Expose verified metrics and forecasts as Model Context Protocol tools so your internal agents query governed data.
decision.resolved
{
"event": "decision.resolved",
"decision_id": "dec_8KQ2M",
"flow": "stockout-risk-northeast",
"owner": "supply-planning",
"baseline": 0.214,
"outcome": 0.031,
"resolved_at": "2026-10-25T14:10:00Z"
} bash
$ pip install orionpulseSuccessfully installed orionpulse$ orionpulse auth testworkspace: retail-ops role: service-reader rate limit: 600/min
Get the full API reference and a sandbox key.
Email us with your use case and we send the reference, OpenAPI 3.1 spec and a sandbox workspace within one business day.
Request API docs