API

Той самий формат, що в OpenAI. Інший base URL і ключ

Базовий URL

Усі виклики інференсу йдуть на `https://inference.dahl.global/v1`. Для chat completions потрібен Authorization: Bearer <API_KEY> і ключ, на який переведено токени.

Chat completions

POST /v1/chat/completions сумісний з OpenAI. Передай model і messages. Текст відповіді — в choices[0].message.content.

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!" }
    ]
  }'
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "..."
      }
    }
  ]
}

Стрімінг

Додай "stream": true. Dahl проксує OpenAI SSE (рядки data: {…}, наприкінці data: [DONE]). Для довгих відповідей стрімінг зручніший: клієнт відображає токени в міру надходження.

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!"}],
    "stream": true
  }'

Інструменти

MiniMax, Kimi і DeepSeek Flash приймають tools / tool_choice у форматі OpenAI. У Kimi є vision. Перед запитами з tools або vision перевір, що модель зараз є в `GET /v1/models`.

Публічні ендпоінти

Ключ не потрібен:

  • GET /v1/models — актуальні ID моделей
  • GET /v1/status?window=1h|24h|7d|30d — аптайм (типово 24h)
  • GET /health — стан процесу
  • GET /v1/auth/check-username?username=… — чи вільний нік

Помилки

СтатусПовідомленняЩо робити
401Missing API token / invalid API tokenПередай Authorization: Bearer із чинним ключем
402available tokens exhaustedПереведи токени з пулу або поповни
429too many signup/sign-in attemptsЗачекай і повтори
4xx / 502застарілий або непідтримуваний modelВізьми актуальний id з GET /v1/models
503 / таймаутиперевантаження мережіКороткий backoff і повтор