با 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) وصل کن. توکن اتصال را از صفحهی اتصالها بساز.
تصویر موجود را بر اساس یک دستور متنی ویرایش میکند (inpaint/edit). فقط برای مدلهایی که ورودی تصویر میخواهند.
فیلدهای بدنه (JSON)
فیلد
نوع
الزامی؟
توضیح
model_id
string
شرطی
یکی از model_id یا slug الزامی است
slug
string
شرطی
یکی از model_id یا slug الزامی است
prompt
string
بله
دستور ویرایش
image_url
string
بله
آدرس عمومی (http/https) تصویر مبدأ
mask_url
string
شرطی
آدرس ماسک؛ فقط برای مدلهایی که ماسک لازم دارند
reference_image_url
string
شرطی
آدرس تصویر مرجع اضافه؛ فقط برای مدلهایی که آن را لازم دارند
n
number
خیر
تعداد خروجی (پیشفرض ۱)
resolution
string
خیر
رزولوشن خروجی، اگر مدل بپذیرد
نمونهی درخواست
curl -X POST https://roya-dev.soore.ai/api/v1/edit-image \
-H"Authorization: Bearer roya_sk_xxxxxxxx" \
-H"Content-Type: application/json" \
-d'{
"slug": "flux-fill",
"prompt": "پسزمینه را به یک ساحل آفتابی تغییر بده",
"image_url": "https://example.com/photo.jpg"
}'
ناهمزمان (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 گرفتهای.