REST + MCP API
Base URL: https://api.triago.com/v1. JSON request/response. Bearer auth. Rate-limited per workspace.
Authentication
curl https://api.triago.com/v1/alerts \
-H "Authorization: Bearer trg_live_xxx" \
-H "Content-Type: application/json"
POST /alerts
Submit an alert for investigation. Returns an investigation id.
{
"source": "splunk",
"workflow": "phishing.user_report",
"payload": { ... },
"context": { "user_id": "kdavis" }
}
// 202 Accepted
{ "investigation_id": "inv_01H...", "status": "queued" }
GET /investigations/:id
Returns full trace, verdict, evidence, and actions taken.
"id": "inv_01H...",
"status": "resolved",
"verdict": { "label": "benign", "confidence": 0.94 },
"trace": [ ... ],
"actions": ["notify_user", "require_mfa_step_up"],
"latency_ms": 11234,
"credits": 3
}
GET /verdicts
List verdicts with filters: workflow, label, confidence range, time window.
PUT /policies/:workflow
Upsert a policy. Returns the new version id. Old versions remain queryable.
GET /workflows
List available workflows and their schemas.
GET /audit
Stream the immutable audit log. Supports cursor pagination and webhook export.
Webhooks
Subscribe to investigation.resolved, verdict.abstained, policy.changed, action.executed. Signed with HMAC-SHA256.
Errors
All errors return a JSON body with code, message, and request_id. Standard HTTP codes: 400, 401, 403, 404, 409, 422, 429, 5xx.
SDKs
Official: @triago/sdk (TypeScript), triago (Python). Community: Go, Ruby. MCP server: triago-mcp.