API Reference
Rooms Management
Create Room

Room Management – Create Room

Create a new video conferencing room with comprehensive configuration options. Requires a valid Bearer token.

Authentication

Include the token in the Authorization header:

Authorization: Bearer <YOUR_AUTH_TOKEN>

Endpoint

POSThttps://api.samvyo.com/api/roomSetting

Required Headers

Content-Type: application/json
Authorization: Bearer <YOUR_AUTH_TOKEN>

Request Body

{
  "audioStatus": true,
  "authenticationRequired": true,
  "enableChatOption": true,
  "enableLiveStreaming": false,
  "enablePresenters": true,
  "enableRTMPStreaming": false,
  "enableRecording": true,
  "enableScreenSharing": true,
  "enableTranscription": false,
  "isStatic": true,
  "liveStreamKey": null,
  "liveStreamUrl": null,
  "name": "team-meeting-room",
  "noOfModerators": 5,
  "noOfParticipants": 20,
  "noOfUpgradeRequests": 3,
  "noOfViewers": 0,
  "participantPrivacy": false,
  "recordModerator": true,
  "recordParticipant": false,
  "recordingFormat": "hls",
  "recordingResolutions": ["480p", "1080p", "2160p"],
  "recordingStrategy": "mergedAV",
  "room": 1234567890,
  "roomOwnerId": "<USER_ID>",
  "roomPassword": "",
  "roomType": "event",
  "videoStatus": true,
  "roomPermaLink": true
}

Field Reference

Required Fields

  • name: Room name/identifier (string)
  • roomOwnerId: User ID of the room owner (string)

Optional Fields

Basic Configuration

  • room: Room ID (number, auto-generated if not provided)
  • roomType: Type of room - "p2p", "conferencing", or "event" (string, default: "conferencing")
  • roomPassword: Password for room access (string, optional)
  • isStatic: Whether room persists after meetings (boolean, default: false)

Participant Limits

  • noOfModerators: Maximum number of moderators (number, default: 1)
  • noOfParticipants: Maximum number of participants (number, default: 1)
  • noOfViewers: Maximum number of viewers (number, default: 0)
  • noOfUpgradeRequests: Number of upgrade requests allowed (number, default: 3)

Media Controls

  • audioStatus: Enable audio in room (boolean, default: true)
  • videoStatus: Enable video in room (boolean, default: true)
  • enableScreenSharing: Allow screen sharing (boolean, default: true)
  • enableChatOption: Enable chat functionality (boolean, default: true)

Recording & Advanced Features

  • enableRecording: Enable meeting recording (boolean, default: false)
  • recordingFormat: Recording format - "hls" or "mp4" (string, default: "hls")
  • recordModerator: Record moderator audio/video (boolean, default: false)
  • recordParticipant: Record participant audio/video (boolean, default: false)
  • recordingResolutions: Array of recording resolutions - ["480p", "1080p", "2160p"] (array, optional)
  • recordingStrategy: Recording strategy - "mergedA", "mergedAV", "AmergedAV" (string, optional)
    • mergedA: Merge audio only (without video)
    • mergedAV: Merge both audio and video
    • AmergedAV: Automatic start merged audio & video recording
  • enableTranscription: Enable meeting transcription (boolean, default: false)
  • enableLiveStreaming: Enable live streaming (boolean, default: false)
  • liveStreamUrl: Live stream URL (string, optional)
  • liveStreamKey: Live stream key (string, optional)
  • enableRTMPStreaming: Enable RTMP streaming (boolean, default: false)

Security & Privacy

  • authenticationRequired: Require authentication to join (boolean, default: false)
  • participantPrivacy: Enable participant privacy (boolean, default: false)
  • roomPermaLink: Create permanent room link (boolean, default: false)

Meeting Management

  • enablePresenters: Allow multiple presenters (boolean, default: true)

Example Requests

JavaScript (fetch)

