ドキュメントAPI リファレンス

API リファレンス

Echo Token Station の接続先と認証、SDK とツールごとの接続先、使えるエンドポイント、形式の変換、ストリーミング、主なパラメータです。

Echo の API は、OpenAI 形式と Anthropic 形式に対応しています。このページでは、エンドポイント(機能ごとの呼び出し先 URL)、認証、ストリーミング、主なパラメータを説明します。リクエストとレスポンスの細かい仕様は、各社の API ドキュメントに従います。

接続先と認証

形式接続先 URL(base URL)キーを送るヘッダー
OpenAI 形式https://token.echohub.io/v1Authorization: Bearer キー
Anthropic 形式https://token.echohub.iox-api-key: キー または Authorization: Bearer キー
  • x-api-key ヘッダーは、Anthropic 形式のエンドポイント(/v1/messages と、Anthropic 形式の一覧を返す /v1/models)で使えます。ほかのエンドポイントでは Authorization ヘッダーを使います
  • Anthropic 形式では、anthropic-version ヘッダー(例:2023-06-01)も送ります。Anthropic の SDK は自動で送ります
  • 通信は HTTPS だけです
  • 呼び出し先のパスに /v1 がないと、キーが正しくても HTTP 404(JSON ではなく、Web サイトの HTML ページ)になります。/v1 が 2 回入ると HTTP 404(JSON の Invalid URL)になります

SDK とツールごとの接続先

SDK によって、接続先に /v1 まで含めるものと、SDK が /v1 を付けるものがあります。「確認」欄の「済み」は 2026-09-27 に Echo の検証環境で呼び出しを確認したもの、「未」は各ツールの公式ドキュメントに基づくものです。

SDK・ツール設定する項目値確認
OpenAI SDK(Python・Node.js)base_url・baseURLhttps://token.echohub.io/v1済み
Anthropic SDK(Python・Node.js)base_url・baseURLhttps://token.echohub.io済み
Vercel AI SDK @ai-sdk/openai-compatiblebaseURLhttps://token.echohub.io/v1。トークン数を受け取るには includeUsage: true も指定します済み
Vercel AI SDK @ai-sdk/openaibaseURLhttps://token.echohub.io/v1。既定は Responses API で、.chat() を使うと Chat Completions API になります済み
Vercel AI SDK @ai-sdk/anthropicbaseURLhttps://token.echohub.io/v1。Anthropic SDK と違い、/v1 まで含めます済み
LangChain ChatOpenAIbase_url(TypeScript は configuration.baseURL)https://token.echohub.io/v1済み
LangChain ChatAnthropicbase_url(TypeScript は clientOptions.baseURL)https://token.echohub.io済み
LlamaIndex OpenAILikeapi_basehttps://token.echohub.io/v1。is_chat_model=True と context_window も指定します済み
LlamaIndex Anthropicbase_urlhttps://token.echohub.io。モデル名は LlamaIndex が知っている名前だけ使えます済み
Claude Code環境変数 ANTHROPIC_BASE_URLhttps://token.echohub.io(Claude Code)済み
Codex CLIconfig.toml の base_urlhttps://token.echohub.io/v1、wire_api = "responses"(Codex CLI)済み
Cursor・Cline・Dify・Continue・Roo Code・n8nBase URL などの接続先の項目https://token.echohub.io/v1未

エンドポイント一覧

メソッドとパス形式できること提供するモデル
POST /v1/chat/completionsOpenAI会話の続きを生成する(Chat Completions API)モデル一覧
POST /v1/responsesOpenAI応答を生成する(Responses API)モデル一覧
POST /v1/messagesAnthropic会話の続きを生成する(Messages API)モデル一覧
GET /v1/modelsOpenAI・Anthropicキーで使えるモデルの一覧を返す—
POST /v1/embeddingsOpenAI文章を数値の並び(埋め込み)に変換するモデル一覧
POST /v1/completionsOpenAI文章の続きを生成する(旧形式の Completions API)モデル一覧
POST /v1/images/generationsOpenAI画像を生成するモデル一覧
POST /v1/audio/speechOpenAI文章を音声にするモデル一覧
POST /v1/moderationsOpenAI文章が利用方針に反していないかを判定するモデル一覧
POST /v1/videosOpenAI動画の生成を申し込む動画生成
GET /v1/videos/{タスクの ID}OpenAI動画の生成の進み具合を返す—
GET /v1/videos/{タスクの ID}/contentOpenAI完成した動画のファイルを返す—

使えないもの

