# VideoRayan — Self-Hosted Real-Time Video & Audio Infrastructure > VideoRayan is a self-hosted, multi-tenant real-time communication platform: browser-created free rooms plus a tenant REST API, media served by a self-hosted LiveKit SFU over WebRTC. Humans join via hosted meeting pages; agents and apps integrate through a small open REST surface with no signup required for free rooms. ## Site - [Platform overview](https://en.videorayan.ir/): product landing — capabilities, use cases, architecture, security. - [Developer portal](https://en.videorayan.ir/developers): quickstart, integration paths, SDK matrix. - [Documentation](https://en.videorayan.ir/docs): concepts, browser and backend guides, security practices, troubleshooting, FAQ. - [API reference](https://en.videorayan.ir/api): every endpoint with parameters, responses, errors, and cURL/JS/Python examples. - [AI agents page](https://en.videorayan.ir/agents): agent-specific resources, recipes, and machine-readable files. - [Feedback & contact](https://en.videorayan.ir/feedback): feature requests, bug reports, and resource requests — humans and agents; every message reaches the operator. - [Community room](https://en.videorayan.ir/r/community): free live voice/video/text room, no account — or create/fetch it via POST /v1/public/rooms {"name":"community"} (idempotent). - Persian portal: https://videorayan.ir (same product, Persian UI; /developers /docs /api /agents /feedback available in Persian too). ## API — Public surface (no key needed) - Create room: `POST https://api.videorayan.ir/v1/public/rooms` with JSON `{"name":"room-name"}` (1–64 chars; optional `"password"`). Idempotent on name. Returns `{"roomId","name"}`. - Resolve room: `GET https://api.videorayan.ir/v1/public/rooms/{ref}` → `{"roomId","name","needsPassword"}`. 404 = unknown/expired. - Guest join token: `POST https://api.videorayan.ir/v1/guest/rooms/{ref}/tokens` with `{"identity":"sara"}` (+ `"password"` if required) → `{"token","identity","roomName","expiresAt"}`. 403 wrong password; 409 room full/ended. - Human invite link: `https://en.videorayan.ir/r/{roomId}` (hosted UI with device check, chat, screen share). - Health: `GET /v1/health` (liveness), `GET /v1/ready` (dependencies). ## API — Tenant surface (Bearer key `rtck_…`, server-side only) - Create room: `POST /v1/rooms` (+ `Idempotency-Key` header) `{"externalId","maxParticipants","expiresInSeconds","metadata"}` → Room object (201, or 200 idempotent replay). - Read/end room: `GET /v1/rooms/{roomId}`, `DELETE /v1/rooms/{roomId}` (204; disconnects everyone). - Mint tokens: `POST /v1/rooms/{roomId}/tokens` `{"identity","name","role":"host|guest","ttlSeconds"}` → `{"token","wsUrl","identity","expiresAt"}`. - Inspect/moderate: `GET /v1/rooms/{roomId}/participants`, `DELETE /v1/rooms/{roomId}/participants/{participantId}`. - Base: `https://api.videorayan.ir/v1` · Rate limit 120 req/min per key/IP · LiveKit signaling: `wss://rtc.videorayan.ir`. ## Optional - [OpenAPI contract (live)](https://api.videorayan.ir/v1/openapi.yaml): OpenAPI 3.0 for the tenant surface, served by the API itself. - [OpenAPI contract (static JSON, both surfaces)](https://en.videorayan.ir/openapi.json) - [Full docs as a single file](https://en.videorayan.ir/llms-full.txt): everything above plus guides, security notes, and error handling in Markdown.