/v1/models模型列表
公开模型 ID 及其能力、上下文长度和价格。
TokenAPI 支持 OpenAI Chat Completions、Responses 格式和 Anthropic Messages 格式。直接使用官方 SDK,无需改动,从模型列表里选一个模型 ID 即可。
https://tokenapi.biz/v1
全部接口:
/v1/models公开模型 ID 及其能力、上下文长度和价格。
/v1/models/{id}返回单个模型对象。
/v1/chat/completionsOpenAI Chat Completions 格式,支持流式与非流式。
/v1/responsesOpenAI Responses 格式(无状态),支持流式与非流式。
/v1/messagesAnthropic Messages 格式,供 Anthropic SDK 使用。
curl https://tokenapi.biz/v1/chat/completions \
-H "Authorization: Bearer $TOKENAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tokenapi-pro",
"messages": [{ "role": "user", "content": "Hello!" }]
}'import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://tokenapi.biz/v1",
apiKey: process.env.TOKENAPI_KEY,
});
const res = await client.chat.completions.create({
model: "tokenapi-pro",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(res.choices[0].message.content);import os
from openai import OpenAI
client = OpenAI(base_url="https://tokenapi.biz/v1", api_key=os.environ["TOKENAPI_KEY"])
res = client.chat.completions.create(
model="tokenapi-pro",
messages=[{"role": "user", "content": "Hello!"}],
)
print(res.choices[0].message.content)Authorization: Bearer sk-tk-…
也支持 Anthropic 风格的 x-api-key 请求头。Key 以 sk-tk- 开头,只在创建时显示一次,每个 Key 可单独设置限制(每分钟请求数、消费上限、可用模型、有效期)。请只在服务端保存 Key,切勿放进网页或移动端代码。申请 Key 请发邮件至 hello@tokenapi.biz。
把 GET /v1/models 返回的 id 作为 model 参数传入。模型 ID 是一个稳定的产品:为保证质量和可用性,我们可能升级或切换它背后的后端,而你这边无需任何改动。响应中返回的始终是你调用的模型 ID。
{
"object": "list",
"data": [
{
"id": "tokenapi-pro",
"object": "model",
"owned_by": "tokenapi",
"display_name": "TokenAPI Pro",
"capabilities": ["streaming", "tools", "json_output"],
"context_length": 131072,
"pricing": {
"currency": "USD",
"prompt": "0.0000015",
"completion": "0.000006",
"input_per_million": 1.5,
"output_per_million": 6
}
}
]
}pricing.prompt / pricing.completion 为每 token 美元价格(字符串);input_per_million / output_per_million 为每百万 token 美元价格。
请求和响应遵循 OpenAI 格式:支持含文本和图片的 messages、tools / tool_choice、response_format、temperature、top_p、stop、max_tokens 或 max_completion_tokens。每个响应都带有 x-request-id 响应头,联系售后时请提供。
不传 max_tokens 时,按该模型的最大输出长度执行。
设置 stream: true。数据以 data: 行逐块返回,并以 data: [DONE] 结束。加上 stream_options.include_usage 可在最后一块中拿到 token 用量。
const stream = await client.chat.completions.create({
model: "tokenapi-pro",
messages: [{ role: "user", content: "Write a haiku." }],
stream: true,
stream_options: { include_usage: true }, // final chunk carries usage
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}支持字符串或数组形式的 input、instructions、函数工具、text.format(JSON Schema),以及完整的流式事件序列(response.output_text.delta、response.completed 等)。
const res = await client.responses.create({
model: "tokenapi-pro",
instructions: "Answer in one sentence.",
input: "What is a token?",
});
console.log(res.output_text);适用于基于 Anthropic SDK 编写的代码。支持 system、文本和图片块、带 tool_use / tool_result 的 tools,以及流式事件。错误按 Anthropic 的错误格式返回。
import Anthropic from "@anthropic-ai/sdk";
const anthropic = new Anthropic({
baseURL: "https://tokenapi.biz", // SDK appends /v1/messages
apiKey: process.env.TOKENAPI_KEY,
});
const msg = await anthropic.messages.create({
model: "tokenapi-pro",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello!" }],
});{
"error": {
"message": "The model 'nope' does not exist or is disabled.",
"type": "invalid_request_error",
"code": "model_not_found",
"param": null
}
}invalid_request_errorJSON 格式错误、缺少 model / messages,或使用了不支持的参数。
invalid_api_keyAPI Key 缺失、错误、已停用或已过期。
insufficient_quota余额不足以覆盖本次请求的最高费用,或已达到该 Key 的消费上限。请充值或调小 max_tokens。
model_not_allowed该 Key 被限制只能使用其他模型。
model_not_found模型 ID 不存在或已停用。可通过 GET /v1/models 查看有效 ID。
rate_limit_exceeded超过该 Key 每分钟请求数限制。请按 Retry-After 响应头的时间后重试。
upstream_unavailable该模型的所有后端路由都失败了,可以安全重试。
上游失败会先自动切换到其他路由重试,之后才会返回错误。返回 502 表示所有路由都失败了,且不会扣费。
max_tokens)。余额不足时返回 402,请求不会发往上游。Retry-After 响应头。/v1/responses:previous_response_id(请改为发送完整对话)、web_search 等内置工具,以及 file_id 输入。/v1/messages:扩展思考 thinking 和 cache_control 会被忽略。n > 1。