機能状態
トークン数の計算(POST /v1/messages/count_tokens)対応していません。HTTP 404 を返します
ファイル(/v1/files)、Batch API(/v1/batches)、ファインチューニング対応していません。POST /v1/batches は HTTP 404、GET /v1/files は HTTP 400 を返します
画像のバリエーション(POST /v1/images/variations)対応していません
Gemini 形式(/v1beta/models/...)対応していません。HTTP 401 を返します
残高の取得(/v1/dashboard/billing/...)対応していません。HTTP 404 を返します。残高はコンソールで確認します
1 つのモデルの情報(GET /v1/models/{モデル ID})正しい結果を返さないことがあります。提供中のモデルでも、HTTP 200 で does not exist というエラー本文を返す場合があります。モデルの確認には GET /v1/models を使ってください

動作を確認していないもの

機能状態
POST /v1/responses/compact経由先の API にそのまま渡します。応答は確認していません
音声の文字起こし(POST /v1/audio/transcriptions)確認していません
リアルタイム API(/v1/realtime)確認していません

モデル ID

リクエストの model に、呼び出すモデルの ID を入れます。Echo のモデル ID は、提供元の API で使われている名前と同じ書き方です(例:deepseek-flash、claude-sonnet-5)。正式な ID はモデル一覧の各モデルのページに載せます。

キーで使えるモデルの ID は、GET /v1/models でも取得できます。x-api-key と anthropic-version の両方のヘッダーを付けると Anthropic 形式、それ以外は OpenAI 形式の一覧を返します。

bash
curl "https://token.echohub.io/v1/models" \
  -H "Authorization: Bearer $ECHO_API_KEY"

形式とモデルの組み合わせ

モデルの提供元と違う形式でも呼び出せます。この場合、Echo のサーバーがリクエストとレスポンスの形式を変換します。変換すると、一部のパラメータが効かなくなったり、応答の項目が各社の仕様と異なったりします。提供元と同じ形式で呼び出すことをおすすめします。

モデルおすすめの形式
Claude(Anthropic)Anthropic 形式(/v1/messages)
OpenAIOpenAI 形式(/v1/chat/completions または /v1/responses)
それ以外OpenAI 形式(/v1/chat/completions)

変換したときに変わること(2026-09-27 に Echo の検証環境で確認):

組み合わせ変わること
Claude のモデルを /v1/chat/completions で呼ぶresponse_format(構造化出力)は効きません。reasoning_effort は Claude の思考(thinking)の設定に置き換えます。max_tokens を指定しないと 8,192 になります。入力トークン数は、キャッシュ分を含めた OpenAI の数え方で返します
Claude・Gemini のモデルを /v1/responses で呼ぶ呼び出せますが、応答の項目が OpenAI の仕様と一部異なります
OpenAI・Gemini のモデルを /v1/messages で呼ぶ文章、ツール呼び出し、ストリーミングは使えます。応答の項目が Anthropic の仕様と一部異なります
どの組み合わせでも応答の usage に、各社の仕様にない項目が入ることがあります。これらの項目は使わないでください

Cline、Cursor、Dify のように OpenAI 形式だけを使うツールで Claude のモデルを呼ぶ場合も、この変換が入ります。

Anthropic 形式を curl で呼び出す

bash
curl "https://token.echohub.io/v1/messages" \
  -H "x-api-key: $ECHO_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "日本の首都はどこですか?"}]
  }'

Responses API で呼び出す

Python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://token.echohub.io/v1",
    api_key=os.environ["ECHO_API_KEY"],
)

response = client.responses.create(
    model="gpt-6-sol",
    input="日本の首都はどこですか?",
)
print(response.output_text)

ストリーミング

ストリーミングは、モデルが回答を作りながら少しずつ受け取る方法です。リクエストに "stream": true を付けると、SSE(サーバーから届くデータを 1 件ずつ受け取る仕組み)で返します。Echo は、経由先の API から届いたデータを、ためずに順に転送します。

形式届き方
OpenAI 形式(Chat Completions)data: {...} の行が続き、最後に data: [DONE] が届きます。stream_options の include_usage を true にすると、[DONE] の前にトークン数が届きます
OpenAI 形式(Responses API)response.created、response.output_text.delta、response.completed などのイベントが届きます
Anthropic 形式message_start、content_block_start、content_block_delta、content_block_stop、message_delta、message_stop の順に届きます。途中に ping が入ることがあります。トークン数は message_delta に入ります

回答の途中で経由先の API がエラーを返したり、接続が切れたりしたときの届き方と確かめ方は、エラーと対処の「ストリーミングの途中で止まったとき」にあります。

bash
curl -N "https://token.echohub.io/v1/chat/completions" \
  -H "Authorization: Bearer $ECHO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-flash",
    "stream": true,
    "stream_options": {"include_usage": true},
    "messages": [{"role": "user", "content": "自己紹介を 3 文でしてください。"}]
  }'

