با REST API رؤیا میتوانی مستقیماً از کدِ خودت، تولیدِ تصویر، ویدیو، صدا و کاراکترهای اختصاصی را صدا بزنی — دقیقاً همان موتوری که استودیوی رؤیا هم از آن استفاده میکند.
هر درخواست باید هدرِ زیر را داشته باشد؛ کلید را از صفحهی کلیدهای API بساز:
Authorization: Bearer roya_sk_xxxxxxxx
هر درخواست از اعتبار (کردیت)ِ صاحبِ همان کلید کسر میشود — دقیقاً از همان مسیرِ پولشمارِ استودیو.
کدهایِ وضعیتِ پاسخ
کد
معنی
200 / 202
موفق — 200 برای نقاطِ همزمان (نتیجه در همان پاسخ)، 202 برای نقاطِ ناهمزمان (کار صف شد).
401
کلیدِ نامعتبر یا باطلشده.
402
اعتبارِ ناکافی — همراه با needed و balance در بدنهی پاسخ.
429
عبور از سقفِ نرخِ درخواست.
سقفِ نرخ و نسخهبندی
هر کلید در هر دقیقه حداکثر ۶۰ درخواست دارد (پیشفرض)؛ هر پاسخ هدرهایِ X-RateLimit-Limit، X-RateLimit-Remaining و X-RateLimit-Reset را برمیگرداند. عبورِ سقف → 429؛ بر اساسِ X-RateLimit-Reset دوباره امتحان کن.
همهی مسیرها زیرِ پیشوندِ نسخهدارِ /api/v1 هستند — این پیشوند را در کدت pin کن؛ نسخهی فعلی پایدار میماند.
اتصالِ MCP
رؤیا را بهعنوانِ یک ابزار به دستیارِ هوشمصنوعیت (Claude Code، Cursor، Claude Desktop) وصل کن. توکنِ اتصال را از صفحهی اتصالها بساز.
از رویِ متن (یا متن + تصویرِ فریمِ اول/آخر) ویدیو میسازد. ناهمزمان (async) است — پاسخ بلافاصله برمیگردد و باید با /api/v1/generations/{id} پیگیری شود.
فیلدهایِ بدنه (JSON)
فیلد
نوع
الزامی؟
توضیح
model_id
string
شرطی
یکی از model_id یا slug الزامی است
slug
string
شرطی
یکی از model_id یا slug الزامی است
prompt
string
بله
متنِ توصیفِ ویدیو
duration
number
خیر
مدتِ ویدیو به ثانیه؛ باید در فهرستِ پشتیبانیشدهی مدل باشد
resolution
string
خیر
رزولوشن (پیشفرض "720p" اگر مدل پشتیبانی کند)
aspect_ratio
string
خیر
نسبتِ تصویر (پیشفرض "16:9" اگر مدل پشتیبانی کند)
audio
boolean
خیر
درخواستِ صدا همراهِ ویدیو؛ فقط برای مدلهایی که این قابلیت را دارند
image_url
string
خیر
آدرسِ تصویرِ فریمِ اول برای حالتِ تصویربهویدیو
last_frame_url
string
شرطی
آدرسِ تصویرِ فریمِ آخر؛ فقط همراه با image_url معنا دارد
ناهمزمان (async) است — نتیجه را از /api/v1/generations/{id} بگیر. مدتِ ویدیوی ورودی برای بیشترِ مدلها سمتِ سرور اندازهگیری میشود، نه از رویِ ادعایِ کلاینت.
POST/api/v1/motion
کنترلِ حرکت (Motion Control)
ناهمزمان
حرکتِ یک ویدیوی مرجع را به تصویرِ یک کاراکتر/سوژه منتقل میکند. ناهمزمان (async) است.
فیلدهایِ بدنه (JSON)
فیلد
نوع
الزامی؟
توضیح
model_id
string
شرطی
یکی از model_id یا slug
slug
string
شرطی
یکی از model_id یا slug
image_url
string
بله
آدرسِ تصویرِ کاراکتر/سوژهای که باید حرکت کند
video_url
string
بله
آدرسِ ویدیوی مرجعِ حرکت
prompt
string
خیر
توضیحِ اختیاریِ صحنه/حرکت
character_orientation
string
شرطی
"image" یا "video" — مرجعِ جهتگیریِ کاراکتر؛ برای بعضی مدلها الزامی است
حالتِ موسیقی/افکت خودکار از رویِ مدلِ انتخابی تشخیص داده میشود — فیلدی برایِ انتخابِ حالت وجود ندارد. ناهمزمان است — نتیجه را از /api/v1/generations/{id} بگیر.
POST/api/v1/transcribe
رونویسیِ صدا به متن
ناهمزمان
فایلِ صوتی را به متن تبدیل میکند. ناهمزمان (async) است؛ با pollکردنِ generation، فیلدِ output_urls[0] یک آدرسِ فایلِ متنی (.txt) است — آن را fetch کن تا متنِ رونویسی را بگیری (نه متنِ inline).
شکلِ دقیقِ params به schema همان اپ بستگی دارد — از /api/v1/models برای دیدنِ فهرستِ اپهای فعال کمک بگیر. ناهمزمان است — نتیجه را از /api/v1/generations/{id} بگیر.
کاراکتر
POST/api/v1/characters/train
آموزشِ کاراکترِ اختصاصی (LoRA)
ناهمزمان
از رویِ چند عکسِ مرجع، یک کاراکترِ اختصاصی (LoRA) آموزش میدهد که بعداً در /api/v1/images با lora_ids قابلِ استفاده است.
فیلدهایِ بدنه (JSON)
فیلد
نوع
الزامی؟
توضیح
images_zip_url
string
بله
آدرسِ عمومیِ یک فایلِ zip از عکسهایِ مرجعِ کاراکتر
model_id
string
شرطی
یکی از model_id یا slug
slug
string
شرطی
یکی از model_id یا slug
trigger_word
string
خیر
کلمهی محرکِ کاراکتر؛ همچنین بهعنوانِ نامِ پیشفرضِ کاراکتر استفاده میشود
ناهمزمان و پرهزینه است. وضعیتِ آموزش را از /api/v1/characters/{id} بگیر و پس از آمادهشدن، همان id را به /api/v1/characters/{id} با متدِ POST بده تا نهایی شود.
GET/api/v1/characters/{id}
وضعیتِ آموزشِ کاراکتر
وضعیتِ یک کارِ آموزشِ کاراکتر را برمیگرداند — id همان id ایست که از /api/v1/characters/train گرفتهای.