Skip to Content

API conventions

  • JSON only. Timestamps are ISO-8601 UTC unless a field documents epoch milliseconds.

  • Errors are RFC 7807 problem details (application/problem+json):

    { "type": "about:blank", "title": "Not Found", "status": 404, "requestId": "3f9c…" }
  • 401 vs 403. 401 = no or invalid credential; 403 = valid credential but the route’s gate (admin/tenant/user) or a required scope is not satisfied.

  • Request IDs. Every response carries X-Request-Id; send your own to correlate logs.

  • Idempotency. Mutating endpoints accept an Idempotency-Key header. Readings ingestion additionally dedupes on (sourceId, metric, ts).

  • Pagination is cursor-based: ?cursor=&limit= (limit ≤ 500), nextCursor in the response.

  • Rate limits are per tenant and advertised via RateLimit-* headers; 429 responses include Retry-After.

  • Versioning. Breaking changes bump the path version (/v2); additive changes do not. Deprecations are announced with Sunset headers at least 6 months ahead.

OpenAPI

GET /openapi.json on any Engine returns the machine-readable contract for that build.