API ドキュメント

DUKOU AI は OpenAI 互換 API を提供します。カスタム Base URL に対応した OpenAI SDK・ツール・フレームワークなら、そのまま接続できます。

クイックスタート

コンソール で API キーを作成し、Base URL を DUKOU AI に向けるだけです:

https://api.dukou.ai/v1
Python(OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    base_url="https://api.dukou.ai/v1",
    api_key="sk-dukou-********",  # コンソールで作成
)

resp = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "こんにちは"}],
)
print(resp.choices[0].message.content)
Node.js(OpenAI SDK)
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.dukou.ai/v1",
  apiKey: process.env.DUKOU_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "gemini-3-flash",
  messages: [{ role: "user", content: "こんにちは" }],
});
console.log(resp.choices[0].message.content);
AI コーディングツール
# Claude Code / Cursor / Cline などのツールで、
# OpenAI 互換の Base URL とキーを DUKOU AI に向けます:
export OPENAI_BASE_URL="https://api.dukou.ai/v1"
export OPENAI_API_KEY="sk-dukou-********"

認証

すべてのリクエストは Authorization: Bearer sk-dukou-... で API キーを送信します。キーは作成時に一度だけ表示されるため、安全に保管してください。漏えいした場合は直ちにコンソールで無効化し、新しいキーを作成してください(無効化は 30 秒以内に全体へ反映されます)。

エンドポイント

初期リリースでは以下の OpenAI 互換エンドポイントを提供し、/v1/responses/v1/embeddings は今後追加予定です:

GET/v1/models
POST/v1/chat/completions
curl · モデル一覧
curl https://api.dukou.ai/v1/models \
  -H "Authorization: Bearer $DUKOU_API_KEY"
curl · チャット補完
curl https://api.dukou.ai/v1/chat/completions \
  -H "Authorization: Bearer $DUKOU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.2",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "自己紹介をしてください"}
    ]
  }'

ストリーミング

"stream": true を設定すると、レスポンスは SSE(Server-Sent Events)で逐次返され、OpenAI のストリーミングプロトコルと同一です。

curl · ストリーミング
curl https://api.dukou.ai/v1/chat/completions \
  -H "Authorization: Bearer $DUKOU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "stream": true,
    "messages": [{"role": "user", "content": "渡し場についての短い詩を書いてください"}]
  }'

エラーと課金

  • エラーレスポンスは OpenAI スタイルのエラーボディを使用します:{"error": {"message", "type", "code"}}
  • リクエスト開始時に最大費用を残高から仮押さえし、終了後に実際のトークン使用量で精算して差額を解放します。残高不足の場合は 4xx エラーを返します。
  • 各リクエストのモデル、トークン使用量、費用、レイテンシはコンソールの利用統計と台帳で確認できます。