Documentation

Unified API

OpsOrch provides a single, consistent API surface for all your operational data.

The Query Pattern

Most OpsOrch endpoints follow a POST /query pattern. This allows for complex, structured filtering payloads that wouldn’t fit in query parameters.

POST/incidents/query
json
{
  "statuses": ["open", "investigating"],
  "severities": ["sev1", "sev2"],
  "scope": {
    "service": "payments-api",
    "environment": "production"
  },
  "limit": 20
}

Authentication

All API requests must be authenticated. OpsOrch supports two modes:

  • Service-to-Service (API Token)

    Use the X-OpsOrch-Token header. (Currently for Enterprise / specific internal use cases).

  • User Session (Cookie)

    The Console uses secure, HTTP-only session cookies managed by the Next.js backend.

Endpoint Reference

Incidents

POST /incidents/queryList incidents matching filters
GET /incidents/:idGet detailed incident by ID
PATCH /incidents/:idUpdate status, severity, or metadata
GET /incidents/:id/timelineFetch timeline entries
POST /incidents/:id/timelineAppend to incident timeline

Alerts

POST /alerts/queryQuery alerts by status, severity, or scope
GET /alerts/:idGet alert details

Metrics

POST /metrics/queryQuery time-series data
GET /metrics/describeList available metric names and labels

Logs

POST /logs/querySearch logs with structured expressions

Services

POST /services/queryList services from catalog
GET /services/:id/graphGet dependency graph for a service

Deployments

POST /deployments/queryQuery deployments by status or scope
GET /deployments/:idGet deployment details

Tickets

POST /tickets/querySearch tickets by status or scope
GET /tickets/:idGet ticket details

Teams

POST /teams/queryFind teams by name or scope
GET /teams/:idGet team details
GET /teams/:id/membersList team members

Orchestration (Runbooks)

POST /orchestration/plans/queryQuery runbook plans
GET /orchestration/plans/:idGet plan details
POST /orchestration/runs/queryQuery run status
GET /orchestration/runs/:idGet run details
POST /orchestration/runsStart a run from a plan
POST /orchestration/runs/:runId/steps/:stepId/completeComplete a manual step