Data plane API

The inference plane. OpenAI format under /v1, drop-in compatibility for the major client formats, and authentication with sk-atlas- virtual keys.

Data plane API

The appliance exposes a single HTTP server (port 8080 in the default deploy). The data plane never stops, whatever the license state.

Authentication: virtual keys

Virtual keys carry the sk-atlas- prefix. The gateway reads them from these places:

  • Header x-atlasberg-vk: value accepted verbatim.
  • Authorization: Bearer <value>, only when the value has the sk-atlas- prefix.
  • Headers x-api-key, x-goog-api-key and api-key, only with the sk-atlas- prefix, so a provider API key is never confused with a virtual key.
  • Personal tokens from device login (prefix atu-) are accepted in the same places: Authorization: Bearer, x-api-key, api-key and x-goog-api-key. The gateway resolves the person and their team, injects the team's live virtual key in x-atlasberg-vk and removes the token from the headers before the request goes on. The team key never leaves the gateway.
  • Governance requires the key when auth enforcement on inference is on; the refusal message names the header.
  • BYOK per request: with admin opt-in, the header x-atlasberg-direct-key: true makes the gateway use the credential in the client's own Authorization header as a direct provider key.

Tutorial: sign in from the terminal with SSO

How a developer obtains a personal atu- token with one command and one code confirmed in the portal.

Tutorial: connect Claude Code, Cursor and SDKs

The base URL and key variables each tool reads to send its requests through the gateway.

curl -s http://localhost:8080/v1/chat/completions \
  -H "Authorization: Bearer sk-atlas-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Native routes (OpenAI format)

  • Method: POST | Route: /v1/chat/completions | Use: Chat (OpenAI format)
  • Method: POST | Route: /v1/completions | Use: Text completion
  • Method: POST | Route: /v1/responses | Use: Responses API
  • Method: GET/DELETE | Route: /v1/responses/{response_id} | Use: Retrieve or delete a response
  • Method: POST | Route: /v1/responses/{response_id}/cancel | Use: Cancel
  • Method: GET | Route: /v1/responses/{response_id}/input_items | Use: Input items
  • Method: POST | Route: /v1/responses/input_tokens | Use: Token count
  • Method: POST | Route: /v1/responses/compact | Use: Compaction
  • Method: POST | Route: /v1/embeddings | Use: Embeddings
  • Method: POST | Route: /v1/rerank | Use: Rerank
  • Method: POST | Route: /v1/ocr | Use: OCR
  • Method: POST | Route: /v1/audio/speech | Use: TTS
  • Method: POST | Route: /v1/audio/transcriptions | Use: ASR
  • Method: POST | Route: /v1/images/generations, /v1/images/edits, /v1/images/variations | Use: Images
  • Method: POST/GET | Route: /v1/videos, /v1/videos/{video_id}, /v1/videos/{video_id}/content, /v1/videos/{video_id}/remix | Use: Video
  • Method: GET | Route: /v1/models | Use: Model catalog
  • Method: POST/GET | Route: /v1/batches, /v1/batches/{batch_id}, /v1/batches/{batch_id}/results, /v1/batches/{batch_id}/cancel | Use: Batches
  • Method: POST/GET/DELETE | Route: /v1/files, /v1/files/{file_id}, /v1/files/{file_id}/content | Use: Files
  • Method: POST/GET/DELETE | Route: /v1/containers, /v1/containers/{container_id}/... | Use: Containers

Drop-in compatibility

  • Anthropic: POST /v1/messages, /v1/messages/count_tokens and /v1/messages/batches. An Anthropic client points its base URL at the gateway without changing the body format.
  • OpenAI drop-in: the /openai prefix, for example /openai/v1/chat/completions, /openai/chat/completions, /openai/models, /openai/files, /openai/batches, /openai/realtime.
  • Google GenAI: the /genai prefix.
  • LiteLLM: the /litellm prefix, aggregating the OpenAI, Anthropic, GenAI and Bedrock formats.
  • Passthrough: the /openai_passthrough, /anthropic_passthrough and /genai_passthrough prefixes.
curl -s http://localhost:8080/v1/messages \
  -H "x-atlasberg-vk: sk-atlas-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Health and metrics

Unauthenticated flood: An inference request without a servable credential is refused with 401 at the door and aggregated into one auth.refused_burst event per origin, instead of writing two trail events per call.

  • GET /health: the healthy response carries "status":"ok" plus a components block.
  • GET /metrics: Prometheus scrape. The full metric list is on the Protocol page.

About Atlasberg Platform

Atlasberg Platform is the control layer between a company and every AI model: each request is authenticated with a virtual key, filtered by policy and DLP, routed to the right provider and written to a hash-chained audit trail. It exposes an OpenAI-compatible API, so applications only swap the base URL.

The same artifact runs in Atlasberg Cloud, in your VPC, on-premises or fully air-gapped, and is priced by capacity and modules, never per seat.

This page is part of the official documentation. To talk to the engineering team, write to [email protected] or use https://atlasberg.com/contato. Answers come within one business day.

Agents: this page is also available as Markdown at /docs/api.md, or by requesting this URL with the header Accept: text/markdown. Index of everything: /llms.txt.