شروع سریع
در سه قدم اولین درخواستتان را بفرستید: یک توکن بسازید، آدرس پایه را تنظیم کنید، درخواست بزنید. اگر با کلاینتهای OpenAI کار کردهاید، چیزی برای یادگیری ندارید.
curl https://api.heroai.ir/v1/chat/completions \ -H "Authorization: Bearer hero_sk_..." \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet", "messages": [{"role": "user", "content": "سلام!"}] }'
from openai import OpenAI client = OpenAI(base_url="https://api.heroai.ir/v1", api_key="hero_sk_...") res = client.chat.completions.create( model="claude-sonnet", messages=[{"role": "user", "content": "سلام!"}] ) print(res.choices[0].message.content)
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.heroai.ir/v1", apiKey: process.env.HERO_API_KEY }); const res = await client.chat.completions.create({ model: "claude-sonnet", messages: [{ role: "user", content: "سلام!" }] });
احراز هویت
هر درخواست باید هدر Authorization با توکن شما داشته باشد. توکنها از بخش «توکنهای API» در پنل ساخته میشوند و بعد از ساخت فقط یک بار کامل نمایش داده میشوند.
Authorization: Bearer hero_sk_9f2c...a41d
آدرس پایه
https://api.heroai.ir/v1
تکمیل چت
POST /v1/chat/completions — پارامترهای اصلی:
| پارامتر | نوع | توضیح |
|---|---|---|
| model | string | شناسه مدل، مثلاً claude-sonnet |
| messages | array | تاریخچه گفتگو با نقشهای user/assistant/system |
| stream | boolean | دریافت پاسخ بهصورت جریانی |
| max_tokens | integer | سقف طول پاسخ |
| temperature | number | میزان خلاقیت خروجی بین ۰ تا ۲ |
تولید تصویر
POST /v1/images/generations
{
"model": "flux",
"prompt": "a persian garden at sunset",
"size": "1024x1024",
"n": 2
}
گفتار و صوت
تبدیل گفتار به متن با POST /v1/audio/transcriptions و تبدیل متن به گفتار با POST /v1/audio/speech انجام میشود.
گزارش مصرف
هر پاسخ یک فیلد usage دارد که تعداد توکن کسرشده از کیف پول را برمیگرداند:
{
"usage": { "prompt_tokens": 34, "completion_tokens": 128, "wallet_tokens": 162 }
}
کدهای خطا
| کد | معنی | چه کاری کنید |
|---|---|---|
| 401 | توکن نامعتبر یا غیرفعال | توکن را از پنل بررسی یا بازسازی کنید |
| 402 | اعتبار کیف پول کافی نیست | کیف پول را شارژ کنید |
| 404 | شناسه مدل پیدا نشد | نام مدل را با فهرست مدلها تطبیق دهید |
| 429 | عبور از سقف نرخ درخواست | با تأخیر تصاعدی دوباره تلاش کنید |
| 503 | مدل موقتاً در دسترس نیست | وضعیت مدل را در صفحه وضعیت سرویس ببینید |
محدودیت نرخ
پیشفرض هر توکن ۶۰ درخواست در دقیقه است. سقف باقیمانده در هدر پاسخ برمیگردد:
X-RateLimit-Remaining: 47
X-RateLimit-Reset: 34