Cookieを使用しています. Cookieとブラウザストレージは、ログイン状態の維持と設定の保存に使われます。許可いただいた場合は、サイトの利用状況も計測します。はいつでも変更できます。詳しくはCookieポリシーをご覧ください。

Chat Completions

エンドポイント

Chat Completions

POST /chat/completions のリクエストとレスポンスを説明します。OpenAI 形式でカタログ内のあらゆるテキストモデルを呼び出せ、ボディは上流へそのまま転送されます。課金の注意点とエラーも確認できます。ストリーミングにも対応します。

プレイグラウンドで試す

Chat Completions エンドポイントは OpenAI のチャット形式を使い、カタログのすべてのテキストモデル(GPT、Claude、Gemini、Llama、DeepSeek、Mistral ほか数百のモデル)で動作します。リクエストボディは変更されずに上流のプロバイダーへ送られます。api14 が確認するのはキー、モデル、制限、残高のみで、リクエストの完了時に利用量を記録します。

POST https://api14.com/api/v1/chat/completions
Authorization: Bearer sk-api14-...
Content-Type: application/json

リクエスト

パラメーター型説明
modelstring, 必須モデル ID。例: anthropic/claude-sonnet-4.5。:online や :nitro などのバリアントも使えます。モデル IDを参照してください。
messagesarray, 必須{ role, content } オブジェクトによる会話。ロール: system、developer、user、assistant、tool。
modelsstring[]最初のモデルが失敗した場合に順に試すフォールバックモデル。プロバイダールーティングを参照してください。
streambooleanトークンを Server-Sent Events でストリーミングします。ストリーミングを参照してください。
max_tokens / max_completion_tokensinteger生成するトークン数の上限。
temperaturenumberサンプリング温度。通常は 0 から 2。
top_p, top_k, min_p, top_anumberそのほかのサンプリング制御。非対応のモデルでは無視されます。
frequency_penalty, presence_penalty, repetition_penaltynumber繰り返しの制御。
stopstring | string[]停止シーケンス。
seedintegerベストエフォートの決定的サンプリング。
logprobs, top_logprobsboolean, integerモデルが対応している場合に、トークンの対数確率を返します。
tools, tool_choice, parallel_tool_calls関数呼び出し。ツール呼び出しを参照してください。
response_formatobjectJSON モードまたは JSON Schema による出力。構造化出力を参照してください。
reasoning, include_reasoningobject, boolean思考の制御。推論を参照してください。
plugins, web_search_optionsWeb 検索。Web 検索を参照してください。
providerobject上流プロバイダーの設定。プロバイダールーティングを参照してください。
modalitiesstring[]画像出力なら ["image", "text"]、音声出力なら ["text", "audio"] など。
predictionobject編集時のレイテンシを減らすための予測出力({ type: "content", content })。
transformsstring[]コンテキストウィンドウを超えるプロンプトを圧縮する ["middle-out"] など。
userstring独自のエンドユーザー識別子。

メッセージの content は、文字列またはコンテンツパートの配列(text、image_url、file、input_audio)にできます。画像とファイル入力を参照してください。

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": "Explain vector databases in two sentences."
    }
  ]
});
console.log(result.choices[0].message.content);

レスポンス

{
  "id": "gen-1760000000-abc123",
  "object": "chat.completion",
  "created": 1760000000,
  "model": "anthropic/claude-sonnet-4.5",
  "provider": "Anthropic",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": { "role": "assistant", "content": "Hello! How can I help you today?" }
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 9,
    "total_tokens": 21,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 },
    "cost": 0.000171
  }
}

usage.cost はリクエストの料金で、単位は USD です。api14 はリクエストの完了後にこの金額を残高から差し引きます。id は生成 ID で、後から生成情報の取得で照会できます。

課金に関する注意

  • モデルの表示価格を支払い、請求額は usage.cost で返されます。料金と請求を参照してください。
  • 失敗したリクエスト(4xx または 5xx のステータス)には課金されません。
  • リクエストに models: [...] を含める場合、すべてのフォールバックモデルがキーとプランで許可されている必要があります。許可されていない場合、ゲートウェイは上流へ送信する前にリクエストを拒否します。

エラー

ステータスコード発生条件
400model_requiredmodel がない。
400invalid_jsonボディが JSON オブジェクトではない。
401invalid_api_keyキーがない、無効、または失効している。
402insufficient_balanceUSD 残高が $0。
403model_not_allowed / plan_requiredキーの許可リストまたはプランがこのモデルをカバーしていない。
404model_not_foundモデル ID が不明、または無効化されている。
413payload_too_largeリクエストボディが 25 MB を超えている。
429rate_limited / daily_limit_reachedRPM の上限、またはキーの 1 日の USD 上限に達した。
502upstream_unavailable上流のプロバイダーに接続できなかった。

コンテキスト長超過やコンテンツモデレーションなど、上流のエラーは元のステータスコードと同じエラー形式で返されます。エラーを参照してください。