All API requests are authenticated with a key like eth-.... You can create and
revoke keys in your dashboard → API keys.
The key grants access to your balance. Don’t publish it in repositories or
frontend code — keep it in environment variables and server-side code.
Method 1 — Bearer (recommended)
An OpenAI-compatible header. Works with all OpenAI SDKs.
curl https://api.ethereal.llc/v1/chat/completions \
-H "Authorization: Bearer eth-..." \
-H "Content-Type: application/json" \
-d '{ "model": "claude-haiku-4-5", "messages": [{"role":"user","content":"ping"}] }'
Method 2 — x-api-key
For clients used to the Anthropic-style header.
curl https://api.ethereal.llc/v1/chat/completions \
-H "x-api-key: eth-..." \
-H "Content-Type: application/json" \
-d '{ "model": "claude-haiku-4-5", "messages": [{"role":"user","content":"ping"}] }'
Environment variables
Most tools read the key and base URL from the environment:
export ETHEREAL_API_KEY="eth-..."
# for OpenAI-compatible SDKs:
export OPENAI_API_KEY="eth-..."
export OPENAI_BASE_URL="https://api.ethereal.llc/v1"
Rotation and revocation
- You can keep multiple keys (for example, one per project/environment).
- A revoked key stops working immediately.
- If a key leaks — delete it in the dashboard and create a new one.
Request bodies are not logged — only metadata is stored for billing
(model, token count, timestamp). See the FAQ.