API Reference

Server-side endpoints

These endpoints power the AtlasBurn ingestion and enforcement pipeline. They are normally called by the SDK, the Edge Proxy, and the dashboard — but you can call them directly from custom integrations.

Base URL

http
https://app.atlasburn.com

Authentication

Ingestion takes your organization API key as apiKey in the JSON body; the Edge Proxy takes it in the AtlasBurn-API-Key header. Keys are prefixed abn_ and verified with HMAC-SHA-256 — the raw key is never stored.


POST /api/ingest

Raw telemetry ingestion endpoint. Accepts a single event or a batch.

Request

http
POST /api/ingest
Content-Type: application/json

{
  "apiKey": "abn_xxxxxxxxxxxxxxxxxxxx",
  "events": [
    {
      "model": "gpt-4o-mini",
      "usage": { "prompt_tokens": 142, "completion_tokens": 318 },
      "timestamp": "2026-05-18T12:34:56.789Z",
      "eventId": "evt_abc123",
      "featureId": "chat-assistant"
    }
  ]
}

Response

json
{
  "status": "success",
  "count": 1
}

You send token counts only — AtlasBurn prices every event server-side from the model registry (see Cost Engine), so dollar amounts and prompt/completion content are never required. Limits: 100 events per batch, 1 MB payload. Guardrail evaluation runs on the batch but fails open — it never blocks or alters the ingest response; enforcement is pushed to the edge separately.


POST /api/guardrails/enforce

Dashboard / internal endpoint

Unlike ingestion, this endpoint authenticates with a Firebase Auth Bearer token (not the abn_ key) and verifies the caller owns the API key. It's used by the ingestion server and the dashboard's Resume button — not by third-party clients.

Pushes or clears the Cloudflare KV kill flag for an organization.

Push a kill flag

http
POST /api/guardrails/enforce
Authorization: Bearer <firebase-id-token>
Content-Type: application/json

{
  "apiKey": "abn_xxxxxx",
  "action": "SUSPENDED",
  "triggerType": "token_loop_identical",
  "observedValue": 12,
  "thresholdValue": 4,
  "mode": "hard_stop"
}

action is SUSPENDED or THROTTLED; the TTL is derived server-side (2h for SUSPENDED, 30m for THROTTLED). The KV key is an opaque HMAC of the key prefix, so raw keys never appear in Cloudflare logs.

Clear a kill flag (manual resume)

http
POST /api/guardrails/enforce
Authorization: Bearer <firebase-id-token>
Content-Type: application/json

{
  "apiKey": "abn_xxxxxx",
  "action": "ACTIVE"
}

Response

json
{
  "success": true,
  "action": "RESUMED"
}

Next steps