クイック回答
LLMwithCryptoのchat completions endpointはどのフィールドを受け付けますか?
OpenAI chat completionsのbodyを受け付けます。modelとmessagesは必須で、max_tokens、temperature、top_p、stop、stream、stream_options、tools、tool_choice、response_formatは任意です。LLMwithCryptoはusageのカウントを含むchat.completionオブジェクトを返し、2026年10月23日に記載のとおり、クレジットからトークン単位で課金されます。ツール呼び出しとJSON出力はモデルによって異なります。
endpointの概要
| メソッドとURL | POST https://llmwithcrypto.com/api/v1/chat/completions |
|---|---|
| 認証 | OpenAI SDKと同様に、APIキーをAuthorizationヘッダーにBearerトークンとして渡してください |
| Body | JSON、Content-Type: application/json |
| レスポンス | chat.completionオブジェクト、またはstream: trueによるserver-sent events |
| 課金 | 残高からトークン単位で支払います。入力トークンと出力トークンはモデル自身のトークナイザーでカウントされ、そのモデルの100万トークンあたりの価格で請求されます。エラーで終わった呼び出しは無料です |
| 機能 | ストリーミングはすべてのモデルで利用できます。tool callingとJSON出力は、各モデル自体が対応している範囲に従います |
チャット補完を作成する
POST/api/v1/chat/completions
会話を1つのモデルに送信し、トークン数とともにその回答を返します。この例ではDeepSeek V4 Proに200トークンの上限付きで短い質問をします。レスポンスのID、時刻、カウントは例示です。
認証: Authorization: Bearer API_KEY ヘッダーに APIキーを指定します。
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | deepseek-v4-proやgpt-oss-120bなどのモデルID。GET /api/v1/modelsはAPIキーで呼び出せるすべてのIDを返します。 |
messages | object[] | はい | 会話を古い順に並べたもの。各項目にはrole(system、user、assistant、toolのいずれか)とcontent文字列があり、toolメッセージにはtool_call_idも含まれます。 |
max_tokens | integer | いいえ | 回答が使用できる最大トークン数。指定しない場合、モデルはコンテキストウィンドウが満杯になるまで書き続けることがあり、書き込んだすべてのトークンに対して支払いが発生します。 |
temperature | number | いいえ | 0〜2。低いほど予測しやすく、高いほど多様になります。デフォルトはモデルによって異なります。 |
top_p | number | いいえ | 0〜1、nucleus sampling。temperatureとtop_pの両方ではなく、どちらか一方を変更してください。 |
stop | string or string[] | いいえ | モデルが書き込むと回答を終了させる最大4つのシーケンス。回答には含まれません。 |
stream | boolean | いいえ | trueは回答をserver-sent eventsとして少しずつ送信します。ストリーミングを参照。 |
stream_options | object | いいえ | {"include_usage": true}はストリーミング呼び出しのusageを含む最後のイベントを追加します。 |
tools | object[] | いいえ | モデルが呼び出しを求める可能性がある関数をOpenAI形式で指定。ツール呼び出しをサポートするモデルで動作します。ツール呼び出しを参照。 |
tool_choice | string or object | いいえ | auto(toolsが設定されている場合のデフォルト)、none、required、または{"type": "function", "function": {"name": "…"}}。 |
response_format | object | いいえ | {"type": "json_object"}は有効なJSONオブジェクトを要求します(対応モデルのみ)。JSONに何を含めるべきかをプロンプトで指定してください。 |
{
"model": "deepseek-v4-pro",
"messages": [
{
"role": "system",
"content": "Answer in two sentences."
},
{
"role": "user",
"content": "What is a context window?"
}
],
"max_tokens": 200
}{
"model": "gpt-oss-120b",
"messages": [
{
"role": "user",
"content": "Return {\"city\": string, \"country\": string} for the Eiffel Tower."
}
],
"response_format": {
"type": "json_object"
},
"temperature": 0.2,
"max_tokens": 100
}レスポンス 200
{
"id": "chatcmpl-8f2c41d0a7b94e1c",
"object": "chat.completion",
"created": 1792742400,
"model": "deepseek-v4-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A context window is the maximum number of tokens a model can read and write in one request. Anything beyond it must be cut or summarized before the call."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 27,
"completion_tokens": 34,
"total_tokens": 61
}
}コード例
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [
{"role": "system", "content": "Answer in two sentences."},
{"role": "user", "content": "What is a context window?"}
],
"max_tokens": 200
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://llmwithcrypto.com/api/v1",
api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
)
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "Answer in two sentences."},
{"role": "user", "content": "What is a context window?"},
],
max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, "in,", resp.usage.completion_tokens, "out")import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://llmwithcrypto.com/api/v1',
apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});
const resp = await client.chat.completions.create({
model: 'deepseek-v4-pro',
messages: [
{ role: 'system', content: 'Answer in two sentences.' },
{ role: 'user', content: 'What is a context window?' },
],
max_tokens: 200,
});
console.log(resp.choices[0].message.content);
console.log(resp.usage.prompt_tokens, 'in,', resp.usage.completion_tokens, 'out');メッセージはどう書けばよいですか?
毎回、会話全体を古いメッセージから順に送信してください。APIは呼び出し間で記憶を保持せず、プロンプトの内容も保存されません。プロンプトやモデルの回答は保存しません。レスポンスを送信した時点で、そのテキストは残りません。各呼び出しにつき、時刻、アカウント、モデル、トークン数を記録したログが1行残り、30日後に削除されます。
system: 口調、言語、出力形式など、すべての回答の枠組みとなる指示です。先頭に1つ置きます。user: ユーザーまたはあなたのプログラムからの質問です。assistant: モデルの以前の回答です。これにより会話を続けられます。tool: モデルが実行を依頼した関数の結果で、モデルが渡したtool_call_idを含みます。
すべてのメッセージが入力トークンとしてカウントされるため、履歴が長いほど各ターンのコストが増えます。会話が長くなったら、古いターンを削除するか要約してください。
リクエストの長さはどれくらいまで可能ですか?
入力と出力を合わせて、モデルのコンテキストウィンドウに収まる必要があります。2026年10月23日時点では、DeepSeek V4 Proは最大1Mトークン、gpt-oss-120bは最大128K、Qwen3 235Bは最大256Kを読み取ります。詳細はモデルページに一覧があります。
収まらないリクエストはコードcontext_length_exceededの400として返され、料金はかかりません。プロンプトと受け入れる最長の回答がウィンドウ内に収まるようにmax_tokensを設定してください。
finish_reason から何がわかりますか?
finish_reason | 意味 | 対処方法 |
|---|---|---|
stop | モデルが回答を終了した、または指定したstopシーケンスのいずれかを出力した | 何もする必要はありません。回答は完了しています |
length | 回答がmax_tokensまたはコンテキストウィンドウに達した | max_tokensを増やすか、より短い回答を要求してください |
tool_calls | モデルが1つ以上の関数の実行を求めている | 実行して結果を返送してください。tool callingを参照 |
どの OpenAI パラメータがサポートされていませんか?
上の表のフィールドが契約のすべてです。OpenAI API のその他のフィールド、たとえばn(1回の呼び出しで複数の回答)、logprobs、audio、画像入力などはサポートされていません。ここに記載されているフィールドのみを送信してください。モデルはすべてテキストモデルであり、このendpointで画像を受け取るものはありません。
modelフィールドは当社のリストにあるidのみを受け付けます。GPT、Claude、Gemini、Grokへのアクセスは販売していません。これらの提供元は自社の承認なしにAPIアクセスの再販を禁じており、当社はその承認を得ていません。
Chat completions: よくある質問
レガシーの completions endpoint はありますか?
いいえ。chat 形式のみ存在します。単一のプロンプトはuserメッセージを1つ含むmessages配列です。
呼び出しの料金はいくらですか?
残高からトークン単位で支払います。入力トークンと出力トークンはモデル自身のトークナイザーでカウントされ、そのモデルの100万トークンあたりの価格で請求されます。エラーで終わった呼び出しは無料です。モデルごとの価格は料金ページに記載されています。
過去のリクエストを確認できますか?
いいえ、設計上できません。プロンプトやモデルの回答は保存しません。レスポンスを送信した時点で、そのテキストは残りません。各呼び出しにつき、時刻、アカウント、モデル、トークン数を記録したログが1行残り、30日後に削除されます。
回答が途中で止まったのはなぜですか?
その場合finish_reasonはlengthになります。回答がmax_tokensに達したためです。モデルのコンテキストウィンドウ内で増やしてください。