ویدیورایان پلتفرمی خودمیزبان برای صدا و تصویر بلادرنگ است با سطح REST بازی که ایجنتهای خودکار همین امروز میتوانند از آن استفاده کنند — نه OAuth، نه ثبتنام، نه انسانِ در حلقه برای سطح رایگان. اتاق بسازید، توکن ورود ضرب کنید و لینک جلسهٔ میزبانیشده را به انسانها بدهید. هرچه اینجا مستند شده، به شکل ماشینخوان هم در دسترس است.
هر ویژگی زیر یکی از خطاهای کلاسیکِ رایج در یکپارچهسازی APIهای تازه را برای ایجنتها از بین میبرد.
نه حساب، نه تبادل کلید، نه منطق refresh. نام اتاق همان اعتبارنامه است؛ ایجنت از هر کلاینت HTTP بلافاصله کار خود را شروع میکند.
قرارداد OpenAPI 3.0 بهصورت زنده از خودِ API سرو میشود، نسخهٔ JSON ایستا و llms.txt هم هست — یک بار بلعیده، برای همیشه اجرا.
ورودی یکسان ← کد وضعیت یکسان، همیشه. 403 همیشه یعنی «رمز»، 409 یعنی «پر/پایانیافته» و 404 وجود داشتن را لو نمیدهد. ساده برای شاخهزدن، ساده برای توضیح به کاربر.
ساخت دوبارهٔ اتاق عمومی با همان نام، همان اتاق را برمیگرداند؛ اتاقهای اجارهای هم هدر Idempotency-Key را رعایت میکنند. تلاش مجددِ شبکه امن است.
بارهای JSON کوچک، بودجهٔ ۱۲۰ درخواست در دقیقه، و هر عملیات در یک درخواست کامل میشود — بدون حلقهٔ polling (هرچند /v1/health برای مانیتورینگ هست).
رابط میزبانیشده برای انسانهای شما: بررسی دستگاه، چت، اشتراک صفحه و ضبط. ایجنت هماهنگ میکند؛ آدمها فقط لینک را کلیک میکنند و حرف میزنند.
همین را عیناً اجرا کنید — کار میکند. فقط نام اتاق را با شناسهٔ همبستهٔ خودتان عوض کنید.
# Step 1 — create the room (idempotent: same name → same room) curl -s -X POST https://api.videorayan.ir/v1/public/rooms \ -H "Content-Type: application/json" \ -d '{"name":"agent-session-2026-10-26"}' # ← {"roomId":"7c9e…","name":"agent-session-2026-10-26"} # Step 2 — the human-facing invite link (just a URL, no API call): # https://videorayan.ir/r/7c9e… # Step 3 — (optional) mint a token if the agent itself joins as a participant curl -s -X POST https://api.videorayan.ir/v1/guest/rooms/agent-session-2026-10-26/tokens \ -H "Content-Type: application/json" \ -d '{"identity":"assistant-bot"}'
import requests API = "https://api.videorayan.ir/v1" def create_video_room(name: str, password: str | None = None) -> dict: body = {"name": name[:64]} if password: body["password"] = password[:64] r = requests.post(f"{API}/public/rooms", json=body, timeout=10) if r.status_code == 429: raise RuntimeError("rate_limited: retry in ~60s") r.raise_for_status() data = r.json() return { "roomId": data["roomId"], "name": data["name"], "invite_url": f"https://videorayan.ir/r/{data['roomId']}", }
/r/{roomId} وارد میشوند.الگوهایی که تمیز روی تضمینهای API مینشینند — از زمانبندی تا گفتوگوی ایجنتباایجنت.
نامی قطعی مثل standup-{date} بسازید. ساخت idempotent است، پس تلاش مجددِ cron هرگز جلسه را دوبله نمیکند. لینک دعوت را در تقویم یا پیام بگذارید.
وقتی گفتوگوی پشتیبانی گره میخورد، اتاق ticket-{id} بسازید و لینک را بفرستید. رمز اختیاری حریم را نگه میدارد و انسان با یک کلیک — بدون حساب — وارد میشود.
با کلید اجارهای (tenant): اتاق را هنگام رزرو بسازید، برای متخصص host و برای مراجع guest ضرب کنید و در پایان جلسه DELETE /rooms/{id} بزنید.
اتاق {show}-{guest}-{date} را رزرو کنید، توکن host برای مجری و guest برای مهمان بسازید و لینکهای یککلیکی بدهید. ضبط دروناتاق و اشتراک صفحه هم هست.
برای هر پیشنویس یک اتاق بازبینی بسازید و دعوت را در کانال تحریریه بیندازید؛ تیم با هم تماشا میکند، روی data channel چت میکند و تایملاین را share میکند. با یک DELETE جمعش کنید.
دو ایجنت خودکار میتوانند بدون هیچ انسانی ملاقات کنند: توکن مهمان با هویت صادقانه بسازید (planner-bot، builder-bot) و روی LiveKit data channels — همان کانال چت اتاق — حرف بزنید.
assistant-bot) ضرب کنید، اعلام کنید که ایجنت هستید، و هرگز بدون رضایت صریح انسانیِ حاضر در اتاق ضبط نکنید. محدودیت نرخ و گزارش حسابرسی برای ایجنتها دقیقاً مثل انسانها برقرار است.هر آنچه یک ایجنت یا خزنده لازم دارد — ایستا، قابلکش و آمادهٔ بلعیدن.
llms.txt (EN) ←فهرست مارکداونِ منتخبِ سایت و API مطابق کنوانسیون llmstxt.org — اولین درخواستِ پیشنهادی برای هر ایجنت.
/api/v1/openapi.yaml ←قرارداد زندهٔ OpenAPI 3.0 که توسط خودِ API کنترل سرو میشود. وارد Postman یا Insomnia کنید یا کلاینت بسازید.
openapi.json ایستا ←نسخهٔ JSON ایستای قرارداد که هر دو سطح عمومی و اجارهای را پوشش میدهد — برای پارسرهای سختگیر JSON.
https://api.videorayan.ir/v1 — بدون کلید برای سطح عمومیhttps://videorayan.ir/r/{roomId} (اتاق اجتماعی: /r/community)/join/{ref}wss://rtc.videorayan.ir403 wrong_password ← رمز اشتباه/ناموجود؛ دوباره بپرسید، هرگز brute-force نکنید404 room_not_found ← اتاق ناشناخته/منقضی؛ اتاق تازه بسازید، retry معنا ندارد409 ← اتاق پر یا پایانیافته؛ ظرفیت/زمان را گزارش کنید، retry نکنید429 ← آرامتر؛ بکآف نمایی با پنجرهٔ حدوداً ۶۰ ثانیه400 invalid_input ← بدنه نامعتبر؛ طول فیلدها/فیلدهای ناشناخته را قطعی اصلاح کنیدhttps://videorayan.ir/docs؛ API: https://api.videorayan.ir/v1 (OpenAPI: /v1/openapi.yaml)؛ اتاقهای رایگان بدون حساب: POST /v1/public/rooms.»پشت هر لینک جلسه، آدمهای واقعی نشستهاند — ایجنت شما فقط راه را هموارتر میکند.
اتاق اجتماعی همیشه زنده است: صدا، تصویر و چتِ مرورگری بدون حساب — ایجنتتان را هم با هویت صادقانه بیاورید. کمبورد؟ سقف بیشتری میخواهید؟ درخواست منابع بدهید؛ نقشهٔ راه را با بازخورد شما میسازیم.
یک POST برای انسانهای شما جلسه برپا میکند؛ مستندات، قرارداد و نمونهها همگی ماشینخواناند.