OneProvider

Node / TypeScript SDK

@anthropic-ai/sdk یا بستهٔ openai در npm را با بازنویسی baseURL با OneProvider به کار ببرید. TypeScript، استریم با async-iterator و محیط‌های edge.

@anthropic-ai/sdk کلاینت پیشنهادی است. بستهٔ رسمی OpenAI هم با بازنویسی baseURL کار می‌کند.

همهٔ مدل‌ها، قابلیت‌ها و قیمت‌ها فهرست مستندات برای عامل‌های هوش مصنوعی: 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 بدهید. claude-sonnet-5-5 پیش‌فرض بیشتر کدهاست، claude-haiku-5-5 برای فراخوانی‌های سریع و پرحجم و claude-opus-5-5 برای استدلال دشوار. با بستهٔ openai می‌توانید شناسه‌های GPT مثل gpt-6.1-terra را هم به کار ببرید. SDK Anthropic baseURL: "https://api.oneprovider.dev" می‌گیرد و SDK OpenAI baseURL: "https://api.oneprovider.dev/v1". شناسه‌ها در صفحهٔ مدل‌ها است.

خطاهای رایج و راه‌حل‌ها

404 NotFoundError

SDK Anthropic: baseURL: "https://api.oneprovider.dev" بدون /v1. SDK OpenAI: baseURL: "https://api.oneprovider.dev/v1" همراه با /v1.

401 AuthenticationError

process.env.ONEPROVIDER_KEY در این فرایند تعریف نشده است، مثلاً بارگذاری .env جا افتاده. طول آن را لاگ کنید، هرگز مقدارش را.

429 RateLimitError

«Insufficient balance» یعنی حساب کاربری را شارژ کنید (تلاش دوباره نکنید). هر 429 دیگری محدودیت نرخ است: عقب بکشید و Retry-After را رعایت کنید.

Fetch failed یا تایم‌اوت

VPN یا تنظیمات پروکسی را خاموش کنید؛ برای پاسخ‌های طولانی از stream استفاده کنید، چون درخواست غیراستریمی باید حداکثر ظرف 6 دقیقه شروع شود.

400 دربارهٔ max_tokens

SDK Anthropic در هر درخواست max_tokens را لازم دارد.

پرسش‌های متداول

روی محیط‌های Edge اجرا می‌شود؟

بله، Vercel Edge و Cloudflare Workers کار می‌کنند چون SDK از fetch استفاده می‌کند.

فراخوانی از مرورگر امن است؟

نه. کلید مجوز خرج کردن می‌دهد؛ از بک‌اند خودتان فراخوانی کنید.

می‌توانم SDKهای رسمی را نگه دارم؟

بله، فقط کلید و baseURL عوض می‌شود، به مهاجرت از Anthropic نگاه کنید.

پاسخ‌های سریع

از کدام base URL استفاده کنم؟

Claude Code و SDKهای Anthropic از https://api.oneprovider.dev استفاده می‌کنند. SDKهای OpenAI و کلاینت‌های سازگار با OpenAI از https://api.oneprovider.dev/v1 استفاده می‌کنند. یک کلید پشت هر دو آدرس کار می‌کند؛ فهرست مدل‌ها در صفحهٔ مدل‌ها و نرخ‌ها در صفحهٔ قیمت‌ها است.

چگونه احراز هویت کنم؟

کلید خام sk-… را در x-api-key یا Authorization: Bearer بفرستید: یکی از این دو، نه هر دو. کلید را در یک متغیر محیطی نگه دارید، نه در فایلی که commit می‌شود. اطلاعات بیشتر دربارهٔ احراز هویت .

کلید را از کجا بگیرم؟

حساب کاربری خود را در ربات 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