Skip to main content
Send a single POST /v1/chat/completions request through Dahl to confirm everything works. You need:

Before you start

  • An API key (see API keys)
  • Each new key currently includes 100 million tokens — no account signup required
  • A fresh model ID from GET /v1/models — do not guess IDs or copy them from marketing pages
Store your key securely. Treat it like a password: do not commit it to git or paste it into public channels.

Step 1 — Get your API key

Option A — landing page (recommended) Open inference.dahl.global/#api-key, wait for the key to load, and copy it. Option B — API
curl -X POST https://inference.dahl.global/tokens
Example response:
{
  "token": "your-api-token",
  "available_tokens": 100000000
}
Export the token for the next steps:
export DAHL_API_KEY="your-api-token"

Step 2 — List available models

GET /v1/models is public — no API key required.
curl https://inference.dahl.global/v1/models
Pick an id from the data array. For most tasks, start with MiniMax M2.7: MiniMaxAI/MiniMax-M2.7 If the list is empty or the service is still starting, retry with short bounded backoff.

Step 3 — Send your first request

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": "Hello, Dahl!" }
    ]
  }'

Expected result

A successful request returns 200 OK. The assistant text is in choices[0].message.content.
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "..."
      }
    }
  ]
}

Common first failures

ResponseWhat it usually meansWhat to check
401 with Missing API tokenNo Authorization headerAdd Authorization: Bearer with your token
401 with invalid API token or expired API tokenKey is wrong or no longer validCreate a new key via inference.dahl.global/#api-key or POST /tokens
4xx / 502 from upstreamStale or unsupported model idCall GET /v1/models and use an id from the response
503 or timeoutsNetwork or node overloadRetry with short backoff

See also