LLM API
LLM API を使うと、自分のコードから endue の APIキーでモデルを直接呼び出せます。リクエスト形式は OpenAI や Anthropic の API と同じで、呼び出しごとの料金はクレジットから支払われます。
エージェントではなくモデルを使いたいときです。自分のアプリ内でのテキスト生成、すでに OpenAI や Anthropic の API を呼び出しているコード、Claude Code などが該当します。変更するのはベース URL とキーだけで、ほかのコードはそのまま使えます。
プロンプト、メモリ、ツール、コネクターを備えたエージェントに作業を任せたい場合は、代わりにエージェント API で呼び出してください。
最初の呼び出し
Section titled “最初の呼び出し”-
アカウント全体のキーを発行します。設定 → アカウント → APIキーで発行し、表示されたらすぐにコピーしてください。キーは一度しか表示されません。エージェントの API セクションで発行したキーはそのエージェント専用で、モデルを直接呼び出すことはできません。
-
キーはコードに書き込まないでください。
ENDUE_API_KEYなどの環境変数に入れます。 -
次のベース URL を指定して SDK の接続先を endue にし、モデル一覧にあるモデルを呼び出します。
https://platform.endue.ai/api/v1/llm
import osfrom openai import OpenAI
client = OpenAI(base_url="https://platform.endue.ai/api/v1/llm", api_key=os.environ["ENDUE_API_KEY"])res = client.chat.completions.create( model="openai/gpt-5.4", messages=[{"role": "user", "content": "Hello"}],)print(res.choices[0].message.content)import OpenAI from 'openai';
const client = new OpenAI({ baseURL: 'https://platform.endue.ai/api/v1/llm', apiKey: process.env.ENDUE_API_KEY });const res = await client.chat.completions.create({ model: 'openai/gpt-5.4', messages: [{ role: 'user', content: 'Hello' }],});console.log(res.choices[0].message.content);curl https://platform.endue.ai/api/v1/llm/chat/completions \ -H "Authorization: Bearer $ENDUE_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"openai/gpt-5.4","messages":[{"role":"user","content":"Hello"}]}'import osimport anthropic
client = anthropic.Anthropic(base_url="https://platform.endue.ai/api/v1/llm", api_key=os.environ["ENDUE_API_KEY"])msg = client.messages.create( model="claude-sonnet-4-5", max_tokens=1024, messages=[{"role": "user", "content": "Hello"}],)print(msg.content[0].text)export ANTHROPIC_BASE_URL=https://platform.endue.ai/api/v1/llmexport ANTHROPIC_API_KEY=$ENDUE_API_KEYclaude設定 → アカウント → LLM API にも同じベース URL と例があり、そのままコピーできます。
モデルと料金
Section titled “モデルと料金”GET https://platform.endue.ai/api/v1/llm/models は、呼び出せるすべてのモデルを、コンテキスト長と料金とともに返します。取得にキーは必要ありません。
- モデル ID は
openai/gpt-5.4やx-ai/grok-4.6のように、プロバイダー、モデルの順で表します。 - 料金はトークンあたりのクレジットで、10進数の文字列で表されます。入力は
prompt、出力はcompletionに記載され、キャッシュされた入力を割り引くモデルではinput_cache_readにも記載されます。1クレジットは1米ドルです。 - 非常に長いプロンプトに高い料金を設定しているモデルもあります。その料金は、適用が始まるプロンプトの長さとともに
overridesに記載されます。
同じモデルはモデルページでも一覧できます。
ストリーミング
Section titled “ストリーミング”"stream": true を指定します。回答は OpenAI のチャンク形式の Server-Sent Events として届き、data: [DONE] で終わります。[DONE] の直前のチャンクには、その呼び出しのコストを含む usage が入っています。
支払いの仕組み
Section titled “支払いの仕組み”-
モデルを実行する前に、endue はその呼び出しでかかりうる最大額(プロンプトと、
max_tokens分の出力)をまかなえるだけのクレジットを確保します。残高がそれより少ない場合、モデルは呼び出されず、402が返ります。 -
呼び出しが終わると、実際にかかった分だけが請求され、確保していた残りは残高に戻ります。
-
レスポンスで請求額がわかります。
usage.costがこの呼び出しで差し引かれたクレジットで、問い合わせが必要な場合はX-Endue-Request-Idヘッダーで呼び出しを特定できます。
max_tokens を省略し、残高がモデルの最大出力長をまかなえない場合は、残高でまかなえる長さまで max_tokens を下げて呼び出します。ただし、その長さが1,024トークン以上であることが条件で、それを下回る場合は 402 が返ります。
LLM API の呼び出しは、購入クレジットとプロモーションクレジットからのみ支払われます。プランに含まれる利用枠はエージェント用で、ここでは使われません。呼び出しは使用量ダッシュボードの利用元タブに LLM API として表示されます。
Anthropic 形式と Claude Code
Section titled “Anthropic 形式と Claude Code”同じベース URL は、Anthropic Messages 形式も受け付けます。Anthropic SDK と Claude Code はベース URL に /v1/messages を自動で付け加えるので、設定は上のタブにある2行だけです。
- キーは
x-api-keyとAuthorization: Bearerのどちらで送っても構いません。 - Claude のモデル名は、Anthropic で指定するときと同じ書き方(
claude-sonnet-4-5、またはclaude-sonnet-4-5-20250929のような日付付きの名前)で使えます。ただし、そのモデルがモデル一覧に載っている必要があります。モデル一覧の ID もそのまま使え、Claude 以外のモデルも呼び出せます。 - ストリーミングは Anthropic のイベント形式、エラーは Anthropic のエラー形式で返ります。
/v1/messages/count_tokensは、入力トークン数の推定値を返します。課金はされません。また、トークナイザーで数えた正確な値ではなく、概算です。
エラーは、呼び出した形式に合わせた構造で返ります。OpenAI 形式なら {"error": {…}}、Anthropic 形式なら {"type": "error", "error": {…}} です。
| ステータス | 原因 | 対処 |
|---|---|---|
400 | リクエストの形式が正しくない、n が1より大きい、またはモデルが入力を拒否した | リクエストを修正します。何が問題かはメッセージに示されます |
401 | キーがない、無効化されている、または間違っている | キーと、その送り方を確認します |
402 | クレジット残高が呼び出しをまかなえない(insufficient_credits、Anthropic 形式では billing_error) | クレジットを購入するか、max_tokens を下げます |
403 | キーが1つのエージェント専用になっている | アカウント全体のキーを発行します |
404 | モデル一覧にないモデルを指定した | /models にある ID を選びます |
429 | リクエストが多すぎる | Retry-After に示された秒数だけ待ちます |
502 | モデルプロバイダー側でエラーが発生した | 再試行します |
503 | 課金処理またはモデル一覧が一時的に利用できない。モデルは呼び出されておらず、請求も発生していない | しばらくしてから再試行します |
- 呼び出せるのは、モデル一覧にあるモデルだけです。
- 対応している形式は、OpenAI Chat Completions と Anthropic Messages の2つです。埋め込み、画像、音声、Responses のエンドポイントはありません。
nは1でなければなりません。- 標準のリクエストに含まれないフィールド(ほかのモデルへのフォールバックリスト、プロバイダーのルーティング、プラグインなど)は無視されます。Anthropic 形式では、Web 検索などのサーバーツールは拒否され、
top_kは無視されます。 - プランの利用枠は使われません。呼び出しには、購入クレジットかプロモーションクレジットが必要です。
- 1つのエージェント専用のキーでは、モデルを呼び出せません。
- 呼び出しは1分あたり100回までで、キー単位とアカウント単位の両方で数えます。リクエストボディの上限は8 MB です。
count_tokensの値は推定値です。