文档API 参考

API 参考

Echo Token Station 的接入地址和认证、各 SDK 和工具的接入地址、可用的端点、格式转换、流式输出和主要参数。

Echo 的 API 支持 OpenAI 格式和 Anthropic 格式。本页说明端点(按功能区分的调用地址)、认证、流式输出和主要参数。请求和响应的细节,以各厂商的 API 文档为准。

接入地址与认证

格式接入地址(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,是网站的 HTML 页面)。有两个 /v1 时返回 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。要接收 token 数,还要指定 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返回生成好的视频文件—

不能用的功能

功能状态
计算 token 数(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。余额请在控制台查看
单个模型的信息(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 的验证环境中确认):

组合会变的地方
用 /v1/chat/completions 调用 Claude 的模型response_format(结构化输出)不起作用。reasoning_effort 会换成 Claude 的思考(thinking)设置。不指定 max_tokens 时是 8,192。输入 token 数按包含缓存部分的 OpenAI 算法返回
用 /v1/responses 调用 Claude、Gemini 的模型可以调用,但响应的项目与 OpenAI 的规范有一部分不同
用 /v1/messages 调用 OpenAI、Gemini 的模型文字、工具调用、流式输出可以使用。响应的项目与 Anthropic 的规范有一部分不同
所有组合响应的 usage 里可能有各厂商规范之外的项目。请不要使用这些项目

在 Cline、Cursor、Dify 这类只用 OpenAI 格式的工具里调用 Claude 的模型时,也会经过这种转换。

用 curl 调用 Anthropic 格式

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(一条一条接收服务器发来的数据的机制)返回。Echo 会把上游 API 发来的数据按顺序转发,不会攒起来。

格式收到的方式
OpenAI 格式(Chat Completions)连续收到 data: {...} 行,最后收到 data: [DONE]。把 stream_options 的 include_usage 设为 true,会在 [DONE] 之前收到 token 数
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。token 数在 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 的组合
stream设为 true 时流式输出
stream_options设为 {"include_usage": true} 时,在流式输出的最后收到 token 数
max_completion_tokens输出 token 数的上限。旧的 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必填输出 token 数的上限
system系统提示词(给模型的前提指示)
stream设为 true 时流式输出
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给系统的指示
stream设为 true 时流式输出
max_output_tokens输出 token 数的上限
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 两种格式都能接收。

余额、使用情况和上限

信息来源

内容来源确认日期
各端点的调用、不能用的功能和 HTTP 状态码、有无 /v1 时的 401、404、各 SDK 和工具的接入地址(「已确认」的行)、格式转换时会变的地方、流式输出的转发、去掉 inference_geo 等参数、store 不做修改地传过去Echo 验证环境中的实测。使用与正式环境相同的中转设置,并用返回测试响应的服务器代替上游 API2026-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