Table of Contents
- Permanent Room
- Scheduled Meetings
- Lobby / Waiting Room
- Branding Options
- Error Codes
Get Permanent Room Info
This API is used to get permanent meeting room information.
- API Route:
- To get own permanent meeting room information – https://api.enablex.io/ucaas/v1/meeting/permanent
- To get permanent meeting room information for the specified user – https://api.enablex.io/ucaas/v1/meeting/permanent/{{user_id}}
- HTTP Request: GET
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Response Example:
{ "result": 1, "permanent_room": { "room_id": "String", "user_id": "String", "room_name": "String", "desc": "String", "mpin": "String", "ppin": "String", "direct_url": "String", "moderators": "Number", "participants": "Number", "duration": "String", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean" } }
Update Permanent Room Info
This API is used to update permanent meeting room information. This updates permanent meeting room information if the room-id specified in URL is for own or any user under it.
- API Route: https://api.enablex.io/ucaas/v1/meetings/permanent/{{room_id}}
- HTTP Request: PATCH
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Request Example:
{ "room_name": "String", "desc": "String", "moderators": "Number", "participants": "Number", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean" }
Raw Body JSON Payload Explanation:
All data fields are optional while updating. Use only those fields which you look to update.
Object/Key | Data Type | Required | Description |
room_name | String | Optional | Name of the Room |
desc | String | Optional | Descriptive text on Room/Meeting |
moderators | Number | Optional | Number of moderators needed on call |
participants | Number | Optional | Number of participants needed on call |
wait_for_moderator | Boolean | Optional | Whether to wait for Moderator to join first to get into a Session |
knock | Boolean | Optional | Whether to enable moderated entry into the session for participants |
auto_recording | Boolean | Optional | Whether to enable auto-recording of the Session |
Response Example:
{ "result": 1, "msg": "permanent Room information has been updated", "permanent_room": { "room_id": "String", "user_id": "String", "room_name": "String", "desc": "String", "mpin": "String", "ppin": "String", "direct_url": "String", "moderators": "Number", "participants": "Number", "duration": "String", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean" } }
Reset Permanent Room PINs
This API is used to reset Access PINs, either Moderator PIN or Participant PIN or both as required. This resets permanent room pins if the room-id specified in URL is for own or any user under it.
- API Route: https://api.enablex.io/ucaas/v1/meetings/permanent/{{room_id}}
- HTTP Request: PATCH
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-Action
:reset-pins
X-App-Type
:vc
,wb
Request Example:
{ "reset_mpin": Boolean, "reset_ppin": Boolean }
Raw Body JSON Payload Explanation:
All data fields are optional while updating. Use only those fields which you look to update.
Object/Key | Data Type | Required | Description |
reset_ppin | Boolean | Optional | To reset Participant PIN |
reset_mpin | Boolean | Optional | To reset Moderator PIN |
Response Example:
{ "result": 1, "msg": "Access PIN has been updated", "permanent_room": { "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String", "desc": "String", "mpin": "String", "ppin": "String", "direct_url": "String", "moderators": "Number", "participants": "Number", "duration": "String", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean" } }
Schedule Meeting
This API is used to schedule a meeting.
- API Route: https://api.enablex.io/ucaas/v1/meetings
- HTTP Request: POST
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Request Example:
{ "user_id": "String", "room_name": "String", "desc": "String", "start_time ": "YYYY-MM-DD HH:ii:ss ", "duration": "Number", "moderators": "Number", "participants": "Number", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean", "send_mail": "Boolean", "invitees": { "contact_ids": [ "String" ], "group_ids": [ "String" ], "emails": [ "String" ] } }
Raw Body JSON Payload Explanation:
Object/Key | Data Type | Required | Description |
user_id | String | Optional | It must be user under the company. If given, meeting to be scheduled under this user. The user must be under the account. |
room_name | String | Required | Name of the Room. Max 60 Characters. |
desc | String | Required | Descriptive text on Room/Meeting. Max 200 Characters. |
start_time | Required | YYYY-MM-DD HH:ii:ss in UTC | |
timezone_id | Required | ||
duration | Required | Duration of the meeting | |
moderators | Number | Required | Number of moderators needed on call |
participants | Number | Required | Number of participants needed on call |
wait_for_moderator | Boolean | Optional | Whether to wait for Moderator to join first to get into a Session |
knock | Boolean | Optional | Whether to enable moderated entry into the session for participants |
auto_recording | Boolean | Optional | Whether to enable auto-recording of the Session |
send_mail | Boolean | Optional | Whether to send out emails with Access Info |
invitees | Object | Optional | Array of Contact IDs, Group IDs, or Email Addresses to whom email will be sent. |
Response Example:
{ "result": 1, "msg": "Meeting has been scheduled", "meeting": { "meeting_id": "String", "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String", "desc": "String", "start_time ": "YYYY-MM-DD HH:ii:ss ", "mpin": "String", "ppin": "String", "direct_url": "String", "moderators": "Number", "participants": "Number", "duration": "String", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean" } }
Edit Meeting Information
This API is used to edit the meeting information. This updates the meeting information if the room-id specified in URL is for own or any user under it.
- API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}
- HTTP Request: PATCH
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Request Example:
{ "room_name": "String", "desc": "String", "start_time ": "YYYY-MM-DD HH:ii:ss ", "duration": "Number", "moderators": "Number", "participants": "Number", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean", "send_mail": "Boolean", "invitees": { "contacts": [ { "contact_id": "String", "name": "String", "email": "String" } ], "groups": [ { "group_id": "String", "group_name": "String" } ] } }
Raw Body JSON Payload Explanation:
Object/Key | Data Type | Required | Description |
room_name | String | Optional | Name of the Room. Max 60 Characters. |
desc | String | Optional | Descriptive text on Room/Meeting. Max 200 Characters. |
start_time | Optional | YYYY-MM-DD HH:ii:ss in UTC | |
timezone_id | Optional | ||
duration | Optional | Duration of the meeting | |
moderators | Number | Optional | Number of moderators needed on call |
participants | Number | Optional | Number of participants needed on call |
wait_for_moderator | Boolean | Optional | Whether to wait for Moderator to join first to get into a Session |
knock | Boolean | Optional | Whether to enable moderated entry into the session for participants |
auto_recording | Boolean | Optional | Whether to enable auto-recording of the Session |
send_mail | Boolean | Optional | Whether to send out emails with Access Info |
invitees | Object | Optional | Array of Contact IDs, Group IDs, or Email Addresses to whom email will be sent. |
Response Example:
{ "result": 1, "msg": "Meeting has been updated", "meeting": { "meeting_id": "String", "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String", "desc": "String", "start_time ": "YYYY-MM-DD HH:ii:ss ", "timezone": { "timezone_id": "", "zone_name": "", "zone_abbr": "", "time_start": "", "gmt_offset": "", "is_dst": "" }, "mpin": "String", "ppin": "String", "direct_url": "String", "moderators": "Number", "participants": "Number", "duration": "String", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean" } }
Get Meeting Information
This API is used to get Meeting Information for given Meeting ID.
- API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}
- HTTP Request: PATCH
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Response Example:
{ "result": 1, "meeting": { "meeting_id": "String", "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String", "desc": "String", "start_time ": "YYYY-MM-DD HH:ii:ss ", "duration": "Number", "moderators": "Number", "participants": "Number", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean", "invitees": { "contact_ids": [ "String" ], "group_ids": [ "String" ], "emails": [ "String" ] } } }
Get List of Meetings
This API is used to get a list of Meetings scheduled which are current, upcoming or have happened in the past.
- API Route:
- https://api.enablex.io/ucaas/v1/meetings
- https://api.enablex.io/ucaas/v1/meetings?page={{$PAGE_NUM}}
- HTTP Request: GET
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Raw Body JSON Payload Explanation:
Object/Key | Data Type | Required | Description |
page | Number | Optional | Data return requested for the Page. Default 1. |
page_length | Number | Optional | Total Records to include in a page. Default 10. |
search_by | String | Optional | Required if “search_string” is used. Use any of the enumerated values: o mpin: On MPIN field o ppin: On PPIN field o user_id: On a specific user |
search_string | String | Optional | Required with search_by. |
stage | String | Optional | “upcoming”, “current”, “past” |
order_by | String | Optional | Database field names. |
order_qualify | String | Optional | Default “asc”. Enumerated values: asc, desc. |
Response Example:
{ "result": 1, "search": { "page": "Number", "page_length": "Number", "search_by": "String", "stage": "String", "search_string": "String", "order_by": "String", "order_qualify": "String" }, "meetings": [ { "meeting_id": "String", "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String", "desc": "String", "start_time ": "YYYY-MM-DD HH:ii:ss ", "timezone": { "timezone_id": "", "zone_name": "", "zone_abbr": "", "time_start": "", "gmt_offset": "", "is_dst": "" }, "mpin": "String", "ppin": "String", "direct_url": "String", "moderators": "Number", "participants": "Number", "duration": "String", "wait_for_moderator": "Boolean", "knock": "Boolean", "auto_recording": "Boolean", "stage": "String" } ] }
Cancel Meeting
This API is used to cancel or delete Meeting for given Meeting ID.
- API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}
- HTTP Request: DELETE
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Response Example:
{ "result": 1, "msg": "Meeting has been cancelled". "event": { "meeting_id": "String", "room_id": "String ", "user_id": "Strig", "room_name": "String " }
Get Meeting Lobby Information
This API is used to get Lobby Information for given Meeting ID.
- API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/lobby
- HTTP Request: GET
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Response Example:
{ "result": 1, "meeting": { "meeting_id": "String", "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String" }, "lobby": { "options": { "messages": "Boolean", "images": "Boolean", "audio": "Boolean", "video": "Boolean" }, "message": [ { "text": "String" } ], "image": [ { "url": "String", "caption": "String" } ], "video": [ { "url": "String", "embed": "String" } ], "audio": [ { "url": "String", "embed": "String" } ] } }
Add Meeting Lobby Information
This API is used to add Lobby Information to a Meeting.
- API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/lobby
- HTTP Request: POST
Headers Explanation:
Content-Type
:multipart/form-data
X-App-Type
:vc
,wb
Request Example:
{ "options": { "message": "Boolean", "image": "Boolean", "audio": "Boolean", "video": "Boolean" }, "message": [ { "text": "String" } ], "image": [ { "img_file": "File", "url": "String", "caption": "String" } ], "video": [ { "url": "String" } ], "audio": [ { "audio_file": "File", "url": "String" } ] }
Raw Body JSON Payload Explanation:
Object/Key | Data Type | Required | Description |
options | Object | Required | What type of Lobby to define. You can set one amongst the 4 options as true. |
options .messages | Boolean | Optional | Set it to true if you want “text messages” to show as slideshow on lobby. Along with “messages”, you can define background audio also. |
options.image | Boolean | Optional | Set it to true if you want “image slideshow” to show as slideshow on lobby. Along with “images”, you can define background audio also. |
options.audio | Boolean | Optional | Set it to true if you want “background audio” to play on lobby. |
options.video | Boolean | Optional | Set it to true if you want “video” to play on lobby. |
message | Array of Object | Optional | Required with options.message:true .It contains array of multiple text messages. |
image | Array of Object | Optional | Required with options.image:true . It contains array of multiple image file or image URL with caption. |
audio | Array of Object | Optional | Required with options.audio:true . It contains array of multiple audio file (.mp3) or audio file URL. Currently, we support only one audio file upload. However, you need to maintain this array structure. |
video | Array of Object | Optional | Required with options.video:true . It contains array of multiple video file URLs (.mp4). Currently, we support only one video file. However, you need to maintain this array structure. |
Response Example:
{ "result": 1, "meeting": { "meeting_id": "String", "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String" }, "lobby": { "options": { "messages": "Boolean", "images": "Boolean", "audio": "Boolean", "video": "Boolean" }, "message": [ { "text": "String" } ], "image": [ { "url": "String", "caption": "String" } ], "video": [ { "url": "String", "embed": "String" } ], "audio": [ { "url": "String", "embed": "String" } ] } }
Update Meeting Lobby Information
This API is used to update Lobby Information to a Meeting.
- API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/lobby
- HTTP Request: PATCH
Headers Explanation:
Content-Type
:multipart/form-data
X-App-Type
:vc
,wb
Request Example:
{ "options": { "message": "Boolean", "image": "Boolean", "audio": "Boolean", "video": "Boolean" }, "message": [ { "text": "String" } ], "image": [ { "img_file": "File", "url": "String", "caption": "String" } ], "video": [ { "url": "String" } ], "audio": [ { "audio_file": "File", "url": "String" } ] }
Raw Body JSON Payload Explanation:
Object/Key | Data Type | Required | Description |
options | Object | Required | What type of Lobby to define. You can set one amongst the 4 options as true. |
options .messages | Boolean | Optional | Set it to true if you want “text messages” to show as slideshow on lobby. Along with “messages”, you can define background audio also. |
options.image | Boolean | Optional | Set it to true if you want “image slideshow” to show as slideshow on lobby. Along with “images”, you can define background audio also. |
options.audio | Boolean | Optional | Set it to true if you want “background audio” to play on lobby. |
options.video | Boolean | Optional | Set it to true if you want “video” to play on lobby. |
message | Array of Object | Optional | Required with options.message:true .It contains array of multiple text messages. |
image | Array of Object | Optional | Required with options.image:true . It contains array of multiple image file or image URL with caption. |
audio | Array of Object | Optional | Required with options.audio:true . It contains array of multiple audio file (.mp3) or audio file URL. Currently, we support only one audio file upload. However, you need to maintain this array structure. |
video | Array of Object | Optional | Required with options.video:true . It contains array of multiple video file URLs (.mp4). Currently, we support only one video file. However, you need to maintain this array structure. |
Response Example:
{ "result": 1, "meeting": { "meeting_id": "String", "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String" }, "lobby": { "options": { "messages": "Boolean", "images": "Boolean", "audio": "Boolean", "video": "Boolean" }, "message": [ { "text": "String" } ], "image": [ { "url": "String", "caption": "String" } ], "video": [ { "url": "String", "embed": "String" } ], "audio": [ { "url": "String", "embed": "String" } ] } }
Delete Meeting Lobby Information
This API is used to delete Lobby Information for a Meeting.
- API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/lobby
- HTTP Request: DELETE
Headers Explanation:
Content-Type
: To haveapplication/json
to notify that the body content is in JSON.X-App-Type
:vc
,wb
Response Example:
{ "result": 1, "desc": "Lobby is deleted", "meeting": { "meeting_id": "String", "room_id": "String", "user_id": "String", "room_name": "String", "app_type": "String" } }
Set / Reset Branding Options
This API is used to set Branding Information to Login/Landing Page and/or Video Session Page. The following options are supported:
For Login / Landing Page
- A Space is allocated for Image Banner, Video or Video Embed. You can use any one of these. This is optional.
- Image Banner Specification
- API needs https hosted Image URL. CORS enabled resource.
- Image Dimension: Use of of the following sizes: 525x100px, 525x200px or 525x300px.
- File Type: JPG, JPEG, PNG or GIF.
- Max File Size: 100KB.
- Video File Specification
- API needs https hosted Video URL. CORS enabled resource.
- File Type: mp4. Playable in HTML VIDEO Tag.
- Image Banner Specification
- A Title. It appears below the Space for Banner/Video.
- This is required.
- Maximum 100 Characters.
- A Description. It appears below Title.
- This is optional.
- Maximum 256 Characters.
- A Click-Thru URL. This is optional. If used, it will be used to make Image Banner and Title clickable. If clicked, the URL will be opened in a new Tab.
For Session Page
- A Small Banner. This is placed at the top bar next to the Logo. If you look to place banner, this is required.
- API needs https hosted Image URL. CORS enabled resource.
- Image Dimension: 320x45px.
- File Type: JPG, JPEG, PNG or GIF.
- Max File Size: 50KB.
- A Big Banner: This is optional. It is always used with the Smaller Banner. If used, it appears as a pull-down banner on mouse-over on the Small Banner.
- API needs https hosted Image URL. CORS enabled resource.
- Image Dimension: 320x320px.
- File Type: JPG, JPEG, PNG or GIF.
- Max File Size: 100KB.
- A Click-Thru URL. This is optional. If used, it will be used to make the Banners clickable. If clicked, the URL will be opened in a new Tab.
To set branding options and edit them anyway, you need to call the following API. Always use the whole Payload that you need to remain effective. So, subsequent call to the same API will overwrite previous definitions.
- API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/branding
- HTTP Request: POST
Headers Explanation:
Content-Type
:multipart/form-data
X-App-Type
:vc
,wb
JSON Payload:
{ "login": { "banner": "{https hosted url for banner image}", "video_file": "{https hosted url for video file}", "video_embed": "{embed code for video}", "headline": "{title / headline}", "desc": "{description}", "target_url": "{click-thru url}" }, "session": { "banner_small": "{https hosted url for small banner image}", "banner_big": "{https hosted url for big banner image}", "target_url": "{click-thru url}" } }
Raw Body JSON Payload Explanation:
Object/Key | Data Type | Required | Description |
login | Object | Required | This object defines branding options for the Login / Landing Page. |
login .banner | String | Optional | Image Banner. Specify https hosted public URL, must be CORS enabled. Can’t be used with video_file and video_embed . |
login.video_file | String | Optional | Video File. Specific https hosted public URL, must be CORS enabled. Can’t be used with banner and video_embed . |
login.video_embed | String | Optional | Video Embed Code e.g. Youtube Video Embed Code. Can’t be used with banner and video_file . |
login.headline | String | Required | Title or headline. |
login.desc | String | Optional | Descriptive Text. |
login.target_url | String | Optional | Click-Thru URL. |
session | Object | Optional | This object defines Branding Options for the Video Session Page |
session.banner_small | String | Required | Small Image Banner. Specify https hosted public URL, must be CORS enabled. This is required if session object is being used in the payload. |
session.banner_big | String | Optional | Big Image Banner. Specify https hosted public URL, must be CORS enabled. |
session.target_url | String | Optional | Click-Thru URL. |
Response Example:
{ "result": 1, "branding": { "login": { "banner": "{https hosted url for banner image}", "video_file": "{https hosted url for video file}", "video_embed": "{embed code for video}", "headline": "{title / headline}", "desc": "{description}", "target_url": "{click-thru url}" }, "session": { "banner_small": "{https hosted url for small banner image}", "banner_big": "{https hosted url for big banner image}", "target_url": "{click-thru url}" } } }
Error Codes
Code | Description |
---|---|
1000 | Room is not active |
1601 | Meeting Date Time must be in future |
1602 | Meeting Date Time: Format YYYY-MM-DD (In UTC) |
1603 | Meeting Date Time is required |
1611 | Meeting Title is reqruied |
1612 | Meeting Title: Minimum 3 Characters |
1613 | Meeting Title: Maximum 50 Characters |
1615 | No active Meeting Subscription |
1616 | No active Webinar Subscription |
1617 | Not assigned with Meeting License |
1618 | Not assigned with Webinar License |
1621 | Description filed is required |
1631 | Meeting Duration is required |
1632 | Meeting Duration: Minimum 10 Minutes |
1633 | Meeting Duration: Exceeded permissible duration |
1634 | Meeting Duration: In number of minutes |
1641 | Moderator count is required |
1642 | Moderator Count: Minimum 1 |
1643 | Moderator Count: Must not exceed room size |
1644 | Moderator Count: In Number |
1651 | Participant count is required |
1652 | Participant Count: Minimum 0 |
1653 | Participant Count: Must not exceed room size |
1654 | Participant Count: In Number |
1672 | Auto Recording: In Boolean (true, false) |
1681 | Timezone is required |
1683 | Timezone id required |
1684 | Invalid Timezone ID |
1685 | Invalid Timezone ID |
1686 | Invalid Timezone ID |
1691 | Invalid Timezone ID |
1692 | Send Email: In Boolean (true, false) |
1693 | Wait for Moderator: In Boolean (true, false) |
1694 | Knock: In Boolean (true, false) |
1695 | Invitees: In Array |
1696 | Invitee Email Addresses: In Array |
1697 | Invitee Contact IDs: In Array |
1698 | Invitee Group IDs: In Array |
1901 | Reset MPIN: In Boolean (true, false) |
1902 | Reset PPIN: In Boolean (true, false) |
1903 | MPIN and PPIN are required |
2402 | Message field is required |
2403 | Image field is required |
2404 | Audio field is required |
2405 | Video field is required |
2412 | The Image option must be an array |
2421 | The video option must be an array |
2422 | Message text is required if message is used for lobby |
2423 | The options field is required. To choose from text, audio and video. |
2432 | Message text min: 5 characters |
2433 | Message text max: 100 characters |
2435 | Image caption must be a string |
2438 | Video url must be a string |
2453 | The url format should be a valid url string |
2501 | Page length filter must be passed with an integer |
2603 | The selected order by is invalid |
2604 | The selected order qualify is invalid |
2605 | The Selected Search is invalid |
2606 | The search string field is required when search by is present |
2608 | Page number must be a number |
3011 | Old password and new password cannot be the same |
4201 | Invalid password reset token or reset code |