Stella Ops API Overview

The shared contract every Stella Ops HTTP API follows: authentication, tenancy, pagination, idempotency, rate limits, error envelopes, and determinism guarantees. Read this once, then rely on each service’s OpenAPI document for endpoint-specific details.

Audience: API client integrators, SDK authors, and service developers.

Last updated: 2026-05-30 (doc ↔ code reconciliation)

Scope

Shared conventions for all Stella Ops HTTP APIs. Per-service schemas live under src/Api/StellaOps.Api.OpenApi/<service>/openapi.yaml; the aggregate spec is composed by compose.mjs to src/Api/StellaOps.Api.OpenApi/stella.yaml. Note: that aggregate currently carries x-stellaops-contract-status: contains-draft-stubs (draft stub services include export-center, graph, jobengine, policy, scheduler), so it is not a fully authoritative shipped contract for those services.

Authentication & tenancy

Pagination

Idempotency

Rate limits

Error envelope

The canonical error envelope (_shared/schemas/common.yaml ErrorEnvelope, served as application/json) is flat — the fields are not nested under an error object, and field names are camelCase:

{
  "code": "service_unavailable",
  "message": "human readable",
  "traceId": "<trace or correlation id>"
}

Headers

Determinism & offline

Checklist for new/changed endpoints