# Data plane API

> Atlasberg Platform data plane API: OpenAI-compatible endpoints under /v1, Anthropic and Google GenAI drop-in routes, and authentication with sk-atlas- virtual keys or atu- personal tokens.

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.

```bash
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.

```bash
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 contact@atlasberg.com or use https://atlasberg.com/contato. Answers come within one business day.

## More from Atlasberg

- [Documentation index](https://atlasberg.com/docs)
- [Platform overview](https://atlasberg.com/)
- [Talk to engineering](https://atlasberg.com/contato)

---
Source: https://atlasberg.com/docs/api
Company: Sobimann Tecnologia da Informacao LTDA (Atlasberg), Porto Alegre, RS, Brazil.
Contact: contact@atlasberg.com - answered within one business day.
Index for agents: https://atlasberg.com/llms.txt
