Table of Contents

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 have application/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 have application/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/KeyData TypeRequiredDescription
room_nameStringOptionalName of the Room
descStringOptionalDescriptive text on Room/Meeting
moderatorsNumberOptionalNumber of moderators needed on call
participantsNumberOptionalNumber of participants needed on call
wait_for_moderatorBooleanOptionalWhether to wait for Moderator to join
first to get into a Session
knockBooleanOptionalWhether to enable moderated entry into
the session for participants
auto_recordingBooleanOptionalWhether 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 have application/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/KeyData TypeRequiredDescription
reset_ppinBooleanOptionalTo reset Participant PIN
reset_mpinBooleanOptionalTo 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 have application/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/KeyData TypeRequiredDescription
user_idStringOptionalIt must be user under the company.
If given, meeting to be scheduled under this user.
The user must be under the account.
room_nameStringRequiredName of the Room
descStringOptionalDescriptive text on Room/Meeting
start_timeRequiredYYYY-MM-DD HH:ii:ss in UTC
timezone_idRequired
durationRequiredDuration of the meeting
moderatorsNumberRequiredNumber of moderators needed on call
participantsNumberRequiredNumber of participants needed on call
wait_for_moderatorBooleanOptionalWhether to wait for Moderator to join first
to get into a Session
knockBooleanOptionalWhether to enable moderated entry into the
session for participants
auto_recordingBooleanOptionalWhether to enable auto-recording of the Session
send_mailBooleanOptionalWhether to send out emails with Access Info
inviteesObjectOptionalArray 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 have application/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/KeyData TypeRequiredDescription
room_nameStringOptionalName of the Room
descStringOptionalDescriptive text on Room/Meeting
start_timeOptionalYYYY-MM-DD HH:ii:ss in UTC
timezone_idOptional
durationOptionalDuration of the meeting
moderatorsNumberOptionalNumber of moderators needed on call
participantsNumberOptionalNumber of participants needed on call
wait_for_moderatorBooleanOptionalWhether to wait for Moderator to join
first to get into a Session
knockBooleanOptionalWhether to enable moderated entry
into the session for participants
auto_recordingBooleanOptionalWhether to enable auto-recording of the Session
send_mailBooleanOptionalWhether to send out emails with Access Info
inviteesObjectOptionalArray 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 have application/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 have application/json to notify that the body content is in JSON.
  • X-App-Type: vc, wb

Raw Body JSON Payload Explanation:

Object/KeyData TypeRequiredDescription
pageNumberOptionalData return requested for the Page. Default 1.
page_lengthNumberOptionalTotal Records to include in a page. Default 10.
search_byStringOptionalRequired 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_stringStringOptionalRequired with search_by.
stageStringOptional“upcoming”, “current”, “past”
order_byStringOptionalDatabase field names.
order_qualifyStringOptionalDefault “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 have application/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 have application/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/KeyData TypeRequiredDescription
optionsObjectRequiredWhat type of Lobby to define.
You can set one amongst the 4 options as true.
options.messagesBooleanOptionalSet it to true if you want “text messages” to
show as slideshow on lobby. Along with “messages”,
you can define background audio also.
options.imageBooleanOptionalSet it to true if you want “image slideshow”
to show as slideshow on lobby. Along with
“images”, you can define background audio also.
options.audioBooleanOptionalSet it to true if you want “background audio”
to play on lobby.
options.videoBooleanOptionalSet it to true if you want “video” to play on lobby.
messageArray of ObjectOptionalRequired with options.message:true.
It contains array of multiple text messages.
imageArray of ObjectOptionalRequired with options.image:true.
It contains array of multiple image file
or image URL with caption.
audioArray of ObjectOptionalRequired 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.
videoArray of ObjectOptionalRequired 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/KeyData TypeRequiredDescription
optionsObjectRequiredWhat type of Lobby to define.
You can set one amongst the 4 options as true.
options.messagesBooleanOptionalSet it to true if you want “text messages” to show
as slideshow on lobby. Along with “messages”,
you can define background audio also.
options.imageBooleanOptionalSet it to true if you want “image slideshow”
to show as slideshow on lobby. Along with
“images”, you can define background audio also.
options.audioBooleanOptionalSet it to true if you want “background audio”
to play on lobby.
options.videoBooleanOptionalSet it to true if you want “video” to play on lobby.
messageArray of ObjectOptionalRequired with options.message:true.
It contains array of multiple text messages.
imageArray of ObjectOptionalRequired with options.image:true.
It contains array of multiple image file
or image URL with caption.
audioArray of ObjectOptionalRequired 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.
videoArray of ObjectOptionalRequired 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 have application/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"
  }
}

