مستندات
Basirat Gateway با OpenAI سازگار است. کافی است در هر SDK سازگار با OpenAI آدرس پایه و کلید را عوض کنید تا به همه مدلها دسترسی داشته باشید.
شروع سریع
یک کلید API بسازید، اعتبار بخرید و SDK خود را به درگاه وصل کنید. نام مدلها به این شکل است: provider/model.
from openai import OpenAI
client = OpenAI(base_url="https://api.example.com/v1", api_key="sk-bf-...")
resp = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "Write a haiku about routers."}],
)
print(resp.choices[0].message.content)
print("cost:", resp.usage.cost)/v1/chat/completions, /v1/responses, /v1/completions, /v1/embeddings, /v1/models، و همچنین مسیر Anthropic /anthropic/v1/messages و مسیر Gemini /genai .مدلهای جایگزین
فهرستی از مدلها بدهید. اگر اولی ناموفق باشد — قطعی، محدودیت درخواست یا متن بیش از حد طولانی — مدل بعدی امتحان میشود. فقط هزینه تلاش موفق را میپردازید و فیلد model در پاسخ نشان میدهد کدام مدل پاسخ داده است.
{
"models": ["anthropic/claude-sonnet-4-5", "openai/gpt-4o", "openai/gpt-4o-mini"],
"messages": [{"role": "user", "content": "Hello"}]
}شکل اصلی "model": "...", "fallbacks": ["..."] هم کار میکند.
الگوها
در پنل یک الگو بسازید و نام آن را بهجای مدل بفرستید. الگو مدل، مدلهای جایگزین، دستور سیستمی و پارامترهای پیشفرض را تعیین میکند و هر چیزی که در درخواست بفرستید جایگزین پیشفرضها میشود.
{"model": "@preset/support-bot", "messages": [{"role": "user", "content": "Where is my order?"}]}استریم و هزینه
مقدار "stream": true را برای دریافت استریم (server-sent events) تنظیم کنید. هر پاسخ — استریم یا عادی — شامل usage.cost.total_cost به دلار است. هر درخواست را بعداً میتوانید اینطور پیدا کنید:
curl "https://api.example.com/api/v1/generation?id=<request-id>" -H "Authorization: Bearer $API_KEY"
مشاهده سقف باقیمانده کلید و موجودی حساب:
curl https://api.example.com/api/v1/key -H "Authorization: Bearer $API_KEY" curl https://api.example.com/api/v1/credits -H "Authorization: Bearer $API_KEY"
خطاها و محدودیتها
invalid_api_key / key_expiredکلید ارسال نشده، اشتباه است، تعویض شده یا منقضی شده است.insufficient_creditsموجودی حساب تمام شده است. اعتبار بخرید.key_limit_exceededکلید در این دوره به سقف هزینه رسیده است.key_disabled / model_not_pricedکلید غیرفعال است یا امکان محاسبه هزینه این مدل وجود ندارد.model_not_foundاین مدل در فهرست مدلها نیست.rate_limitedتعداد درخواستها زیاد است. پس از زمان سرآیند Retry-After دوباره تلاش کنید.پیش از هر درخواست مبلغ کمی از موجودی رزرو و پس از پایان آزاد میشود؛ بنابراین درخواستهای همزمان هرگز بیش از موجودی شما مصرف نمیکنند.
API مدیریت کلیدها
یک کلید مدیریتی در پنل بسازید تا کلیدها را با کد صادر کنید — مثلاً برای هر مشتری سرویس خودتان یک کلید با سقف جداگانه.
curl -X POST https://api.example.com/api/v1/keys \
-H "Authorization: Bearer sk-mgmt-..." -H "Content-Type: application/json" \
-d '{"name": "customer-42", "limit": 10, "limit_reset": "monthly"}'همچنین در دسترس: GET /api/v1/keys, GET|PATCH|DELETE /api/v1/keys/:id.
OAuth برای برنامهها (PKCE)
به کاربرانتان اجازه دهید حساب خودشان را وصل کنند و هزینه مصرف خود را بپردازند. آنها را به صفحه تأیید هدایت کنید و کد برگشتی را با یک کلید عوض کنید.
https://api.example.com/oauth/authorize?callback_url=https://yourapp.com/cb&code_challenge=<S256 challenge>&code_challenge_method=S256
curl -X POST https://api.example.com/api/v1/auth/keys -H "Content-Type: application/json" \
-d '{"code": "<code>{tr("", "code_verifier": "")}<verifier>", "code_challenge_method": "S256"}'معرفی برنامه
سرآیندهای HTTP-Referer و X-Title را ارسال کنید تا در رتبهبندی عمومی نمایش داده شوید و درخواستهایتان در فعالیتها برچسب بخورد.
-H "HTTP-Referer: https://yourapp.com" -H "X-Title: Your App"