Довідка з API

API

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

Базовий URL

Усі запити до моделей надсилаються на https://inference.dahl.global/v1. Для запитів Chat Completions потрібен заголовок Authorization: Bearer <API_KEY> і ключ із токенами на балансі.

Генерація відповідей (Chat Completions)

POST /v1/chat/completions сумісний з API 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
  }'

Responses (Codex / Agents SDK)

POST /v1/responses — адаптер для тих самих моделей, що доступні через Chat Completions. Codex CLI та OpenAI Agents SDK використовують цей ендпоінт за замовчуванням. Передай model та input (рядок або список елементів). Текст відповіді — в output_text або output[]. Потокова передача використовує події Responses SSE (response.created … response.completed), без data: [DONE].

curl https://inference.dahl.global/v1/responses \
  -H "Authorization: Bearer $DAHL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "input": "Hello, Dahl!"
  }'
{
  "id": "resp_…",
  "object": "response",
  "status": "completed",
  "model": "MiniMaxAI/MiniMax-M2.7",
  "output_text": "…",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        { "type": "output_text", "text": "…" }
      ]
    }
  ]
}

У Codex вкажи власний ідентифікатор провайдера (dahl) замість вбудованого openai. Інакше Codex звертається до /v1/responses/compact, який брокер не підтримує. Стиснення контексту виконується локально.

model = "MiniMaxAI/MiniMax-M2.7"
model_provider = "dahl"

[model_providers.dahl]
name = "Dahl"
base_url = "https://inference.dahl.global/v1"
env_key = "DAHL_API_KEY"
requires_openai_auth = false
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://inference.dahl.global/v1",
    api_key=os.environ["DAHL_API_KEY"],
)
r = client.responses.create(
    model="MiniMaxAI/MiniMax-M2.7",
    input="Hello, Dahl!",
)
print(r.output_text)

Інструменти

MiniMax і DeepSeek Flash приймають tools / tool_choice у форматі OpenAI. Зображення (vision) на поточних моделях не приймаються. Перед запитами з інструментами перевір, що модель зараз є в GET /v1/models.

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

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

  • GET /v1/models — актуальні ID моделей
  • GET /v1/status?window=1h|24h|7d|30d — результати перевірок доступності (за замовчуванням за 24 години)
  • 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Зачекай і повтори
400This model is not currently offered (+ актуальні ID)Постав у model id з помилки або GET /v1/models
503 / таймаутиперевантаження мережі або вузлаТрохи зачекай і повтори запит