コンテンツにスキップ

API リファレンス

Claudin.io は OpenAI 互換 の API です。OpenAI API を使ったことがあるなら、ここにあるものはすべて見慣れたものです。Claudin.io のベース URL を指定して claudinio モデルを使うだけです。

ベース URL

https://api.claudin.io

OpenAI スタイルのルートは /v1 配下にあります。

認証

すべてのリクエストで API キーを次のいずれかのヘッダーとして送信します:

Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY

モデル

モデル ID コンテキストウィンドウ
claudinio 256K トークン

どこでも claudinio を使用してください。(一部のクライアントは provider/model 形式を期待します — その場合は claudinio/claudinio を使用してください。)

エンドポイント

メソッドとパス 説明
POST /v1/chat/completions チャット補完 — 主要なエンドポイント
POST /v1/completions レガシーなテキスト補完
POST /v1/messages Anthropic Messages 形式
POST /v1/responses Responses API (Codex)
POST /v1/embeddings テキスト埋め込み
GET /v1/models 利用可能なモデルの一覧

チャット補完

curl https://api.claudin.io/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "claudinio",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Write a haiku about proxies."}
    ],
    "temperature": 0.7
  }'

標準の OpenAI パラメータがサポートされています: messagestemperaturetop_pmax_tokensstreamstoptools / tool_choice (関数呼び出し)、response_format など。送信する前に知っておくべき制限が 2 つあります: max_tokens は下限と上限にクランプされ、n1 である必要があります。

max_tokens と推論

Claudinio モデルは回答する前に推論し、推論トークンは max_tokens にカウントされます — 同じ予算が内部の思考連鎖と表示される回答の両方をカバーします。そのため、小さな max_tokens はほとんどすべて推論に消費され、回答が文の途中で切り詰められる可能性があります。

これを防ぐため、32000 未満の値は自動的に 32000 に引き上げられます。逆に、393216 を超える値は 393216 — モデルが受け入れる最大値 — に引き下げられます。より大きな数値は「好きなだけ」として扱われるのではなく、そのまま拒否されるためです。その間の値は変更なしでそのまま渡され、パラメータを省略しても常に問題ありません。

max_tokens は上限であり、予約ではありません: 実際に生成されたトークンに対してのみ課金されるため、大きめの値を設定しても追加コストはかかりません。

構造化出力 (JSON、XML、厳密な形式) を解析する場合は、解析前に finish_reason を確認してください — "length" はレスポンスがトークン上限に達して不完全であることを意味するため、解析の失敗はモデルの異常ではなく想定内です:

choice = response.choices[0]
if choice.finish_reason == "length":
    ...  # truncated — retry with a larger max_tokens
data = json.loads(choice.message.content)

複数の補完 (n)

サポートされているのは n = 1 のみです。n を 1 より大きくして送信すると、"code": "unsupported_parameter" を伴う 400 が返されます。パラメータを省略するのは常に安全です。

Claudinio モデルは回答する前に推論し、推論パスは単一の思考ラインを生成します — それを複数の独立した候補に分岐させる簡単な方法はないため、上流側も提供していません。複数の候補が必要な場合は、リクエストを複数回送信してください (より高い temperature でバリエーションが得られます)。各リクエストは個別に課金されることに注意してください。

我々は黙って単一の選択肢を返すのではなく、n > 1 を拒否します: 4 つを要求して 1 つしか受け取らないクライアントは、通常、私たちからのエラーなしに、後で自分のコード内で失敗するためです。

ストリーミング

"stream": true を設定すると、OpenAI ストリーミング形式のサーバー送信イベント (data: [DONE] で終了する data: {...} チャンク) を受け取ります。

ツール / 関数呼び出し

claudinio はツール呼び出しをサポートしています。OpenAI API とまったく同じように、tools を渡してレスポンスから tool_calls を読み取ります。これにより、Claude Code、Kilo、Cursor などのエージェント型エディタ内で動作します。

マルチモーダル入力

claudinio はテキストモデルですが、Claudin.io は画像、音声、動画ブロックを透過的に処理します: 送信すると、モデルが処理する前にプロキシがテキストの説明 / 文字起こしに変換します。特別なことをする必要はありません — 標準の OpenAI コンテンツブロックを送信するだけで動作します。

エラー

エラーは OpenAI のエラー構造に従います:

{ "error": { "message": "…", "type": "…", "code": "…" } }
ステータス 意味 対処方法
401 API キーが無効または欠落 キーと認証ヘッダーを確認
403 エンドポイントが許可されていない サポートされている /v1/* パスのいずれかを使用
402 アクティブなサブスクリプションがない サブスクライブ — 再試行しても解決しません
429 予算上限に達した、またはレート制限 ウィンドウのリセットを待つ (Retry-After ヘッダーを参照) か アップグレード
400 不正なリクエスト JSON / パラメータを確認 — max_tokensn を参照
5xx 上流 / プロバイダの一時的な問題 バックオフ付きで再試行

プロバイダの詳細は設計上非表示になっています

エラーメッセージはサニタイズされ、基盤となるモデルプロバイダが漏れないようになっています。常に Claudin.io ブランドの OpenAI 形式のエラーが表示されます。

予算上限に達した場合

現在のウィンドウの支出保護を使い切ると、リクエストは 429 と、ウィンドウがリセットされるまでの秒数を示す Retry-After ヘッダーを返します。ダッシュボードには正確なリセット時刻と残りの予算が表示されます。すぐに再試行するのではなく、そのヘッダーに従ってバックオフしてください。ウィンドウの仕組みについては プランと制限 を参照してください。

429 の代わりにメッセージを返す場合

ごく一部のアカウントで、同じ状況に対する別の応答を試しています。エラーではなく リクエストが正常に完了し、応答の本文そのものが上限に達したこととリセットの時刻を 説明します。エージェントが黙って飲み込んでしまうエラーより、この方が人に確実に 届くかどうかを測っています。あわせて、はっきり伝えられたときに、見合ったプランへ 移りたいと思うかどうかも見ています。

自動化を組んでいる場合、2xx を「処理された」と読まないでください。 上限に 達したと述べている応答は、上限に達したものとして扱い、ウィンドウがリセットされる まで待ってください。上記の 429 は引き続き既定の動作であり、ほぼすべてのアカウ ントが受け取るのはそちらです。

レート制限

Claudin.io は通常の使用をハードブロックしません。悪質なリクエストレートは拒否されるのではなく遅延される (透過的なスロットル) ため、行儀の良いクライアントがペナルティを受けることはありません。実際には何もする必要はありません — まれな 429 で再試行するだけです。