主なパラメータ

使えるパラメータと値の範囲は、モデルによって違います。各社のドキュメントに従います。

Chat Completions(POST /v1/chat/completions)

パラメータ必須説明
model必須モデル ID
messages必須会話の履歴。role(system・user・assistant など)と content の組
streamtrue でストリーミング
stream_options{"include_usage": true} でストリーミングの最後にトークン数を受け取る
max_completion_tokens出力するトークン数の上限。古い max_tokens は OpenAI では非推奨
temperature、top_p出力のばらつき
stop出力を止める文字列
tools、tool_choiceツール呼び出し(モデルが外部の関数を呼ぶ機能)の定義と選び方
response_formatJSON など出力の形式。Claude のモデルでは効きません(上の「形式とモデルの組み合わせ」)
reasoning_effort推論(回答前に考える処理)の深さ。対応モデルのみ

Messages(POST /v1/messages)

パラメータ必須説明
model必須モデル ID
messages必須会話の履歴。role(user・assistant)と content の組
max_tokens必須出力するトークン数の上限
systemシステムプロンプト(モデルへの前提の指示)
streamtrue でストリーミング
temperature、top_p、top_k出力のばらつき。Anthropic のドキュメントでは、新しいモデルでの temperature と top_k は非推奨
stop_sequences出力を止める文字列
tools、tool_choiceツール呼び出しの定義と選び方
thinking拡張思考(回答前に考える処理)の設定。対応モデルのみ
metadata利用者を区別する ID など、リクエストに付ける情報。Echo は値を変えずに経由先に渡します

inference_geo、service_tier、speed の 3 つは、Echo が取り除いてから経由先に渡します。処理する地域は、モデルごとに決まっています(データの取り扱い)。

Responses(POST /v1/responses)

パラメータ必須説明
model必須モデル ID
input入力。文字列、または会話の配列
instructionsシステムへの指示
streamtrue でストリーミング
max_output_tokens出力するトークン数の上限
tools、tool_choiceツール呼び出しの定義と選び方
reasoning推論の設定。対応モデルのみ
store経由先の API に応答を保存させるかどうか。Echo は値を変えずに渡します。OpenAI の API では、指定しないと true(保存する)になります
previous_response_id前の応答の続きとして扱う(Echo 経由での動作は未確認)

埋め込み

bash
curl "https://token.echohub.io/v1/embeddings" \
  -H "Authorization: Bearer $ECHO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "[埋め込みモデルの ID]", "input": "東京は日本の首都です。"}'

埋め込みに使えるモデルはモデル一覧で確認できます。数値の配列と base64 の両方の形式で受け取れます。

残高と利用状況、上限

  • 残高と利用状況は、コンソールで確認します(API キーと利用状況)。API で残高を取得する方法は、今はありません
  • キーごとの利用上限、レート制限、リクエストの大きさの上限は上限とレート制限にあります

確認した情報源

内容情報源確認日
各エンドポイントの呼び出し、使えないものと HTTP ステータス、/v1 の有無による 401・404、SDK とツールごとの接続先(「済み」の行)、形式の変換で変わること、ストリーミングの転送、inference_geo などを取り除くこと、store を変えずに渡すことEcho の検証環境での実測。本番と同じ中継設定で、経由先の API の代わりに試験用の応答を返すサーバーを使いました2026-09-27
動画生成の 3 つのエンドポイント(/v1/videos)Echo の検証環境での実測(同上。提供元の API の代わりに試験用の応答を返すサーバーを使いました)2026-10-01
Cline、Cursor、Dify、Continue、Roo Code、n8n の接続先の項目https://docs.cline.bot/provider-config/openai-compatible 、https://cursor.com/docs/settings/api-keys 、https://github.com/langgenius/dify-official-plugins/tree/main/models/openai_api_compatible 、https://docs.continue.dev/customize/model-providers/top-level/openai 、https://roocodeinc.github.io/Roo-Code/providers/openai-compatible 、https://docs.n8n.io/integrations/builtin/credentials/openai2026-09-27
Chat Completions のパラメータ、stream_options と [DONE]、max_tokens の非推奨https://developers.openai.com/api/reference/resources/chat2026-09-26
Responses API のストリーミングのイベントhttps://developers.openai.com/api/docs/guides/streaming-responses2026-09-26
Responses API の store の既定値(指定しないと true)https://developers.openai.com/api/reference/resources/responses/methods/create2026-09-27
Messages API のパラメータhttps://platform.claude.com/docs/en/api/messages2026-09-26
Messages API のストリーミングのイベント、SDK の messages.streamhttps://platform.claude.com/docs/en/build-with-claude/streaming2026-09-26