Skip to main content
Dahl does not use account sign-in for the API today. You get a Bearer API key from the landing page or POST /tokens, then send it in the Authorization header on POST /v1/chat/completions. Each new key currently includes 100 million tokens. No payment or balance UI yet — create a new key when you need another allowance.

Create a key

Landing page

Go to inference.dahl.global/#api-key. The page calls POST /tokens automatically and shows the key with a copy button.

API

curl -X POST https://inference.dahl.global/tokens
Example response:
{
  "token": "your-api-token",
  "available_tokens": 100000000
}
Use the token value as Authorization: Bearer <token>. The available_tokens field reflects the allowance on that key; there is no separate billing dashboard yet.

Use the key on requests

curl https://inference.dahl.global/v1/chat/completions \
  -H "Authorization: Bearer $DAHL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"MiniMaxAI/MiniMax-M2.7","messages":[{"role":"user","content":"Hi"}]}'
The header must be exactly two words: Bearer followed by the token. Other formats are treated as missing auth.

Public endpoints

These do not require a token:
  • GET /v1/models — list model IDs
  • GET /health — service health

Error responses

Missing or invalid keys return 401 with a JSON body:
{
  "error": {
    "message": "Missing API token"
  }
}
Other messages you may see: invalid API token, expired API token.

Security practices

  • Do not commit tokens to source control — use environment variables or a secrets manager
  • Rotate keys if they may have been exposed
  • Use separate keys per environment (development, staging, production) when possible