/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。