const res = await fetch('https://api.samvyo.com/api/roomSetting', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${authToken}`
  },
  body: JSON.stringify({
    audioStatus: true,
    authenticationRequired: true,
    enableChatOption: true,
    enableLiveStreaming: false,
    enablePresenters: true,
    enableRTMPStreaming: false,
    enableRecording: true,
    enableScreenSharing: true,
    enableTranscription: false,
    isStatic: true,
    liveStreamKey: null,
    liveStreamUrl: null,
    name: 'team-meeting-room',
    noOfModerators: 5,
    noOfParticipants: 20,
    noOfUpgradeRequests: 3,
    noOfViewers: 0,
    participantPrivacy: false,
    recordModerator: true,
    recordParticipant: false,
    recordingFormat: 'hls',
    recordingResolutions: ['480p', '1080p', '2160p'],
    recordingStrategy: 'mergedAV',
    room: 1234567890,
    roomOwnerId: '<USER_ID>',
    roomPassword: '',
    roomType: 'event',
    videoStatus: true,
    roomPermaLink: true
  })
});
const data = await res.json();

cURL

curl -X POST \
  'https://api.samvyo.com/api/roomSetting' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_AUTH_TOKEN>' \
  -d '{
    "audioStatus": true,
    "authenticationRequired": true,
    "enableChatOption": true,
    "enableLiveStreaming": false,
    "enablePresenters": true,
    "enableRTMPStreaming": false,
    "enableRecording": true,
    "enableScreenSharing": true,
    "enableTranscription": false,
    "isStatic": true,
    "liveStreamKey": null,
    "liveStreamUrl": null,
    "name": "team-meeting-room",
    "noOfModerators": 5,
    "noOfParticipants": 20,
    "noOfUpgradeRequests": 3,
    "noOfViewers": 0,
    "participantPrivacy": false,
    "recordModerator": true,
    "recordParticipant": false,
    "recordingFormat": "hls",
    "recordingResolutions": ["480p", "1080p", "2160p"],
    "recordingStrategy": "mergedAV",
    "room": 1234567890,
    "roomOwnerId": "<USER_ID>",
    "roomPassword": "",
    "roomType": "event",
    "videoStatus": true,
    "roomPermaLink": true
  }'

Success Response

{
  "type": "post roomSetting",
  "success": true,
  "roomSetting": {
    "room": "9639479849",
    "isStatic": true,
    "noOfModerators": 5,
    "noOfParticipants": 20,
    "noOfViewers": 0,
    "authenticationRequired": true,
    "name": "team-meeting-room",
    "roomType": "event",
    "roomPassword": "",
    "participantType": null,
    "videoStatus": "true",
    "audioStatus": "true",
    "roomStatus": "free",
    "roomOwnerId": "<USER_ID>",
    "createdAt": "2025-08-11T23:15:09.286Z",
    "updatedAt": "2025-08-11T23:15:09.286Z",
    "acceptIpCameras": false,
    "totalCallTime": "0",
    "enableChatOption": true,
    "enableScreenSharing": true,
    "enableLiveStreaming": false,
    "enableRecording": true,
    "enableTranscription": false,
    "recordModerator": true,
    "recordParticipant": false,
    "participantPrivacy": false,
    "recordingStrategy": "mergedAV",
    "participantVideoPrivacy": false,
    "roomAgenda": null,
    "scheduledDateTime": null,
    "enablePresenters": true,
    "noOfUpgradeRequests": 3,
    "enableRTMPStreaming": false,
    "liveStreamUrl": null,
    "liveStreamKey": null,
    "recordingFormat": "hls",
    "recordingResolutions": ["480p", "1080p", "2160p"],
    "roomPermalink": true
  }
}

Failure Response

Room creation limit reached

{
  "success": false,
  "message": "Room creation limit reached, please upgrade your plan"
}

Notes

  • roomPermaLink: When set to true, creates a permanent room link that persists across meetings
  • roomOwnerId: Must be a valid user ID from your organization
  • room: If not provided, a unique room ID will be auto-generated
  • roomType: Choose "p2p" for one-on-one meetings, "conferencing" for group meetings, or "event" for large-scale events
  • recordingStrategy:
    • "mergedA": Merge audio only (without video)
    • "mergedAV": Merge both audio and video
    • "AmergedAV": Automatic start merged audio & video recording
  • recordingResolutions: Available resolutions include "480p", "1080p", "2160p" (4K)
  • recordingFormat: Choose "hls" for adaptive streaming or "mp4" for direct download