محدودیتهای لایه رایگان OpenRouter و چطور خطاهای 429 را رفع کنیم
Updated 2026-07-15
نسخههای رایگان مدل در OpenRouter تقریباً در 20 درخواست در دقیقه سقف دارند، بهعلاوه 50 درخواست در روز اگر حساب شما کمتر از $10 اعتبار در کل عمرش خریده باشد، یا 1,000 در روز وقتی از این آستانه عبور کنید. یک 429 یعنی به یکی از این سقفها برخوردهاید یا استخر مشترک رایگان در آن لحظه اشباع شده.
پاسخ سریع: محدودیتهای دقیق لایه رایگان
OpenRouter استفاده رایگان را روی دو محور محدود میکند: یک سقف در دقیقه و یک بودجه درخواست روزانه. محدودیت در دقیقه برای نسخههای رایگان مدل (model ID هایی که با :free تمام میشوند) 20 درخواست در دقیقه است. بودجه روزانه به این بستگی دارد که آیا حساب شما تا به حال حداقل $10 اعتبار خریده باشد: زیر این آستانه کلعمر 50 درخواست مدل رایگان در روز میگیرید، در یا بالای آن 1,000 در روز. اینها اعدادی هستند که OpenRouter از اوایل 2026 مستند میکند. این اعداد قبلاً هم تغییر کردهاند (سقف روزانه قبلاً بالاتر بود)، پس جدول را یک خط پایه فعلی در نظر بگیرید نه یک تضمین دائمی، و با بررسی در بخش بعدی روی کلید خودتان تأیید کنید. یک پاسخ 429 یعنی از یکی از این سقفها عبور کردهاید، یا provider بالادستی که آن مدل رایگان را سرویس میدهد ظرفیتش تمام شده حتی اگر سهمیه شخصی شما مشکلی نداشته. بقیه این راهنما توضیح میدهد چطور بفهمید کدام یک را برخوردهاید و چه کار کنید.
| محدودیت | مقدار | وقتی اعمال میشود که |
|---|---|---|
| درخواست در دقیقه | 20 rpm | همه نسخههای مدل :free، به ازای هر حساب |
| درخواست در روز | 50 | کمتر از $10 خرید اعتبار در کل عمر حساب |
| درخواست در روز | 1,000 | $10 یا بیشتر خرید اعتبار در کل عمر حساب |
| مدلهای پولی | محدودیتهای جداگانه و بسیار بالاتر | هر مدل غیررایگان، صورتحساب بر اساس هر token |
لایه رایگان واقعاً چطور کار میکند
مدلهای رایگان در OpenRouter ورودیهای جداگانهای در کاتالوگ با پسوند :free هستند. آنها توسط provider هایی سرویس داده میشوند که ظرفیت را اهدا یا یارانه میدهند، به همین دلیل در دسترس بودنشان بسیار بیشتر از نسخههای پولی همان weight ها نوسان دارد. سه جزئیات باعث لغزش افراد میشود. اول، سقف روزانه در سطح کل حساب است: 50 درخواست پخششده روی هر ترکیبی از مدلهای رایگان، نه 50 به ازای هر مدل. دوم، آستانه $10 خریدهای اعتبار در کل عمر حساب را میشمارد، نه موجودی فعلی. یک بار خرید $10 شما را حتی بعد از خرج کردنش در رده 1,000 درخواست در روز نگه میدارد. سوم، محدودیتها به ازای هر حساب اعمال میشوند، پس ساختن کلیدهای API اضافه زیر همان حساب هیچ چیزی اضافه نمیکند. میتوانید دقیقاً ببینید کلید شما کجا ایستاده. پاسخ شامل is_free_tier، مصرف شما تا الان، و شیء rate limit ای است که در حال حاضر روی کلید شما اعمال شده:
curl https://openrouter.ai/api/v1/auth/key \
-H "Authorization: Bearer $OPENROUTER_API_KEY"
# فیلدهای پاسخ که ارزش خواندن دارند:
# "is_free_tier": true -> زیر آستانه $10 کلعمر
# "usage": 1.42 -> اعتبار مصرفشده
# "rate_limit": {...} -> محدودیت هر بازه روی این کلیدچرا خطاهای 429 در ساعات پرترافیک اوج میگیرند
سقفهای شخصی شما فقط نیمی از داستان است. ظرفیت رایگان یک استخر مشترک است، و OpenRouter فقط میتواند یک درخواست رایگان را به provider ای با ظرفیت یارانهای آزاد در آن لحظه مسیردهی کند. وقتی یک مدل رایگان محبوب اشباع میشود، حتی اگر آن روز فقط چند درخواست ارسال کرده باشید هم 429 یا خطاهای بالادستی میگیرید. گزارشهای کامیونیتی بهطور مداوم عصرها به وقت مناطق زمانی آمریکا و آخر هفتهها را بدترین بازهها توصیف میکنند، در حالی که همان درخواست در ساعات کمترافیک فوراً موفق میشود. اینها مشاهدات تقریبی هستند نه اعداد منتشرشده، اما بهاندازه کافی تکرار میشوند که بشود بر اساس آنها برنامهریزی کرد. رابطهای چت این مشکل را تشدید میکنند. رابطهایی به سبک SillyTavern و JanitorAI برای هر swipe، regenerate، و turn چت گروهی یک درخواست completion تازه ارسال میکنند، و برخی تنظیمات proxy شکستها را بهطور خودکار retry میکنند. کاربری که حس میکند 15 پیام فرستاده ممکن است 40 تا 50 درخواست تولید کرده باشد، که کل بودجه روزانه یک حساب زیر آستانه $10 است. retry های خودکار تهاجمی هم ازدحام ساعت اوج را برای همه عمیقتر میکند، به همین دلیل backoff منظم اهمیت دارد. تشخیص عملی: اگر 429 ها وقتی تا ریست روزانه صبر میکنید متوقف میشوند، یعنی به سهمیهتان برخوردهاید. اگر در همان یک ساعت میآیند و میروند در حالی که تعداد درخواست شما پایین است، دارید ازدحام استخر را میبینید.
راهحلها، به ترتیب تلاش
اگر ترافیک را روی لایه رایگان نگه میدارید، حداقل client قابلقبول باید 429 را بهصراحت مدیریت کند بهجای اینکه شکست بخورد یا کورکورانه retry کند:
- اول بدنه خطا را بخوانید. خطاهای 429 در OpenRouter بین محدودیت در دقیقه شما، سهمیه روزانه تمامشده، و ازدحام بالادستی تفاوت قائل میشوند. همانی را رفع کنید که واقعاً به آن برخوردهاید.
- به Retry-After احترام بگذارید و بهصورت نمایی همراه با jitter عقب بکشید. کوبیدن endpoint شما را برای مدت طولانیتری rate limit شده نگه میدارد و ازدحام را بدتر میکند.
- یک بار از آستانه $10 اعتبار کلعمر عبور کنید. این کار سقف روزانه را از 50 به 1,000 درخواست بالا میبرد و مؤثرترین راهحل برای 429 های سهمیه روزانه است.
- ترافیک مهم را به نسخه پولی همان مدل منتقل کنید. مدلهای کلاس DeepSeek خیلی کمتر از یک دلار به ازای هر میلیون token هزینه دارند، پس یک عصر پرمصرف چت معمولاً چند سنت هزینه دارد.
- حجم درخواست را در سمت client کم کنید: auto-regeneration را غیرفعال کنید، از swipe های غیرضروری پرهیز کنید، و context را کوتاه کنید تا هر retry وقتی اتفاق میافتد ارزانتر باشد.
import random
import time
import requests
def chat(payload: dict, key: str, retries: int = 5) -> dict:
for attempt in range(retries):
r = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={"Authorization": f"Bearer {key}"},
json=payload,
timeout=120,
)
if r.status_code != 429:
r.raise_for_status()
return r.json()
wait = float(r.headers.get("Retry-After", 2 ** attempt + random.random()))
time.sleep(wait)
raise RuntimeError("Still rate limited after all retries")جایگزینها وقتی 50 درخواست در روز کافی نیست
اگر الگوی مصرف شما بهطور پیوسته بالای بودجه رایگان است، چهار مسیر واقعبینانه وجود دارد. مسیر درست به این بستگی دارد که گلوگاه شما سهمیه روزانه است، ازدحام ساعت اوج، یا هر دو. توجه کنید گزینههای پولی عمدتاً در overhead فرق دارند نه در شکل درخواست: همه آنها به همان فرمت سازگار با OpenAI برای chat completions صحبت میکنند، پس تعویض فقط تغییر base URL و کلید است نه یک بازنویسی.
| گزینه | مدل هزینه | رفتار محدودیت نرخ | مصالحه |
|---|---|---|---|
| نسخههای :free در OpenRouter | $0 | 20 rpm؛ 50 یا 1,000 درخواست در روز | استخر مشترک، ازدحام ساعت اوج |
| مدلهای پولی OpenRouter | به ازای هر token، اعتبار پیشپرداخت | بسیار بالاتر، متناسب با حساب مقیاس میگیرد | کارمزد پلتفرم روی خرید اعتبار |
| API های مستقیم provider | به ازای هر token با قیمت رسمی لیست | لایههای مخصوص هر provider | کلید و billing جداگانه برای هر provider |
| gateway های مستقیم پرداخت بر اساس مصرف | به ازای هر token، بدون اشتراک | ظرفیت پولی، بدون رقابت روی استخر رایگان | از همان اولین درخواست پرداخت میکنید |
| open weight های self-hosted | سختافزار و برق | فقط محدود به GPU شما | تلاش راهاندازی، سقف اندازه مدل |
اجرای یک رابط چت روی یک gateway مستقیم
یک gateway مستقیم شکل درخواست سازگار با OpenAI را حفظ میکند اما صف استخر رایگان را حذف میکند، چون هر درخواست ظرفیت پولی است. APIsRouter یک نمونه است: پرداخت بر اساس مصرف بدون اشتراک، و یک checkout بدون ثبتنام در /topup که اول پرداخت میکنید و API key از طریق ایمیل میرسد. مدلهای جهانی 20% پایینتر از قیمت رسمی لیست هستند، مدلهای چینی زیر نرخ رسمی خودشان قرار دارند، و یک اولین شارژ موجودی شروع شما را دو برابر میکند. راهاندازی frontend شبیه همان کاری است که با OpenRouter انجام میدهید. در SillyTavern، base URL ای که با /v1 تمام میشود را paste کنید (https://api.apisrouter.com/v1) و لیست مدلها با کلید شما از /v1/models بهطور خودکار پر میشود. تنظیمات proxy در JanitorAI در عوض به endpoint کامل نیاز دارد: https://api.apisrouter.com/v1/chat/completions، بهعلاوه نام مدل و API key. برای ترافیک چت شخصیت و ایفای نقش، خانواده DeepSeek V4 مورد علاقه کامیونیتی از نظر ارزش است، با MiMo، GLM-5 و Kimi K2.6 بهعنوان گزینههای ارزان دیگر. Claude Sonnet 4.6 قویترین نثر را برای نویسندگی خلاقانه safe-for-work تحت سیاست محتوای Anthropic مینویسد.
| مدل | Model ID | Input / output به ازای 1M token |
|---|---|---|
| DeepSeek V4 Flash | deepseek-v4-flash | $0.126 / $0.252 |
| DeepSeek V4 Pro | deepseek-v4-pro | $0.3915 / $0.783 |
| GLM-5 | glm-5 | $0.514 / $2.314 |
| Gemini 3.5 Flash | gemini-3.5-flash | $1.20 / $7.20 |
| Claude Sonnet 4.6 | claude-sonnet-4-6 | $2.40 / $12.00 |
curl https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Hello"}]
}'پرسشهای پرتکرار
آیا استفاده از OpenRouter رایگان است؟
تا حدی. OpenRouter نسخههای رایگان برخی مدلها (ID هایی که با :free تمام میشوند) را فهرست میکند که هیچ هزینهای ندارند اما تقریباً در 20 درخواست در دقیقه و 50 یا 1,000 درخواست در روز سقف دارند، بسته به اینکه آیا تا به حال $10 اعتبار خریدهاید یا نه. بقیه لیست مدلها به ازای هر token پولی هستند.
چرا مدام خطاهای 429 در OpenRouter میگیرم؟
یک 429 یعنی از محدودیت در دقیقه عبور کردهاید، بودجه رایگان روزانه شما تمام شده، یا ظرفیت مشترک بالادستی برای آن مدل رایگان اشباع شده. بدنه خطا میگوید کدام یک است. 429 های سهمیه تا ریست روزانه باقی میمانند؛ 429 های ازدحام معمولاً در ساعات کمترافیک برطرف میشوند.
چطور محدودیت نرخ OpenRouter خودم را افزایش بدهم؟
یک بار $10 اعتبار بخرید. این آستانه کلعمر سقف روزانه مدل رایگان را از 50 به 1,000 درخواست بالا میبرد. فراتر از آن، گزینهها عبارتند از انتقال ترافیک به نسخههای پولی مدل، پخش درخواستها با backoff، یا مسیردهی سرریز از طریق یک provider یا gateway دیگر.
آیا مدلهای رایگان OpenRouter محدودیت روزانه دارند؟
بله. بودجه روزانه بین همه مدلهای رایگان روی حساب شما مشترک است: 50 درخواست در روز زیر $10 خرید اعتبار کلعمر، 1,000 در روز در یا بالای آن. این محدودیت در سطح حساب اعمال میشود، پس کلیدهای API اضافه روی همان حساب سهمیه اضافه نمیکنند.
آیا لایه رایگان برای JanitorAI یا SillyTavern کافی است؟
برای تست سبک، بله. در عمل هر swipe، regenerate و turn گروهی یک درخواست جداگانه است، پس یک جلسه فعال میتواند بهسرعت 50 درخواست را بسوزاند، و ازدحام ساعت اوج شکستهای بیشتری روی آن اضافه میکند. کاربران سنگین معمولاً به مدلهای پولی ارزان منتقل میشوند. هر کدام را که استفاده میکنید، از ToS پلتفرم frontend، از جمله الزامات سنی آن، و سیاست محتوای provider مدل پیروی کنید.