Get Polled Data

This API is used to responses of polls in a Meeting Room.

  • API Route: https://api.enablex.io/ucaas/v1/polls/{{$ROOM_ID}} – Get Poll data for all Video Sessions in a Meeting Room
  • API Route: https://api.enablex.io/ucaas/v1/polls/{{$ROOM_ID}} ?conf_num={{CONF_NUM}}- Get Poll data for a given Video Sessions in a Meeting Room
  • HTTP Request: GET

Headers Explanation:

  • Content-Type: To have application/json to notify that the body content is in JSON.
  • X-App-Type: vc, wb

Query String Parameters:

  • conf_num – Conference Number for the Session. To receive Polled Data for specific session.

Response Example:

{
    "result": 1,
    "polls": {
        "{{$poll_id}}": {
            "conf_num": Number,
            "timestamp": Number,
            "duration": String,
            "type": "String",	/* Enumerated Data: MCQ1=1-Answer, MCQN=Multi-Answer */
            "question": "String",
            "options": {
                "opt1": "String",
                "opt2": "String",
                "opt3": "String"
            },
            "status": "P",		/* Enumerated Data: P=Polled, D=Draft */
            "result": {
                "opt1": Number,		/* Total Responses of Opt-1 */
                "opt2": Number,
                "opt3": Number
            },
            "total_result": Number,	/* Overall responponders */
            "id": Number		/* Poll-ID */
        } 
    },
    "msg": "String"
}

Error Codes

CodeDescription
1000Room is not active
1601Meeting Date Time must be in future
1602Meeting Date Time: Format YYYY-MM-DD (In UTC)
1603Meeting Date Time is required
1611Meeting Title is reqruied
1612Meeting Title: Minimum 3 Characters
1613Meeting Title: Maximum 50 Characters
1615No active Meeting Subscription
1616No active Webinar Subscription
1617Not assigned with Meeting License
1618Not assigned with Webinar License
1621Description filed is required
1631Meeting Duration is required
1632Meeting Duration: Minimum 10 Minutes
1633Meeting Duration: Exceeded permissible duration
1634Meeting Duration: In number of minutes
1641Moderator count is required
1642Moderator Count: Minimum 1
1643Moderator Count: Must not exceed room size
1644Moderator Count: In Number
1651Participant count is required
1652Participant Count: Minimum 0
1653Participant Count: Must not exceed room size
1654Participant Count: In Number
1672Auto Recording: In Boolean (true, false)
1681Timezone is required
1683Timezone id required
1684Invalid Timezone ID
1685Invalid Timezone ID
1686Invalid Timezone ID
1691Invalid Timezone ID
1692Send Email: In Boolean (true, false)
1693Wait for Moderator: In Boolean (true, false)
1694Knock: In Boolean (true, false)
1695Invitees: In Array
1696Invitee Email Addresses: In Array
1697Invitee Contact IDs: In Array
1698Invitee Group IDs: In Array
1901Reset MPIN: In Boolean (true, false)
1902Reset PPIN: In Boolean (true, false)
1903MPIN and PPIN are required
2402Message field is required
2403Image field is required
2404Audio field is required
2405Video field is required
2412The Image option must be an array
2421The video option must be an array
2422Message text is required if message is used for lobby
2423The options field is required. To choose from text, audio and video.
2432Message text min: 5 characters
2433Message text max: 100 characters
2435Image caption must be a string
2438Video url must be a string
2453The url format should be a valid url string
2501Page length filter must be passed with an integer
2603The selected order by is invalid
2604The selected order qualify is invalid
2605The Selected Search is invalid
2606The search string field is required when search by is present
2608Page number must be a number
3011Old password and new password cannot be the same
4201Invalid password reset token or reset code