OneProvider

Node / TypeScript SDK

覆盖 baseURL,就能在 OneProvider 上使用 @anthropic-ai/sdk 或 openai npm 包。涵盖 TypeScript、异步迭代器流式输出和边缘运行时。

推荐使用 @anthropic-ai/sdk 客户端。OpenAI 官方的包在覆盖 baseURL 后同样可用。

全部模型、功能与价格 面向 AI 智能体的文档索引: https://oneprovider.dev/docs/llms.txt 操作系统 开始之前:从个人中心获取密钥 打开您的个人中心:Telegram 机器人 @oneprovider_robot (“个人中心”)或 app.oneprovider.dev 。点击“签发密钥”,为它命名(例如此客户端的名称)并设置消费限额,然后复制密钥。充值也在同一个地方进行。详细了解个人中心与密钥 。

安装

bash
npm i @anthropic-ai/sdk
# or
npm i openai
# pnpm / yarn / bun all work too:
# pnpm add @anthropic-ai/sdk
# bun add @anthropic-ai/sdk

TypeScript

ts
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ONEPROVIDER_KEY!,
baseURL: "https://api.oneprovider.dev",
});
const msg = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Say hi." }],
});
if (msg.content[0].type === "text") {
console.log(msg.content[0].text);
}

兼容 OpenAI

ts
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.ONEPROVIDER_KEY!,
baseURL: "https://api.oneprovider.dev/v1",
});
const resp = await client.chat.completions.create({
model: "claude-sonnet-5-5",
messages: [{ role: "user", content: "Say hi." }],
});
console.log(resp.choices[0].message.content);

通过异步迭代器流式输出

ts
const stream = client.messages.stream({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "stream me a poem" }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}

Edge 运行时

在 Vercel Edge 和 Cloudflare Workers 中开箱即用。SDK 使用这两种运行时都有的原生 fetch。

ts
// Cloudflare Worker
export default {
async fetch(req: Request, env: Env) {
const client = new Anthropic({ apiKey: env.ONEPROVIDER_KEY, baseURL: "https://api.oneprovider.dev" });
const msg = await client.messages.create({
model: "claude-haiku-5-5",
max_tokens: 256,
messages: [{ role: "user", content: "ping" }],
});
return Response.json(msg);
},
};
切勿把密钥发送到浏览器 即使在 Worker 中,只要涉及用户数据,也请让请求经过您自己的后端——OneProvider 密钥授权的是花费,而不只是访问。

如何选择模型

在 model 中传入 ID。claude-sonnet-5-5 是多数代码的默认选择,claude-haiku-5-5 用于快速、大批量的调用,claude-opus-5-5 用于复杂的推理。使用 openai 包时,也可以使用 gpt-6.1-terra 这样的 GPT ID。Anthropic SDK 使用 baseURL: "https://api.oneprovider.dev",OpenAI SDK 使用 baseURL: "https://api.oneprovider.dev/v1"。ID 见模型页面 。

常见错误与解决办法

404 NotFoundError

Anthropic SDK:baseURL: "https://api.oneprovider.dev",不带 /v1。OpenAI SDK:baseURL: "https://api.oneprovider.dev/v1",带 /v1。

401 AuthenticationError

process.env.ONEPROVIDER_KEY 在当前进程中是 undefined,例如没有加载 .env。请输出它的长度,而不要输出它的值。

429 RateLimitError

“Insufficient balance” 表示需要为个人中心充值余额(不要重试)。其他任何 429 都是限流:请退避等待,并遵守 Retry-After。

Fetch 失败或超时

请关闭 VPN 或代理设置;较长的回答请使用 stream,因为非流式请求必须在 6 分钟内开始返回响应。

关于 max_tokens 的 400

Anthropic SDK 要求每个请求都必须带 max_tokens。

常见问题

能在 Edge 运行时中运行吗?

能,Vercel Edge 和 Cloudflare Workers 都可以,因为 SDK 使用的是 fetch。

可以直接从浏览器调用吗?

不可以。密钥授权的是花费;请从您的后端调用。

可以继续使用官方 SDK 吗?

可以,只需更改密钥和 baseURL,见从 Anthropic 迁移 。

快速解答

该使用哪个 base URL?

Claude Code 和 Anthropic SDK 使用 https://api.oneprovider.dev。OpenAI SDK 和兼容 OpenAI 的客户端使用 https://api.oneprovider.dev/v1。同一个密钥可用于这两个地址;模型列表见模型页面 ,费率见价格页面 。

如何进行身份验证?

将完整的 sk-… 密钥放在 x-api-key 或 Authorization: Bearer 中,二选一,不要同时使用。请把密钥存放在环境变量中,不要写进会被提交的文件。了解更多身份验证说明 。

在哪里获取密钥?

在 Telegram 机器人 @oneprovider_robot 或 app.oneprovider.dev 打开您的个人中心,为余额充值,然后点击“签发密钥”。每个密钥都可以设置各自的消费限额。个人中心与 API 密钥 。

401、404 和 429 是什么意思?

401:密钥缺失、拼写有误或放错了请求头;请粘贴完整的密钥,不要带引号或空格。404:通常是 base URL 不对,例如缺少或重复了 /v1。429 且提示“Insufficient balance”:个人中心余额或密钥的消费限额已用完,请充值,不要反复重试;其他 429 属于速率限制,请等待 Retry-After 指定的时间。详情见:错误码 和故障排查 。

流式输出为什么会中断或被重置?

VPN 和 VLESS 代理常常会缓冲 SSE,或破坏 HTTP/2 协商。OneProvider 没有地区限制,也不会缓冲流式输出,请关闭代理后重试。

以上都没解决,该去哪里咨询?

请在 Telegram 联系 @Oneproviderhelpbot ,或在网页个人中心打开“客服”,并附上 HTTP 状态码和完整的错误信息。客服如何运作 。

最后更新: 2026-11-08 发现问题? @Oneproviderhelpbot