کارهای async
POST /v1/async/<verb> — همان درخواست، پاسخ ۲۰۲ و دریافت نتیجه با poll.
POST
https://iranrouter.com/v1/async/{verb}دوقلوی async هر مسیر. همان بدنهای را که به مسیر عادی میفرستید به /v1/async/<verb> بفرستید؛ بلافاصله ۲۰۲ و یک شناسهٔ کار میگیرید و کار در پسزمینه از همان مسیر، با همان قوانین و همان صورتحساب انجام میشود. برای ساخت ویدئو، تصویر یا صدا که دقیقهها طول میکشد، یا هر وقت نمیخواهید اتصال باز بماند.
| verb | همان بدنهٔ |
|---|---|
chat/completions | chat/completions |
responses | responses |
messages | messages |
embeddings · rerank · moderations · completions | همان مسیرها |
images/generations · audio/speech · videos | همان مسیرها |
curl https://iranrouter.com/v1/async/videos \ -H "Authorization: Bearer ir-..." \ -H "Content-Type: application/json" \ -d '{"model": "alibaba/wan-3.0", "prompt": "یک گربه روی دوچرخه", "duration": 5}'
{
"id": "3f6c...-job-id",
"object": "async.job",
"verb": "videos",
"status": "queued",
"created_at": "2026-09-16T10:00:00.000Z",
"poll_url": "/v1/async/videos/3f6c...-job-id"
}GET
https://iranrouter.com/v1/async/{verb}/{id}وضعیت کار: queued، running، completed یا failed. با completed، فیلد result همان بدنهای است که مسیر عادی برمیگرداند (با usage.cost_rial)؛ برای پاسخ باینری (audio/speech) بهجای result یک content_url میآید. با failed، فیلد error همان پاکت خطای مسیر عادی است و http_status همان کد — یعنی یک ۴۰۲ موجودی یا ۴۲۹ نرخ، همانجا دیده میشود.
curl https://iranrouter.com/v1/async/videos/3f6c...-job-id -H "Authorization: Bearer ir-..."
{
"id": "3f6c...-job-id",
"object": "async.job",
"verb": "videos",
"status": "completed",
"http_status": 200,
"result": { "id": "…", "object": "video.job", "status": "completed", "content_url": "/v1/videos/…/content", "usage": { "cost_rial": 1250000 } }
}- stream همیشه خاموش است: نتیجه یکجا ذخیره میشود.
- هر کاربر همزمان تا ۲۰ کار باز و در هر ساعت تا ۶۰۰ کار؛ بیشتر از آن ۴۲۹ با کد async_limit_reached یا async_rate_reached.
- نتیجه ۲۴ ساعت نگه داشته میشود. هر چند ثانیه یک بار poll کنید؛ ویدئو معمولاً چند دقیقه طول میکشد.
- آپلودهای multipart (audio/transcriptions، translations) دوقلوی async ندارند.
- Idempotency-Key روی chat/completions و مسیرهای unary همانطور که در حالت عادی کار میکند اینجا هم کار میکند.