API リファレンス¶
Claudin.io は OpenAI 互換 の API です。OpenAI API を使ったことがあるなら、ここにあるものはすべて見慣れたものです。Claudin.io のベース URL を指定して claudinio モデルを使うだけです。
ベース URL¶
OpenAI スタイルのルートは /v1 配下にあります。
認証¶
すべてのリクエストで API キーを次のいずれかのヘッダーとして送信します:
モデル¶
| モデル 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 パラメータがサポートされています: messages、temperature、top_p、max_tokens、stream、stop、tools / tool_choice (関数呼び出し)、response_format など。送信する前に知っておくべき制限が 2 つあります: max_tokens は下限と上限にクランプされ、n は 1 である必要があります。
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 のエラー構造に従います:
| ステータス | 意味 | 対処方法 |
|---|---|---|
401 |
API キーが無効または欠落 | キーと認証ヘッダーを確認 |
403 |
エンドポイントが許可されていない | サポートされている /v1/* パスのいずれかを使用 |
402 |
アクティブなサブスクリプションがない | サブスクライブ — 再試行しても解決しません |
429 |
予算上限に達した、またはレート制限 | ウィンドウのリセットを待つ (Retry-After ヘッダーを参照) か アップグレード |
400 |
不正なリクエスト | JSON / パラメータを確認 — max_tokens と n を参照 |
5xx |
上流 / プロバイダの一時的な問題 | バックオフ付きで再試行 |
プロバイダの詳細は設計上非表示になっています
エラーメッセージはサニタイズされ、基盤となるモデルプロバイダが漏れないようになっています。常に Claudin.io ブランドの OpenAI 形式のエラーが表示されます。
予算上限に達した場合¶
現在のウィンドウの支出保護を使い切ると、リクエストは 429 と、ウィンドウがリセットされるまでの秒数を示す Retry-After ヘッダーを返します。ダッシュボードには正確なリセット時刻と残りの予算が表示されます。すぐに再試行するのではなく、そのヘッダーに従ってバックオフしてください。ウィンドウの仕組みについては プランと制限 を参照してください。
429 の代わりにメッセージを返す場合¶
ごく一部のアカウントで、同じ状況に対する別の応答を試しています。エラーではなく リクエストが正常に完了し、応答の本文そのものが上限に達したこととリセットの時刻を 説明します。エージェントが黙って飲み込んでしまうエラーより、この方が人に確実に 届くかどうかを測っています。あわせて、はっきり伝えられたときに、見合ったプランへ 移りたいと思うかどうかも見ています。
自動化を組んでいる場合、2xx を「処理された」と読まないでください。 上限に
達したと述べている応答は、上限に達したものとして扱い、ウィンドウがリセットされる
まで待ってください。上記の 429 は引き続き既定の動作であり、ほぼすべてのアカウ
ントが受け取るのはそちらです。
レート制限¶
Claudin.io は通常の使用をハードブロックしません。悪質なリクエストレートは拒否されるのではなく遅延される (透過的なスロットル) ため、行儀の良いクライアントがペナルティを受けることはありません。実際には何もする必要はありません — まれな 429 で再試行するだけです。