UCaaS API Routes

The UCaaS API provides the following Collections & Routes:

Provisioning Access API

The Provisioning Access APIs are covers creation of OAUTH2 Access Token and other APIs needed before accessing Portal e.g. Password Reset Options etc.

Supported Authentication Mechanism

The Provisioning Access API supports two types of authentication mechanisms: HTTP Basic Authentication and OAuth2. You can choose a mechanism that best suits your needs.

  • HTTP Basic Authentication: For authenticating the server-to-server API calls where each API call is validated through the authentication header. This mechanism suits best to integrate EnableX with the server-side code. The API access credentials must be saved on the server and used for server-to-server calling. For more information, see Authentication.

  • OAuth2: For authenticating the client-to-server API calls with limited access token. Applictaion developers must call a "Login" route to obtain the access token that will be used for subsequent API calls. As the access token expires in 20 minutes, developers must call the "Login" route again to obtain a fresh access token for subsequent API access. For more information, see Authentication.

Get Access Token

This API returns an access token and user information for a specified user's access credentials using which other APIs that support OAuth2 can be called. The access token expires in 15 minutes from the time it is created. Therefore, another access token must be created before calling other APIs.

This API call does not require access credentials.

  • API Route: https://api.enablex.io/ucaas/v1/login
  • HTTP Request: POST

Example Request

POST https://api.enablex.io/ucaas/v1/login
Content-Type: application/json
X-Api-Id: String
{
"email": "[email protected]",
"password": "XOXO"
}

Explanation of Headers

  • Content-Type: application/json. Indicates that the request body format is JSON.
  • X-Api-Id: API Access ID. Get this information from the EnableX portal.

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
emailStringRequiredEmail of the user trying to access the API.
passwordStringRequiredPassword of the user trying to access the API.

Example Response

{
"result": 1,
"token": "String",
"user": {
"user_id": "",
"user_type": "",
"user_type_desc": "",
"email": "",
"first_name": "",
"middle_name": "",
"last_name": "",
"profile_pic": "",
"company": {
"company_id": "Object ID",
"company_name": "String",
"company_legal_name": "String"
},
"apps": {
"vc": {
"access": "Boolean",
"status": "String",
"wef": "Date"
},
"wb": {
"access": "Boolean",
"status": "String",
"wef": "Date"
}
},
"timezone": {
"timezone_id": "",
"zone_name": "",
"zone_abbr": "",
"time_start": "",
"gmt_offset": "",
"is_dst": ""
},
"last_login_time": "",
"profile_domain": ""
}
}

Explanation of Response (for important objects and keys only)

Object/KeyDescription
tokenThis is the access token for accessing the Provisioning API. Use this token in the Authorization Header of the API call.
user.user_idUnique ID of the logged-in user.
user.user_typeString Constants, Enumerated values are:
user.user_type_descString. Full description of user.user_type.
apps.vcObject. Provides information about whether the user has access to the meeting or video conference application
apps.wbObject. Provides information about whether the user has access to the webinar application.

Note: All date and time data in the response are in the UTC format.

This API provides a Password Reset link. This link is sent to the registered email address of a user if the user has forgotten password. To reset the password, the user must follow the instructions provided in the email.

This API call does not require access credentials.

  • API Route: https://api.enablex.io/ucaas/v1/password
  • HTTP Request: POST

Example Request

POST `https://api.enablex.io/ucaas/v1/password`
Content-Type: `application/json`
X-Api-Id: String
{ "email": "[email protected]"
}

Explanation of Headers

  • Content-Type: application/json. Indicates that the request body format is JSON.
  • X-Api-Id: API Access ID. Get this information from the EnableX portal.

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
emailStringRequiredRegistered email of the user who is trying to obtain the Password Reset link.

Example Response

{ "result": 1
"data": {
"email": "[email protected]",
"msg": "An email has been set to user@yourdomain with instructions to reset the password."
}
}

Validate Password Reset Key

This API validates the Password Reset key and obtains the user information to reset the user's password.

This API call does not require access credentials.

  • API Route: https://api.enablex.io/ucaas/v1/password/{{$RESET_KEY}}
  • HTTP Request: POST

Example Request

PATCH https://api.enablex.io/ucaas/v1/password/{{$RESET_KEY}}
Content-Type: `application/json`
X-Api-Id: String

Explanation of Headers

  • Content-Type: application/json. Indicates that the request body format is JSON.
  • X-Api-Id: API Access ID. Get this information from the EnableX portal.

Explanation of URL Placeholder

PlaceholderDescription
RESET_KEYThe Reset key sent to the user's registered email.

Example Response

{ "result": 1
"data": {
"email": "[email protected]",
"user_id": "",
"first_name": "",
"middle_name": "",
"last_name": ""
}
}

Reset Password

This API resets a user's password with a Reset key. The Reset Key is delivered to the user's registered email address with instructions to reset the password. For more information, see Get Password.

This API call does not require access credentials.

  • API Route: https://api.enablex.io/ucaas/v1/password/{{$RESET_KEY}}
  • HTTP Request: POST

Example Request

PATCH https://api.enablex.io/ucaas/v1/password/XOXOXO
Content-Type: `application/json`
X-Api-Id: String
{ "email": "[email protected]",
"password": "",
"password_retyped": ""
}

Explanation of Headers

  • Content-Type: application/json. Indicates that the request body format is JSON.
  • X-Api-Id: API Access ID. Get this information from the EnableX portal.

Explanation of URL Placeholder

PlaceholderDescription
RESET_KEYThis is the Rest key sent to the registered email of the user.

Explanantion of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
emailStringRequiredEmail of the user trying to reset. This email must match the email used for getting the Reset key.
passwordStringRequiredType the new password.
password_retypedStringRequiredRetype the new password.

Example Response

{ "result": 1
"data": {
"email": "[email protected]",
"msg": "Your account password has been reset."
}
}

Video Session Access API

Use the Video Session APIs for accessing Video Meeting and Webinar sessions and in-session tools.

Join a Session

Use this API to authenticate a PIN for a meeting room. If the user is authenticated, the API provides the user access to the video meeting. This API call does not require access credentials.

API Accessibility: Any user joining the call as a host or a participant.

  • API Route: https://api.enablex.io/ucaas/v1/session/join
  • HTTP Request: POST Request Example:
POST https://api.enablex.io/ucaas/v1/sessions/join
Content-Type: application/json
X-Api-Id: String
{
"pin": "String",
"name": "string",
"user_ref": "string"
}

Explanation of Headers

  • Content-Type: application/json. Indicates that the request body format is JSON.
  • X-Api-Id: API Access ID. Get this information from the EnableX portal.

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
pinStringRequiredEither the host/moderator PIN or the participant PIN.
nameStringRequiredName of the user.
user_refStringRequiredThe user identifier data.

Example Response

{
"result": 1,
"token": "String",
"user": {
"meeting_id": "String",
"customer_id": "String",
"room_id": "String",
"role": "String",
"user_id": "String",
"first_name": "String",
"middle_name": "String",
"last_name": "String",
"email": "String",
"profile_pic": "String"
}
}

Explanation of Response (only for important objects and keys)

Object/KeyDescription
tokenToken to join a video session.
user.meeting_idMeeting ID.
user.customer_idCustomer ID for which the meeting/usage will be accounted.
user.room_idVideo Room ID.
user.roleRole of the user, either the moderator or a participant.
user.user_idHost/Moderator ID.
user.first_nameFirst name of the user.
user.middle_nameMiddle name of the user.
user.last_nameLast name of the user.
user.emailEmail address of the user.
user.profile_picURL of the user's profile picture.

Error Codes

Error CodeDescription
2101The PIN field is required if room ID is not present.
2107The PIN must be between 6 to 10 characters.

Invite Others to Join An Ongoing Session

Use this API to invite others by email to join an ongoing session. The email is sent with the Participant PIN and a direct URL to join the session.

API Accessibility: Any user joining the call as a host or a participant.

  • API Route: https://api.enablex.io/ucaas/v1/sessions/invite
  • HTTP Request: POST

Example Request

POST POST https://api.enablex.io/ucaas/v1/sessions/invite
Content-Type: application/json
X-Api-Id: String
{ "pin": "String",
"room_id": "String",
"meeting_id": "String",
"invitees": [ "String" ]
}

Explanation of Headers

  • Content-Type: application/json. Indicates that the request body format is JSON.
  • X-Api-Id: API Access ID. Get this information from the EnableX portal.

Explanation of Raw Body JSON Payload

Note: One of these is required: pin or room_id or meeting_id.

Object/KeyData TypeRequiredDescription
pinStringOptionalParticipant PIN.
meeting_idStringOptionalMeeting ID of the current session.
room_idStringOptionalRoom ID of the current session.
inviteesArrayRequiredArray of email addresses.

Example Response

{
"result": 1,
"desc": "Invitation email has been sent."
}

Error Codes

Error CodeDescription
2101The PIN field is required if room ID is not present.
2107The PIN must be between 6 to 10 characters.
2207Array of email addresses of the invitees is required.
2208The invitees must passed as an array.
2209At least one email invite is required.

Get Branding Information

Use this API to get branding information for a domain, customer, and against a meeting setup.

  • If the API is called only with the domain name, the domain specific branding information is returned.

  • If the API is called with Customer ID, the branding information is overwritten by the customization done at the customer level.

  • If the API is called with Meeting ID, then the branding information is overwritten by the customization done at the meeting level.

  • API Route: https://api.enablex.io/ucaas/v1/branding

  • HTTP Request: GET

Example Request (With Domain)

GET https://api.enablex.io/ucaas/v1/branding/?domain={{$DOMAIN}}
Content-Type: application/json
X-Api-Id: String

Explanation of Headers

  • Content-Type: application/json. Indicates that the request body format is JSON.
  • X-Api-Id: API Access ID. Get this information from the EnableX portal.

Query String Variables

Note: You can use any variable or all variables in single API call. Ensure that at least one variable is used in Query String.

Object/KeyData TypeRequiredDescription
domainStringOptionalThe host domain name of the meeting application.
customer_idStringOptionalCustomer ID of the domain owner.
meeting_idStringOptionalMeeting ID of the current session.

Example Response for Video Meeting Application

{
"result": 1,
"vc": {
"enabled": true,
"name": "String",
"url": "String",
"logo": "String",
"logo_inner": "String",
"logo_icon": "String",
"favicon": "String",
"desc": "String",
"exit_url": "String",
"copyright": "String",
"login_page": {
"heading": "String",
"content": "String"
},
"fields": [
{
"label": "String",
"type": "String",
"length": "Number",
"required": "Boolean",
"id": "Boolean",
"order": "Number",
"messages": {
"required": "String",
"email": "String"
}
}
],
"email": {
"from_email": "String",
"from_name": "String",
"replyto_email": "String",
"template": "String"
},
"tos": {
"enabled": "Boolean",
"terms_url": "String",
"privacy_url": "String"
},
"credits": {
"enabled": "Boolean",
"name": "String",
"logo_url": "String",
"target_url": "String"
},
"options": {
"live_streaming": "Boolean",
"screenshare": "Boolean",
"whiteboard": "Boolean"
},
"api": {
"referrer_check": "Boolean",
"referrer_domain": "String",
"user_ref_check": "Boolean"
}
}
}

Explanation of Response (For important objects and keys only)

Object/KeyDescription
vcThis object is displayed for the video meeting application.
wbThis object is displayed for the webinar application.

Note: Both vc and wb objects are displayed if the same domain is used for webinar and video meeting.

Customer Management API

Use the Customer Management APIs for adding new customers, and for listing, searching, editing, and deleting existing customers.

These APIs support two access mechanisms: HTTP Basic Authentication and OAuth2. Choose the mechanism that best suits your needs. In most cases, codes are shown with the OAuth2 access token.

Get Customer Information

Use this API to obtain customer information for a given Customer Id.

  • API Route: https://api.enablex.io/ucaas/v1/customers/{{$CUSTOMER_ID}}
  • HTTP Request: GET
  • Access Mechanism: HTTP Basic Authentication, OAauth2
  • Role Based Accessibility
    • Reseller: Can access customer information under the reseller.
    • Admin/Tenant: Can access information of resellers and customers.

Request Example (OAuth2):

GET https://api.enablex.io/ucaas/v1/customers/{{$CUSTOMER_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Request Example (HTTP Basic Authentication)

GET https://api.enablex.io/ucaas/v1/customers/{{$CUSTOMER_ID}}
Content-Type: `application/json`
Authorization: Basic BASE64_AUTH_STRING

Explanation of Headers

  • Content-Type: application/json : Indicates that the request body format is JSON.
  • Authorization: Contains the token access information for authentication.

Explanation of URL Placeholder

PlaceholderDescription
CUSTOMER_IDThis is the Customer ID.

Example Response

{
"result": 1,
"customer": {
"customer_id": "String",
"customer_name": "String",
"customer_legal_name": "String",
"customer_code": "String",
"customer_type": "String",
"customer_type_ex": "String",
"individual": "Boolean",
"contact_name": "String",
"contact_email": "String",
"status": "String",
"status_ex": "String",
"office_address": {
"address_1": "String",
"address_2": "String",
"address_3": "String",
"city": "String",
"state": "String",
"country": "String",
"zipcode": "String",
"country_id": "String"
},
"billing_address": {
"address_1": "String",
"address_2": "String",
"address_3": "String",
"city": "String",
"state": "String",
"country": "String",
"zipcode": "String",
"country_id": "String"
},
"track": {
"added": "Date",
"modified": "Date",
"activated": "Date",
"suspended": "Date",
"closed": "Date"
}
}
}

Explanation of Response (For important objects and keys)

Object/KeyDescription
customerObject. This object carries customer information.
customer.customer_codeString. Enum: T, P, R, A
customer.customer_type_exString. Customer Code explained. T=Tenant/Entity, P=Customer, R=Reseller, A=Affiliate
customer.statusString. Enum: A, S, C, U
customer.status_exString. Status code explained. A=Active, S=Suspended, C=Closed, U=Unverified
customer.office_addressObject. This object carries offie address of the customer.
customer.billing_addressObject. This object carries billing address of the customer.

Note: All date and time data in the response are in the UTC format.

Search and get a list of Customers

Use this API to get a paginated list of customers. The API provides various filtering and sorting options.

  • API Route: https://api.enablex.io/ucaas/v1/customers
  • HTTP Request: GET
  • Access Mechanism: HTTP Basic Authentication, OAauth2
  • Filters & Sorting: Options passed as a query string to the API route.
  • Role Based Accessibility
    • Reseller: Can access customer information under the reseller.
    • Admin/Tenant: Can access information of resellers and customers.

Example Request (OAuth2) A simple call to get the first page of the customer list.

GET https://api.enablex.io/ucaas/v1/customers
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Request Example (OAuth2): Request with Paging, Filter and Sorting Options as Query String

GET https://api.enablex.io/ucaas/v1/customers?page={{$PAGE_NUM}}&search_by=status&search_string=A
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Explanation of URL Query String Variable

VariableDescription
pageNumber. Optional. Default is 1. Data return requested for the page.
page_numNumber. Optional. Default is 10. Total records to include in a page.
from_join_dtDate. Optional. Format: YYYY-MM-DD. Filter for the join start date.
to_join_dtDate. Optional. Format: YYYY-MM-DD. Filter for the join end date.
search_byString. Optional. Required if search_string is used. Use any of the enumerated values: customer_name, customer_legal_name, customer_code, individual (true to search individual sign-ups; false to sign-up corproates), status (A=Active, S=Suspended, C=Closed, U=Unverified)
search_stringString. Required with search_by
order_byString. Optional. Field names of the database. Multiple names can be added as comma-separated.
order_qualifyString. Optional. Default is "asc". Enumerated values: asc, desc

Example Response

{
"result": 1,
"search": {
"page": "Number",
"page_length": "Number",
"from_join_dt": "Date",
"to_join_dt": "Date",
"search_by": "String",
"search_string": "String",
"order_by": "String",
"order_qualify": "String"
},
"customers": [
{
"customer_id": "String",
"customer_name": "String",
"customer_legal_name": "String",
"customer_code": "String",
"customer_type": "String",
"customer_type_ex": "String",
"individual": "Boolean",
"contact_name": "String",
"contact_email": "String",
"status": "String",
"status_ex": "String",
"office_address": {
"address_1": "String",
"address_2": "String",
"address_3": "String",
"city": "String",
"state": "String",
"country": "String",
"zipcode": "String",
"country_id": "String"
},
"billing_address": {
"address_1": "String",
"address_2": "String",
"address_3": "String",
"city": "String",
"state": "String",
"country": "String",
"zipcode": "String",
"country_id": "String"
},
"track": {
"added": "Date",
"modified": "Date",
"activated": "Date",
"suspended": "Date",
"closed": "Date"
}
}
]
}

Explanation of Response (For important objects and keys)

Object/KeyDescription
searchObject. Contains all filter and sort options to get the results.
customersArray of Objects. Each object carries information about a customer.
customers[n].customer_codeString. Enum: T, P, R, A
customers[n].customer_type_exString.Customer Code explained. T=Tenant/Entity, P=Customer, R=Reseller, A=Affiliate
customers[n].statusString.Enum: A, S, C, U
customers[n].status_exString.Status Code explained. A=Active, S=Suspended, C=Closed, U=Unverified
customers[n].office_addressObject. This object carries offie address of the customer.
customers[n].billing_addressObject. This object carries billing address of the customer.

Note: All date and time data in the response is in the UTC format.

Add a New Customer

Use this API to add a new customer.

  • API Route: https://api.enablex.io/ucaas/v1/customers

  • HTTP Request: POST

  • Access Mechanism: HTTP Basic Authentication, OAauth2

  • Role Based Accessibility

    • Reseller: Has access to add new customers under the reseller.
    • Admin/Tenant: Has access to add new customers or resellers under the tenant.

Request Example (OAuth2):

POST https://api.enablex.io/ucaas/v1/customers
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
{
"customer_name": "String",
"customer_legal_name": "String",
"customer_code": "String",
"individual": "Boolean",
"contact_name": "String",
"contact_email": "String",
"office_address": {
"address_1": "String",
"address_2": "String",
"address_3": "String",
"city": "String",
"state": "String",
"country": "String",
"zipcode": "String",
"country_id": "String"
},
"billing_address": {
"address_1": "String",
"address_2": "String",
"address_3": "String",
"city": "String",
"state": "String",
"country": "String",
"zipcode": "String",
"country_id": "String"
}
}

Explanation of JSON Payload

Object/KeyDescription
customer_nameString. Required. Name of the customer.
customer_legal_nameString. Required. Legal Entity name.
customer_codeString. Optional. Code, ID or Reference from external information system.
individualBoolean. Optional. Default: false. true for individual; and false for corporate registrations
contact_first_nameString. Required. First name of the contact person.
contact_last_nameString. Optional. Last name of the contact person.
contact_emailString. Required. Email address of the contact person.
office_addressObject. Required. Object keys are self explanatory.
office_address.address_1String. Required.
office_address.address_2String. Optional.
office_address.address_3String. Optional.
office_address.cityString. Required.
office_address.stateString. Optional.
office_address.country_idString. Required. ID to be taken from the country list. For more information, see Get Countries.
office_address.zipcodeString. Optional
billing_addressObject. Optional. Keys are similar to office_address. If omitted, the office_address object is replicated.

Example Response

{
"result": 1,
"msg": "$customer_name has been added.",
"customer": {
"customer_id": "String",
"customer_name": "String"
},
"portal_access": {
"url": "String",
"username": "String",
"password": "String"
}
}

Explanation of Response (only for important objects and keys)

Object/KeyDescription
resultNumber. 1=Success
msgA text message explaining the successful transaction.
customerObject. It contains key information of the new customer.
customer.customer_idString. Unique ID of the customer.
customer.customer_nameString. Name of the customer.
portal_accessObject. Portal access information.
portal_access.urlString. URL of the EnableX portal.
portal_access.usernameString. Login credential of the portal: Username.
portal_access.passwordString. Login credential of the portal: Password.

Edit Customer Information

Use this API to edit customer information. All keys in the JSON payload are optional. Use only the key that you want to edit.

  • API Route: https://api.enablex.io/ucaas/v1/customers/{{$CUSTOMER_ID}}
  • HTTP Request: PATCH
  • Access Mechanism: HTTP Basic Authentication, OAauth2
  • Role Based Accessibility
    • Reseller: Has access to add new customers under the reseller.
    • Admin/Tenant: Has access to add new customers or resellers under the tenant.

Request Example (OAuth2)

PATCH https://api.enablex.io/ucaas/v1/customers/{{$CUSTOMER_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
{
"customer_name": "String",
"customer_legal_name": "String",
"customer_code": "String",
"individual": "Boolean",
"contact_name": "String",
"contact_email": "String",
"office_address": {
"address_1": "String",
"address_2": "String",
"address_3": "String",
"city": "String",
"state": "String",
"country": "String",
"zipcode": "String",
"country_id": "String"
},
"billing_address": {
"address_1": "String",
"address_2": "String",
"address_3": "String",
"city": "String",
"state": "String",
"country": "String",
"zipcode": "String",
"country_id": "String"
},
"timezone_id": "String"
}

Explanation of JSON Payload

Object/KeyDescription
customer_nameString. Required. Name of the customer.
customer_legal_nameString. Required. Name of legal entity.
customer_codeString. Optional. Code, ID, or reference from the external information system.
individualBoolean. Optional. Default: false. True for individual and false for corporate registrations.
contact_first_nameString. Required. First name of the contact person.
contact_last_nameString. Optional. Last name of the contact person.
contact_emailString. Required. Email address of te contact person.
office_addressObject. Required. Object keys are self explanatory.
office_address.address_1String. Required.
office_address.address_2String. Optional.
office_address.address_3String. Optional.
office_address.cityString. Required.
office_address.stateString. Optional.
office_address.country_idString. Required. ID to be used from the country list. For more information, see Get Countries.
office_address.zipcodeString. Optional.
billing_addressObject. Optional. Keys are similar to office_address. If omitted, theoffice_address object is replicated.
timezone_idString. Required. ID to be taken from Timezone List. For more information, see Get Time Zones.

Example Response

{
"result": 1,
"msg": "$customer_name has been updated.",
"customer": {
"customer_id": "String",
"customer_name": "String"
}
}

Response Explanation (only for important objects and keys)

Object/KeyDescription
resultNumber. 1=Success
msgString. A text message explaining the successful transaction.
customerObject. It contains key information of the new customer.
customer.customer_idString. It contains the Unique ID of the customer.
customer.customer_nameString. Name of the customer.

Error Codes

Error CodeDescription
1301Customer name is required
1302Customer name must be a string.
1306Customer legal name must be a string
1307Customer type is required ( P:Partner, R:Reseller, T: Top).
1308The selected customer type is invalid.
1312Boolean: True for Individual and false for corporate registrations. Default is false.
1322Contact Name must be a string.
1331Contact email is required.
1332Contact email must not be greater than 100 characters.
1333Contact email must always be unique. A previously used contacte mail cannot be used again.
1334Contact email must be a string.
1341The Office address object is required.
1342Office address 1 is required.
1343Office address 1 must be a string.
1344Office address 2 is optional. Must be passed as a string.
1345Office address 3 is optional. Must be a string.
1353Office address city is Required
1354Office address city must be a string.
1355Office address country ID is required. Select the country Id from the country list.
1356Office address state must be a string.
1371Billing Address 1 must be a string.
1372Billing Address 2 must be a string.
1373Billing Address 3 must be a string.
1380Billing Address city must be string.
1381Billing Address state must be a string.
1391Selected status is invalid.
1404Subscription ID is required.
1405Subscription ID must be a string.
1408Access mail in boolean (true or false).

Subscription Management API

Use this API for adding new subscriptions, and for listing and updating existing subscriptions.

Get Subscription Information

Use this API to get information about a specific Subscription ID.

  • API Route: https://api.enablex.io/ucaas/v1/subscriptions/{{$SUBSCRIPTION_ID}}
  • HTTP Request: GET
  • Role Based Accessibility:
    • Reseller Admin: Can access the subscription of any customer under the reseller.
    • EnableX Admin: Can access the subscription of any customer under EnableX.

Request Example (OAuth2):

GET https://api.enablex.io/ucaas/v1/subscriptions/{{$SUBSCRIPTION_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Example Response

{
"result": 1,
"subscription": {
"subscription_id": "String",
"customer_id": "String",
"plan_id": "String",
"app_const": "String",
"plan_name": "String",
"settings": {
"recording": "Boolean",
"audio_only": "Boolean",
"audio_video": "Boolean",
"participants": "Integer",
"duration": "Integer",
"stream_qlty": "String",
"record_qlty": "String"
},
"subscription": {
"base": "String",
"base_ex": "String",
"trial": "Boolean",
"allow_meeting_overlap": "Boolean",
"prepaid": "Boolean",
"postpaid": "Boolean",
"subsxn_date": "Date",
"expiry_date": "String",
"currency": "String",
"status": "String",
"status_ex": "String"
},
"features": {
"screenshare": "Boolean",
"whiteboard": "Boolean",
"livestreaming": "Boolean"
},
"user_license": {
"qty": "Number",
"unit_price": {
"currency": "Float"
},
"total_price": {
"currency": "Float"
}
},
"connect": {
"price": {
"currency": "Float"
}
},
"records": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
},
"download": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
},
"storage": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
}
}
}

Get the Subscription List

Use this API to get a list of all the subscriptions.

  • API Route: https://api.enablex.io/ucaas/v1/subscriptions?page={{$PAGE_NUM}}
  • HTTP Request: GET
  • Role Based Accessibility:
  • Reseller Admin: Can access the subscription of any customer under reseller.
  • EnableX Admin: Can access the subscription of any customer under EnableX.
  • Reseller Customer, EnableX Direct Customer: Can access own subscription information only.

Request Example (OAuth2):

GET https://api.enablex.io/ucaas/v1/subscriptions?page={{$PAGE_NUM}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Explanation of Query String Parameters

Object/KeyData TypeRequiredDescription
pageNumberOptionalData return requested for the page.
page_lengthNumberOptionalTotal records to include in a page.
from_subxn_dtDateOptionalFilter for subscription start date.
to_subxn_dtDateOptionalFilter for subscription join date.
from_expiry_dtDateOptionalFilter for subscription expiry start date.
to_expiry_dtDateOptionalFilter for join subscription expiry date.
search_byStringOptionalRequired if "search_string" is used. Use any of the enumerated values:
  • customer_id
  • app: Application Constants.
Enum: wb, vc (wb=Webinar, VC=Meeting)
  • plan_id
  • status: Status codes A, X (A=Active, X=Expired)
  • base: Selling Base
Code: UL, UB (UL=User License, UB=Usage)
search_stringStringOptionalRequired with search_by.
order_byStringOptionalNames of database fields.
order_qualifyStringOptionalDefault "asc". Enumerated values: asc, desc.

Example Response

{
"result": 1,
"search": {
"page": "Number",
"page_length": "Number",
"customer_id": "Number",
"from_subxn_dt": "Date",
"to_subxn_dt": "Date",
"from_ex[oru_dt": "Date",
"to_expiry_dt": "Date",
"search_by": "String",
"search_string": "String",
"order_by": "String",
"order_qualify": "String"
},
"subscriptions": [
{
"subscription_id": "String",
"customer_id": "String",
"plan_id": "String",
"app_const": "String",
"plan_name": "String",
"settings": {
"recording": "Boolean",
"audio_only": "Boolean",
"audio_video": "Boolean",
"participants": "Integer",
"duration": "Integer",
"stream_qlty": "String",
"record_qlty": "String"
},
"subscription": {
"base": "String",
"base_ex": "String",
"trial": "Boolean",
"allow_meeting_overlap": "Boolean",
"prepaid": "Boolean",
"postpaid": "Boolean",
"subsxn_date": "Date",
"expiry_date": "String",
"currency": "String",
"status": "String",
"status_ex": "String"
},
"features": {
"screenshare": "Boolean",
"whiteboard": "Boolean",
"livestreaming": "Boolean"
},
"user_license": {
"qty": "Number",
"unit_price": {
"currency": "Float"
},
"total_price": {
"currency": "Float"
}
},
"connect": {
"price": {
"currency": "Float"
}
},
"records": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
},
"download": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
},
"storage": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
}
}
]
}

Add a New Subscription

Use this API to add a new customer.

  • API Route: https://api.enablex.io/ucaas/v1/subscriptions

  • HTTP Request: POST

  • Role Based Accessibility:

    • EnableX Admin: Can access the subscription of any customer under EnableX.

Request Example (OAuth2):

POST https://api.enablex.io/ucaas/v1/subscriptions
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
{
"customer_id": "String",
"plan_id": "String",
"room_type": "String",
"title": "String",
"subscription": {
"unit_price": "float",
"no_of_license": "Number",
"allow_meeting_overlap": "Boolean",
"payment_cycle": "String",
"payment_mode": "String",
"po": "String",
"prepaid": "Boolean",
"subsxn_date": "Date"
}
}

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
customer_idStringRequiredCustomer ID
plan_idStringRequiredPlan ID
subscriptionObjectRequiredTo define the subscription settings.
allow_meeting_overlapBooleanOptionalTo allow scheduling of an overlapped meeting.
Payment_modeStringOptionalF for offline, O for online. Default is F.
subxn_dateStringRequiredFormat: YYYY-MM-DD
No_of_licenseNumberRequiredNumber of user-license purchased.
unit_priceFloatOptionalUnit price of a user license.
poStringOptionalPurchase Order

Example Response

{
"result": 1,
"msg": "#customer_name has subscribed to plan: #plan_name (For #app). User license: #qty.",
"subscription": {
"subscription_id": "String",
"customer_id": "String",
"customer_name": "String",
"plan_id": "String",
"plan_name": "String",
"qty": "Number"
}
}

Update a Subscription

Use this API to update the Plan Subscription information. All keys in the JSON payload are optional. Use only the key that you want to edit.

  • API Route: https://api.enablex.io/ucaas/v1/subscriptions/{{$SUBSCRIPTION_ID}}
  • HTTP Request: PATCH
  • Role Based Accessibility:
    • EnableX Admin: Can access the subscription of any customer under EnableX.

Request Example (OAuth2):

PATCH https://api.enablex.io/ucaas/v1/subscriptions/{{$SUBSCRIPTION_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
{
"subscription": {
"status": "String"
}
}

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
subscriptionObjectOptionalTo define the subscription settings.
subscription.statusStringOptionalOptional Enum: A, X, S (A=Active, X=Expired, S=Suspended)

Example Response

{
"result": 1,
"msg": "Subscription information for #customer_name is updated for plan: #plan_name (For #app).",
"subscription": {
"subscription_id": "String",
"customer_id": "String",
"customer_name": "String",
"plan_id": "String",
"plan_name": "String",
"qty": "Number"
}
}

Error Codes

Error CodeDescription
1201Customer ID is required.
1202Customer ID must be a valid string.
1211Plan ID is required.
1212Plan ID must be a valid string.
1220An invalid Subscription ID is used. Use a valid Subscription ID.
1221The subscription field is required.
1228Allow meeting to be overlapped with other meetings: Boolean True or False.
1229Subscription must be an array.
1230Subscription status must be a valid string.
1231Subscription status is invalid.
1232Prepaid is a boolean value (True: Prepaid Subscription).
1234Customer ID is invalid. Use a valid customer ID.
1254Number of user licenses must be in integers.
1256User license price must be stated. Minimum price is 1, maximum price is 100000.
1260License is not assigned. Assign a license.
1261License is already assigned.
1325Plan ID is invalid. Use a valid Plan ID.
1326Room type is required.
1329The subscription date must be future-dated.

User Management API

Use the User Management APIs for the performing user management tasks such as adding users, listing users, updating user information, and revoking application licenses from users.

Add a User

Use this API to add a new user.

  • API Route: https://api.enablex.io/ucaas/v1/users
  • HTTP Request: POST
  • Role Based Accessibility:
    • Reseller Admin: Can access users under the reseller and all customers under it.
    • EnableX Admin: Can access users of any reseller/customer under EnableX.
    • Customer: Can access own user base.

Example Request (OAuth2)

POST https://api.enablex.io/ucaas/v1/users
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN
{
"user_type": "String",
"first_name": "String",
"middle_name": "String",
"last_name": "String",
"email": "String",
"password": "String",
"status": "String",
"department": "String",
"designation": "String",
"send_welcome_mail": "Boolean"
}

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
user_typeStringRequiredEnumerated Values. Check application data.constant.php (AP).
first_nameStringRequiredFirst name.
middle_nameStringOptionalMiddle name.
last_nameStringOptionalLast name.
emailStringRequiredEmail must be unique.
passwordStringOptionalIf not passed, the password is automatically generated.
statusStringOptionalEnum. Check data.constant.php. If not passed, set it to active (A: Active, S: Suspend)
departmentStringOptionalName of the company that the user is affiliated with.
designationStringOptionalDesignation of the user at the aforementioned company.
send_welcome_mailBooleanOptionalIf true, send a mail with login details to the user.

Example Response (Success)

{
"result": "Number",
"user": {
"user_id": "Number",
"name": "String"
}
}

Edit a User

Use this API to update the contact information of users. All keys in the JSON payload are optional. Use only the key that you want to edit.

  • API Route: https://api.enablex.io/ucaas/v1/users/{{$USER_ID}}
  • HTTP Request: PATCH
  • Role Based Accessibility:
    • Reseller Admin: Can access users under the reseller and all customers under it.
    • EnableX Admin: Can access users of any reseller/customer under EnableX.
    • Customer: Can access own user base.

Example Request (OAuth2)

PATCH https://api.enablex.io/ucaas/v1/users/{{$USER_ID}}
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN
{
"user_type": "String",
"first_name": "String",
"middle_name": "String",
"last_name": "String",
"status": "String",
"designation": "String"
}

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
first_nameStringOptionalFirst Name
middle_nameStringOptionalMiddle Name
last_nameStringOptionalLast Name
statusStringOptionalEnum. Check data.constant.php.
departmentStringOptional
designationStringOptional

Example Response

{
"result": "Number",
"msg": "User $first_name $middle_name $last_name has been updated",
"user": {
"user_id": "Number",
"name": "Sting"
}
}

Get User Information

Use this API to get information for a specific User ID.

  • API Route: https://api.enablex.io/ucaas/v1/users/{{$USER_ID}}
  • HTTP Request: GET
  • Role Based Accessibility:
  • Reseller Admin: Can access users under the reseller and all customers under it.
  • EnableX Admin: Can access users of any reseller/customer under EnableX. -Customer: Can access own user base.

Example Response

GET https://api.enablex.io/ucaas/v1/users/{{$USER_ID}}
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN

Example Response

{
"result": 1,
"user": {
"user_id": "String",
"user_type": "String",
"first_name": "String",
"middle_name": "String",
"last_name": "String",
"email": "String",
"status": "String",
"designation": "String",
"department": "String",
"vc": {
"access": "Boolean",
"status": "String",
"wef": "Date"
},
"wb": {
"access": "Boolean",
"status": "String",
"wef": "Date"
},
"created_at": "Date",
"updated_at": "Date",
"activated_at": "Date",
"suspended_at": "Date"
}
}

Get User List

Use this API to search or get a list of all the users.

  • API Route: https://api.enablex.io/ucaas/v1/users, https://api.enablex.io/ucaas/v1/users?page={{$PAGE_NUM}}
  • HTTP Request: GET
  • Role Based Accessibility:
  • Reseller Admin: Can access users under the reseller and all customers under it.
  • EnableX Admin: Can access users of any reseller/customer under EnableX.
  • Customer: Can access own user base.

Example Request (HTTP Basic Authentication)

GET https://api.enablex.io/ucaas/v1/users, https://api.enablex.io/ucaas/v1/users?page={{$PAGE_NUM}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING

URL Placeholder Explanation:

Object/KeyDescription
pageData return requested for a page. Default is 1.
page_lengthTotal number of records to include in a page. Default is 10.
from_create_dtFrom Create Date Filter
to_create_dtTo create a date filter.
search_byRequired if "search_string" is used. Use any of the enumerated values:
  • first_name: To search on first_name field
  • last_name: To search on last_name field
  • email: To search on email field
  • status: To search by status constants
  • user_type: To search by user-type constants
  • vc: Boolean. To search for users with meeting access.
  • wb: Boolean. To search for users with webinar access.
search_stringRequired with search_by.
order_byField names of the database.
order_qualifyDefault "asc". Enumerated values: asc, desc.

Example Response

{
"result": 1,
"search": {
"page": "Number",
"page_length": "Number",
"from_create_dt": "Date",
"to_create_dt": "Date",
"search_by": "String",
"search_string": "String",
"order_by": "String",
"order_qualify": "String"
},
"users": [
{
"user_id": "String",
"user_type": "String",
"first_name": "String",
"middle_name": "String",
"last_name": "String",
"email": "String",
"status": "String",
"designation": "String",
"department": "String",
"vc": {
"access": "Boolean",
"status": "String",
"wef": "Date"
},
"wb": {
"access": "Boolean",
"status": "String",
"wef": "Date"
},
"created_at": "Date",
"updated_at": "Date",
"activated_at": "Date",
"suspended_at": "Date"
}
]
}

Assign an Application License to a User

Use this API to assign an application license, that is, a Subscription ID to a user to allow the user to access the application.

  • API Route: https://api.enablex.io/ucaas/v1/users/{{$USER_ID}}

  • HTTP Request: PATCH

  • Role Based Accessibility:

  • Reseller Admin: Can access users under the reseller and all customers under it.

  • EnableX Admin: Can access users of any reseller/customer under EnableX.

  • Customer: Can access own user base.

Example Request (HTTP Basic Authentication)

PATCH https://api.enablex.io/ucaas/v1/users/{{$USER_ID}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-License: assign
{
"app": "String",
"subscription_id": "String",
"send_access_mail": "Boolean"
}

Explanation of Headers

  • X-License: assign

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
appStringRequiredEnumerated Values: vc, wb
subscription_idStringRequiredObject ID of the subscription to be assigned.
send_access_mailBooleanIf true, send an email to the user with the permanent room ID.

Example Response

{
"result": "Number",
"msg": "The user $first_name $middle_name $last_name has been provided access to the meeting application.",
"user": {
"user_id": "Number",
"name": "Sting",
"access": {
"app": "String",
"url": "String",
"ppin": "String",
"mpin": "String"
}
}
}

Revoke Application License From Users

Use this API to remove an application license from a user to restrict the user from using the application.

  • API Route: https://api.enablex.io/ucaas/v1/users/{{$USER_ID}}
  • HTTP Request: PATCH
  • Role Based Accessibility:
  • Reseller Admin: Can access users under the reseller and all customers under it.
  • EnableX Admin: Can access users of any reseller/customer under EnableX.
  • Customer: Can access own user base.

Example Request (HTTP Basic Authentication)

PATCH https://api.enablex.io/ucaas/v1/users/{{$USER_ID}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-License: revoke
{
"app": "String"
}

Explanation of Headers

  • X-License: revoke

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
appStringRequiredEnumerated Values: vc, wb

Example Response

{
"result": "Number",
"msg": "The user $first_name $middle_name $last_name has been revoked access to the meeting application.",
"user": {
"user_id": "Number",
"name": "Sting",
"access": {
"app": "String"
}
}
}

Error Codes

Error CodeDescription
1103The email has already been used. Specify a different email address, which is unique.
1105The email is a valid email.
1106The selected email is invalid.
1111The first name is required.
1112First name must be a string.
1115Middle name must be a string.
1119Last name must be a string.
1121The user password must be a string.
1131Status must be a string (A: Active, S: Suspended).
1141Department must be a string.
1145Designation must be a string.
1152User type must be string (AP : User).
1153The User type entered is invalid.
1161Send Welcome email is Boolean (True: send email with login details).
1191Status is invalid.

Meeting Management API

Use this API for for fetching different details about meeting rooms and managing meeting rooms.

Get Permanent Room Information

Use this API to get information about a permanent meeting room.

  • API Routes
    • https://api.enablex.io/ucaas/v1/meeting/permanent - To get own permanent meeting room information
    • https://api.enablex.io/ucaas/v1/meeting/permanent/{{$USER_ID}} - To get permanent meeting room information for the specified user
  • HTTP Request: GET

Example Request (HTTP Basic Authentication)

GET https://api.enablex.io/ucaas/v1/meeting/permanent
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc
{
"app": "String"
}

Headers Explanation

  • X-App-Type: vc, wb

Example Response

{
"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 Information

Use this API to update information for a permanent meeting room. The API updates the information if room-id specified in the URL is for self or any user under it.

  • API Route: https://api.enablex.io/ucaas/v1/meetings/permanent/{{$ROOM_ID}}
  • HTTP Request: PATCH

Example Request (HTTP Basic Authentication)

PATCH https://api.enablex.io/ucaas/v1/meeting/permanent/{{$ROOM_ID}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc
{
"room_name": "String",
"desc": "String",
"moderators": "Number",
"participants": "Number",
"wait_for_moderator": "Boolean",
"knock": "Boolean",
"auto_recording": "Boolean"
}

Explanation of Headers

  • X-App-Type: vc, wb

Explanation of dynamic URL

  • ROOM_ID: Room ID to update

Explanation of Raw Body JSON Payload

All data fields are optional while updating. Use only those fields which you look to update.

Object/KeyData TypeRequiredDescription
room_nameStringOptionalName of the Room
`desc`StringOptionalDescriptive text on the room or 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

Example Response

{
"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

Use this API to reset Access PINs, either the moderator PIN or the participant PIN or both, as required. The permanent room pins are reset if 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

Example Request (HTTP Basic Authentication)

PATCH https://api.enablex.io/ucaas/v1/meeting/permanent/{{$ROOM_ID}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc
X-Action: reset-pins
{
"reset_mpin": Boolean
"reset_ppin": Boolean
}

Explanation of dynamic URL

  • ROOM_ID: Room ID to update

Explanation of Headers

  • X-Action: reset-pins
  • X-App-Type: vc, wb

Explanation of Raw Body JSON Payload

All data fields are optional. Use only those fields that you need to update.

Object/KeyData TypeRequiredDescription
reset_ppinBooleanOptionalTo reset a participant PIN.
reset_mpinBooleanOptionalTo reset a moderator PIN.

Example Response

{
"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 a Meeting

Use this API to schedule a meeting.

  • API Route: https://api.enablex.io/ucaas/v1/meetings
  • HTTP Request: POST

Example Request

POST https://api.enablex.io/ucaas/v1/meeting
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc
{
"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"
]
}
}

Explanation of Headers

  • X-App-Type: vc, wb

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
user_idStringOptionalIt must be user under the company. If given, the meeting will be scheduled under this user. The user must be under the account.
room_nameStringRequiredName of the room.
descStringRequiredDescriptive text on the room or the meeting.
start_timeYYYY-MM-DD HH:ii:ss in UTC.RequiredStart time of the meeting.
timezone_idStringRequired
durationNumericRequiredDuration of the meeting.
moderatorsNumberRequiredNumber of moderators needed on the call.
participantsNumberRequiredNumber of participants needed on the call.
wait_for_moderatorBooleanOptionalWhether to wait for the 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 information.
inviteesObjectOptionalArray of Contact IDs, Group IDs, and Email. Addresses to whom email will be sent.

Example Response

{
"result": 1,
"msg": "The 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

Use this API to edit the meeting information. The meeting information is updated if room-id specified in the URL is for own or any user under it.

  • API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}
  • HTTP Request: PATCH

Example Request

PATCH https://api.enablex.io/ucaas/v1/meeting/{{$MEETING_ID}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc
{
"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"
}
]
}
}

Explanation of dynamic URL

  • MEETING_ID: Meeting ID to edit

Explanation of Headers

  • X-App-Type: vc, wb

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
room_nameStringOptionalName of the Room
descStringOptionalDescriptive text on the room or the meeting.
start_timeOptionalYYYY-MM-DD HH:ii:ss in UTC.
timezone_idOptionalDuration of the meeting.
durationOptional
moderatorsNumberOptionalNumber of moderators needed on the call.
participantsNumberOptionalNumber of participants needed on the call.
wait_for_moderatorBooleanOptionalWhether to wait for the moderator to join first to get into a session.
knockBooleanOptionalWhether to enable moderated entry into the session for the participants.
auto_recordingBooleanOptionalWhether to enable auto-recording of the session.
send_mailBooleanOptionalWhether to send out emails with access information.
inviteesObjectOptionalArray of Contact IDs, Group IDs, or email addresses to whom email will be sent.

Example Response

{
"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

Use this API to get meeting information for a specific Meeting ID.

  • API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}
  • HTTP Request: GET

Example Request

PATCH https://api.enablex.io/ucaas/v1/meeting/{{$MEETING_ID}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc

Explanation of dynamic URL

  • MEETING_ID: Meeting ID to edit

Explanation of Headers

  • X-App-Type: vc, wb

Example Response

{
"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 a List of Meetings

Use this API to get a list of meetings scheduled, which are current, upcoming, or have happened in the past.

  • API Routes
    • https://api.enablex.io/ucaas/v1/meetings
    • https://api.enablex.io/ucaas/v1/meetings?page={{$PAGE_NUM}}
  • HTTP Request: GET

Example Request

GET https://api.enablex.io/ucaas/v1/meetings?page={{$PAGE_NUM}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc

Explanation of Headers

  • X-App-Type: vc, wb

Explanation of Query String Parameters

Object/KeyData TypeRequiredDescription
pageNumberOptionalData return requested for the page. Default is 1.
page_lengthNumberOptionalTotal records to include in a page. Default is 10.
search_byStringOptionalRequired if "search_string" is used. Use any of the enumerated values:
  • mpin: On MPIN field
  • ppin: On PPIN field
  • user_id: On a specific user
search_stringStringOptionalRequired with search_by.
stageStringOptional"upcoming", "current", "past"
order_byStringOptionalField names of the database.
order_qualifyStringOptionalDefault "asc". Enumerated values: asc, desc.

Example Response

{
"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 a Meeting

Use this API to cancel or delete a meeting for a specified Meeting ID.

  • API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}
  • HTTP Request: DELETE

Example Request

DELETE https://api.enablex.io/ucaas/v1/meeting/{{$MEETING_ID}}
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc

Explanation of dynamic URL

  • MEETING_ID: Meeting ID to delete

Explanation of Headers

  • X-App-Type: vc, wb

Example Response

{ "result": 1,
"msg": "The meeting has been cancelled.".
"event": {
"meeting_id": "String",
"room_id": "String ",
"user_id": "Strig",
"room_name": "String "
}

Get Meeting Lobby Information

Use this API to get lobby information for a specific Meeting ID.

  • API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/lobby
  • HTTP Request: GET

Example Request

GET https://api.enablex.io/ucaas/v1/meeting/{{$MEETING_ID}}/lobby
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc

Explanation of dynamic URL

  • MEETING_ID: Meeting ID for which lobby infomration is sought

Explanation of Headers

  • X-App-Type: vc, wb

Example Response

{
"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

Use this API to add lobby information to a meeting.

  • API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/lobby
  • HTTP Request: POST

Example Request

POST https://api.enablex.io/ucaas/v1/meeting/{{$MEETING_ID}}/lobby
Content-Type: multipart/form-data
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc
{
"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"
}
]
}

Explanation of dynamic URL

  • MEETING_ID: Meeting ID to which lobby infomration to be added

Explanation of Headers

  • Content-Type: multipart/form-data
  • X-App-Type: vc, wb

Explanation of Raw Body JSON Payload

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 the lobby. Along with "messages", you can also define the background audio.
options.imageBooleanOptionalSet it to true if you want "image slideshow" to show as slideshow on the lobby. Along with "images", you can also define the background audio.
options.audioBooleanOptionalSet it to true if you want "background audio" to play on the lobby.
options.videoBooleanOptionalSet it to true if you want "video" to play on the lobby.
messageArray of ObjectOptionalRequired with options.message:true. It contains an array of multiple text messages.
imageArray of ObjectOptionalRequired with options.image:true. It contains an array of multiple image files.
audioArray of ObjectOptionalRequired with options.audio:true. It contains an array of multiple audio files (.mp3) or audio file URLs. Currently, only one audio file upload is supported. However, you need to maintain this array structure.
videoArray of ObjectOptionalRequired with options.video:true. It contains an array of multiple video file URLs (.mov). Currently, only one video file is suported. However, you need to maintain this array structure.

Example Response

{
"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

Use this API to update the lobby information for a meeting.

  • API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/lobby
  • HTTP Request: PATCH

Example Request

PATCH https://api.enablex.io/ucaas/v1/meeting/{{$MEETING_ID}}/lobby
Content-Type: multipart/form-data
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc
{
"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"
}
]
}

Explanation of dynamic URL

  • MEETING_ID: Meeting ID to which lobby infomration to be updated

Explanation of Headers

  • Content-Type: multipart/form-data
  • X-App-Type: vc, wb

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
optionsObjectRequiredDefine the type of the lobby. 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 also define the background audio.
options.imageBooleanOptionalSet it to true if you want "image slideshow" to show as slideshow on lobby. Along with "images", you can also define the background audio.
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 files or image URLs with caption.
audioArray of ObjectOptionalRequired with options.audio:true. It contains array of multiple audio files (.mp3) or audio file URL. Currently, only one audio file upload is supported. However, you need to maintain this array structure.
videoArray of ObjectOptionalRequired with options.video:true. It contains array of multiple video file URLs (.mov). Currently, only one video file upload is supported. However, you need to maintain this array structure.

Example Response

{
"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

Use this API to delete the lobby information for a meeting.

  • API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/lobby
  • HTTP Request: DELETE

Example Request

DELETE https://api.enablex.io/ucaas/v1/meeting/{{$MEETING_ID}}/lobby
Content-Type: application/json
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc

Explanation of dynamic URL

  • MEETING_ID: Meeting ID to which lobby infomration to be deleted

Explanation of Headers

  • X-App-Type: vc, wb

Example Response

{
"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 the branding information for the login or landing page and/or for the 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 them. However, this is optional.
    • Image Banner Specification
      • Image URL: Provide an https hosted URL of the image that you want to use. A CORS-enabled resource.
      • Image Dimension: Use one of the following sizes: 525x100px, 525x200px, or 525x300px.
      • File Type: Use one of the following file types: JPG, JPEG, PNG, or GIF.
      • Max File Size: The maximum allowed size of the image file is 100 KB.
    • Video File Specification
      • Image URL: Provide an https hosted URL of the video that you want to use. A CORS-enabled resource.
      • File Type: Use one of the following file types: MP4, which is playable in the HTML VIDEO tag.
  • A Title: It is displayed below the space for banner/video.
    • It is required.
    • It must not exceed 100 characters.
  • A Description: It is displayed below the title.
    • This is optional.
    • It must not exceed 256 characters.
  • A Click-Thru URL: This is optional. If specified, it is used to make the image banner and title clickable. When the image banner and title are clicked, a new tab is opened.

For Session Page

  • A Small Banner. It is placed at the top bar next to the logo. If you look to place a banner, then this is required.
    • Image URL: Provide an https hosted URL of the image. A CORS-enabled resource.
    • Image Dimension: Use this size: 320x45px.
    • File Type: Use one of the following file types: JPG, JPEG, PNG, or GIF.
    • Max File Size: The maximum allowed size of the image file is 50 KB.
  • 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 smaller banner.
    • Image URL: Provide an https hosted URL of the image. A CORS-enabled resource.
    • Image Dimension: Use this size: 320x320px.
    • File Type: Use one of the following file types: JPG, JPEG, PNG, or GIF.
    • Max File Size: The maximum allowed size of the image file is 100 KB.
  • A Click-Thru URL. This is optional. If used, it is used to make the banner clickable. If clicked, the URL is opened in a new tab.

To set the branding options and edit them, you need to call the following API:

  • API Route: https://api.enablex.io/ucaas/v1/meetings/{{$MEETING_ID}}/branding
  • HTTP Request: POST

Always use the entire payload that you need to remain effective. So, the subsequent call to the same API overwrites the previous definitions.

Example Request

POST https://api.enablex.io/ucaas/v1/meeting/{{$MEETING_ID}}/branding
Content-Type: multipart/form-data
Authorization: Basic BASE64_AUTH_STRING
X-App-Type: vc
{
"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}"
}
}

Explanation of dynamic URL

  • MEETING_ID: Meeting ID to which branding infomration to be added

Explanation of Headers

  • Content-Type: multipart/form-data
  • X-App-Type: vc, wb

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
loginObjectRequiredThis object defines the branding options for the login or landing pages.
login.bannerStringOptionalImage Banner. Specify the https hosted public URL of the image file, which must be CORS-enabled. It cannot be used with video_file and video_embed.
login.video_fileStringOptionalVideo File. Specific the https hosted public URL of the video file, which must be CORS-enabled. It cannot be used with banner and video_embed.
login.video_embedStringOptionalVideo Embed Code. For example, Youtube Video Embed Code. It cannot be used with banner and video_file.
login.headlineStringRequiredTitle or headline.
login.descStringOptionalDescriptive text.
login.target_urlStringOptionalClick-thru URL.
sessionObjectRequiredThis object defines branding options for the Video Session page.
session.banner_small`StringRequiredSmall image banner. Specify the https hosted public URL of the image file, which must be CORS-enabled.
session.banner_bigStringRequiredBig Image Banner. Specify the https hosted public URL of the image file, which must be CORS-enabled.
session.target_urlStringOptionalClick-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

Error CodeDescription
1000Room is not active.
1601Meeting Date Time must be future-dated.
1602Meeting Date Time: Format YYYY-MM-DD (In UTC)
1603Meeting Date Time is required.
1611Meeting Title is reqruied.
1612Meeting Title accepts a minimum of 3 characters.
1613Meeting Title accepts a maximum of 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 accepts a minimum of 10 minutes.
1633Meeting Duration exceeded the permissible duration.
1634Meeting Duration accepts values in number of minutes.
1641Moderator count is required.
1642Moderator Count accepts a minimum value of 1.
1643Moderator Count must not exceed the room size.
1644Moderator Count accepts values in numbers.
1651Participant count is required.
1652Participant Count accepts a minimum value of 0.
1653Participant Count must not exceed the room size.
1654Participant Count must be in numbers.
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 accepts a Boolean (true, false) value.
1693Wait for the moderator accepts a Boolean (true, false) value.
1694Knock accepts a Boolean (true, false) value.
1695Invitees must be an array.
1696Invitee Email Addresses must be an array.
1697Invitee Contact IDs must be an array.
1698Invitee Group IDs must be an array.
1901Reset MPIN must be a Boolean (true, false) value.
1902Reset PPIN must be a Boolean (true, false) value.
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 accepts a minimum of 5 characters.
2433Message text accepts a maximum of 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.
3011The old password and the new password cannot be the same.
4201Invalid password reset token or reset code.

Contact Management API

Use the Contact Management APIs for adding new contacts, and for listing, searching, editing, and deleting existing contacts or contact groups.

Add a Contact

Use this API to add a new contact.

  • API Route: https://api.enablex.io/ucaas/v1/contacts
  • HTTP Request: POST
  • Accessibility:
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Example Request (OAuth2)

POST `https://api.enablex.io/ucaas/v1/contacts`
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
{
"group_ids": [
"OBJECT_ID_OF GROUP"
],
"name": "String",
"email": "String",
"company": "String",
"designation": "String",
"shared": "Boolean"
}

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
group_idsArrayOptionalArray of Group-Ids with which the new contact is to be linked.
nameStringRequiredFull name of the contact.
emailStringRequiredEmail id of the contact. The email id must be unique in the user's contact list.
companyStringOptionalName of the contact's company.
designationStringOptionalDesignation of the contact.

Example Response

{
"result": 1,
"msg": "$name has been added to the contact list.",
"contact": {
"contact_id": "String",
"name": "String"
}
}

Edit a Contact

Use this API to update the profile of a contact.

  • API Route: https://api.enablex.io/ucaas/v1/contacts/{{$CONTACT_ID}}
  • HTTP Request: PATCH = Accessibility:
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

PATCH https://api.enablex.io/ucaas/v1/contacts/{{$CONTACT_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
{
"name": "String",
"email": "String",
"company": "String",
"designation": "String",
"shared": "Boolean"
}

Explanation of dynamic URL

  • CONTACT_ID: Contact ID to edit

Explanation of Raw Body JSON Payload

All data fields are optional while updating a contact. Use only those fields which you want to update.

Object/KeyData TypeRequiredDescription
nameStringOptionalFull name of the contact.
emailStringOptionalEmail id of the contact. The email id must be unique in the user's contact list.
companyStringOptional
designationStringOptional

Example Response

{
"result": 1,
"msg": "Information for $name has been updated.",
"contact": {
"contact_id": "String",
"name": "Sting"
}
}

Get Contact Information

This API is used to get information of a given Contact ID

  • API Route: https://api.enablex.io/ucaas/v1//contacts/{{$CONTACT_ID}}
  • HTTP Request: GET
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

GET https://api.enablex.io/ucaas/v1/contacts/{{$CONTACT_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Explanation of dynamic URL

  • CONTACT_ID: Contact ID to get

Example Response

{
"result": 1,
"contact": {
"contact_id": "String",
"name": "String",
"email": "String",
"company": "String",
"designation": "String",
"created_at": "Date",
"updated_at": "Date"
}
}

Get Contact Listing

Use this API to search or get listing of all the contacts.

  • API Routes
    • https://api.enablex.io/ucaas/v1/contacts
    • https://api.enablex.io/ucaas/v1/contacts?page={{$PAGE_NUM}}
  • HTTP Request: GET
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

GET https://api.enablex.io/ucaas/v1/contacts?page={{$PAGE_NUM}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Explanation of Query String Parameters:

Object/KeyData TypeRequiredDescription
pageNumberOptionalData return requested for the page. The default is 1.
page_lengthNumberOptionalTotal records to include in a page. Default is 10.
search_byStringOptionalRequired if "search_string" is used. Use any of the enumerated values:
  • name: On name field
  • email: On email field
  • company: On company field
  • designation: On designation field
search_stringStringOptionalRequired with search_by.
order_byStringOptionalField names of the database.
order_qualifyStringOptionalDefault "asc". Enumerated values: asc, desc.

Example Response

{
"result": 1,
"search": {
"page": "Number",
"page_length": "Number",
"search_by": "String",
"search_string": "String",
"order_by": "String",
"order_qualify": "String"
},
"contacts": [
{
"contact_id": "String",
"name": "String",
"email": "String",
"company": "String",
"designation": "String",
"created_at": "Date",
"updated_at": "Date"
}
]
}

Delete a Contact

Use this API to delete a contact of a given Contact ID.

  • API Route: https://api.enablex.io/ucaas/v1/contact/{{$CONTACT_ID}}
  • HTTP Request: DELETE
  • Accessibility:
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

DELETE https://api.enablex.io/ucaas/v1/contacts/{{$CONTACT_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Explanation of dynamic URL

  • CONTACT_ID: Contact ID to delete

Example Response

{
"result": 1,
"msg": "$name has been deleted from the contact list.",
"contact": {
"contact_id": "String",
"name": "String"
}
}

Add a Contact Group

This API is used to add a new contact group.

  • API Route: https://api.enablex.io/ucaas/v1/contact-groups
  • HTTP Request: POST
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

POST https://api.enablex.io/ucaas/v1/contact-groups
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
{
"group_name": "String"
}

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
group_nameStringRequiredGroup name.

Example Response

{
"result": 1,
"msg": "Group $group_name has been added.",
"group": {
"group_id": "String",
"group_name": "String"
}
}

Edit a Contact Group

Use this API to update the information of a contact group.

  • API Route: https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
  • HTTP Request: PATCH
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

PATCH https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
{
"group_name": "String"
}

Explanation of dynamic URL

  • GROUP_ID: Contact Group ID to edit

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
group_nameStringRequiredGroup name.

Example Response

{
"result": 1,
"msg": "Group $group_name has been updated.",
"contact": {
"group_id": "String",
"group_name": "Sting",
"created_at": "Date",
"updated_at": "Date"
}
}

Get Information of a Contact Group

Use this API to get information about a particular Group ID.

  • API Route: https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
  • HTTP Request: GET
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

GET https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Explanation of dynamic URL

  • GROUP_ID: Contact Group ID to get

Example Response

{
"result": 1,
"group": {
"group_id": "String",
"group_name": "String",
"contacts": [
{
"contact_id": "String",
"name": "String",
"added_at": "Date"
}
]
}
}

Get Contact Group Listing

Use this API to search or list all contact groups.

  • API Routes
    • https://api.enablex.io/ucaas/v1/contact-groups
    • https://api.enablex.io/ucaas/v1/contact-groups?page={{$PAGE_NUM}}
  • HTTP Request GET
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

GET https://api.enablex.io/ucaas/v1/contact-groups?page={{$PAGE_NUM}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Explanation of Query String Parameters

Object/KeyData TypeRequiredDescription
pageNumberOptionalData return requested for the page. Default is 1.
page_lengthNumberOptionalTotal number of records to include in a page. Default is 10.
search_byStringOptionalRequired if "search_string" is used.
search_stringStringOptionalRequired with search_by.
order_byStringOptionalField names of the database.
order_qualifyStringOptionalDefault "asc". Enumerated values: asc, desc.

Example Response

{
"result": 1,
"search": {
"page": "Number",
"page_length": "Number",
"search_by": "String",
"search_string": "String",
"order_by": "String",
"order_qualify": "String"
},
"groups": [
{
"group_id": "String",
"group_name": "String",
"created_at": "Date",
"updated_at": "Date"
}
]
}

Delete Contact Group

This API is used to delete a given contact Group.

  • API Route: https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
  • HTTP Request: DELETE
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

DELETE https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN

Explanation of dynamic URL

  • GROUP_ID: Contact Group ID to get

Example Response

{
"result": 1,
"msg": "Group $name has been deleted",
"group": {
"group_id": "String",
"group_name": "String"
}
}

Add a Contact to a Group

Use this API to add new contacts to a group.

  • API Route: https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
  • HTTP Request: PATCH
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

PATCH https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
X-License: add-contact
{
"contact_ids": [
"String"
]
}

Explanation of dynamic URL

  • GROUP_ID: Contact Group ID to get

Explanation of Headers

  • X-License: add-contact

Explanation of Raw Body JSON Payload

Object/KeyData TypeRequiredDescription
contact_idsObject IDsRequiredArray of Contact IDs to be added to a group.

Example Response

{
"result": 1,
"msg": "#Total Contacts are added to the Group $group_name.",
"group": {
"group_id": "String",
"group_name": "String",
"contacts": [
{
"contact_id": "String",
"name": "String",
"added_at": "Date"
}
]
}
}

Delete a Contact from a Contact Group

use this API to delete contacts from a Contact Group.

  • API Route: https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
  • HTTP Request: PATCH
  • Accessibility
    • Reseller Admin
    • EnableX Admin
    • Customer
    • User

Request Example (OAuth2):

PATCH https://api.enablex.io/ucaas/v1/contact-groups/{{$GROUP_ID}}
Content-Type: `application/json`
Authorization: Token ACCESS_TOTKEN
X-License: delete-contact
{
"contact_ids": [
"String"
]
}

Explanation of dynamic URL

  • GROUP_ID: Contact Group ID to get

Explanation of Headers

  • X-License: delete-contact

Explanation of Raw Body JSON Payload

Object/KeyDataType RequiredDescription
contact_idsObject IDsRequiredArray of Contact IDs to be deleted from a group.

Example Response

{
"result": 1,
"msg": "#Total contacts are deleted to the Group $group_name.",
"group": {
"group_id": "String",
"group_name": "String",
"contacts": [
{
"contact_id": "String",
"name": "String",
"added_at": "Date"
}
]
}
}

Error Codes

Error CodeDescription
1701Group IDs must be specified in the form of an array.
1702The group IDs array must have at least one item in it.
1711Name is required.
1712Name must contain a minimum of 3 characters.
1713Name can contain a maximum 50 characters.
1714Name must be a string.
1721This email ID already exists. Use a different email ID.
1722Email ID must be a valid email address.
1723Email ID must be a valid string.
1724Email field is required.
1725Email can have a maximum of 100 characters.
1731Company name must be a string.
1732Company name does not accept more than 100 characters.
1733Company name must have at least 5 characters.
1741Designation must be a string.
1742Designation does not accept more than 100 characters.
1743Designation must have at least 5 characters.
1802Group name must have at least 3 characters.
1803Group name must be less than 100 characters.
1804Group name must be a string.
1805This group name has already been used. Enter a different name for the group.
1810The group name must be unique and not used.
1811Contact IDs are required to add contacts to a contact group.
1812Contact IDs must be specified in the form of an array.
1818An invalid group ID is used.

Datapool API

The Datapool APIs provide you access to different types of master databases, which are used in other API calls for fetching information about time zones, countries, billing plans, and so on.

Get Time Zones

Use this API to get a list of all time zones.

  • API Route: https://api.enablex.io/ucaas/v1/timezones
  • HTTP Request: GET
  • Access Mechanism: HTTP Basic Authentication, OAauth2
  • Role Based Accessibility: All

Example Request (OAuth2)

GET https://api.enablex.io/ucaas/v1/timezones
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN

Example Response

{
"result": 1,
"timezones": [
{
"timezone_id": "String",
"zone_name": "String",
"zone_abbr": "String",
"time_start": "String",
"gmt_offset": "Number",
"is_dst": "Boolean"
}
]
}

Explanation of Response (only for important objects and keys)

Object/KeyDescription
timezonesObject. Array of objects. Each tbject carries information of a timezone.
timezones.timezone_idString. The ID of a timezone.
timezones.zone_nameString. The name of a timezone.
timezones.zone_abbrString. Abbreviation of a timezone.
timezones.time_startString. Date/Time from which the GST Offset is applicable.
timezones.gst_offsetNumber. GMT Offset in minutes.
timezones.is_dstObject. True if daylight saving time is applied.

Note: All date and time data in the response is in the UTC format.

Get Countries

Use this API to get a list of countris.

  • API Route: https://api.enablex.io/ucaas/v1/countries
  • HTTP Request: GET
  • Access Mechanism: HTTP Basic Authentication, OAauth2
  • Role Based Accessibility: All

Example Request (OAuth2)

GET https://api.enablex.io/ucaas/v1/countries
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN

Example Response

{
"result": 1,
"countries": [
{
"country_id": "String",
"country_name": "String",
"iso2_code": "String",
"iso3_code": "String",
"isd_code": "String"
}
]
}

Explanation of Response (only for important objects and keys)

Object/KeyDescription
countriesArray of Objects. Each object contains information about a country.
countries[].country_idString. Country ID
countries[].country_nameString. The name of a country.
countries[].iso2_codeString. 2-Character ISO Code.
countries[].iso3_codeString. 3-Character ISO Code.
countries[].isd_codeString. ISD Code.

Get Billing Plans

Use this API to get a list of all billing plans of available applications or specific applications.

  • API Routes
    • https://api.enablex.io/ucaas/v1/plans - For all billing plans of all applications.
    • https://api.enablex.io/ucaas/v1/plans/{{$APP_TYPE}} - For all billing plans of all applications.
  • HTTP Request: GET
  • Access Mechanism: HTTP Basic Authentication, OAauth2
  • **Role Based Accessibility: **
    • Reseller: Can access plans under the reseller.
    • Admin/Tenant: Can access plans under the tenant.

Request Example (OAuth2) For all billing plans of all applications.

GET https://api.enablex.io/ucaas/v1/plans
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN

Example Request (OAuth2) For all billing plans of specific applications.

GET https://api.enablex.io/ucaas/v1/plans/wb
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN

Explanation of dynamic URL

PlaceholderDescription
APP_TYPEString. Type of the application. Enum: vc (Video Conference). wb (Webinar).

Example Response

{
"result": 1,
"plans": [
{
"plan_id": "String",
"app": "String",
"plan_name": "String",
"currency": [
"String"
],
"status": "String",
"settings": {
"recording": "Boolean",
"audio_only": "Boolean",
"audio_video": "Boolean",
"participants": "Integer",
"duration": "Integer",
"stream_qlty": "String",
"record_qlty": "String"
},
"user_license": {
"price": {
"currency": "Float"
},
"price_qtr": {
"currency": "Float"
},
"price_hfyr": {
"currency": "Float"
},
"price_year": {
"currency": "Float"
}
},
"connect": {
"price": {
"currency": "Float"
}
},
"records": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
},
"download": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
},
"storage": {
"data_unit": "Integer",
"price": {
"currency": "Float"
}
}
}
]
}

Response Explanation

The following is a response explanation only for important objects and keys:

Object/KeyDescription
plan_idString. Plan ID
statusString. Enum: A (Active), S (Suspended).
settingsObject. It contains all the features supported by the plan.
user_licenseObject. It contains the license price for a single user.
connectObject. It contains the video connect price per minute.
recordsObject. It contains the recording price per defined unit (in Minute).
downloadObject. It contains the download price per defined unit (in MB).
storageObject. It contains the storage price per defined unit (in MB).

Reports API

Use the Reporting APIs to get access to different type of reports with many filter options about video sessions, CDR, session recordings, and so on.

Get a List of Sessions

Use this API get a list of video sessions. By default, it fetches the list of sessions conducted by the logged-in user. For others, use the Query String parameters to filter the reports.

  • API Routes
    • https://api.enablex.io/ucaas/v1/sessions
    • https://api.enablex.io/ucaas/v1/sessions?page={{$PAGE_NUM}}
  • HTTP Request: GET
  • Access Mechanism: HTTP Basic Authentication, OAauth2 -- Role Based Accessibility: All
    • Reseller: Can access all customer reports under the reseller.
    • Admin/Tenant: Can access reports of all customers under the tenant.
    • Customer: Can access reports of all the users under this customer.

Example Request (OAuth2)

GET https://api.enablex.io/ucaas/v1/sessions?page={{$PAGE_NUM}}
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN

Explanation of Query String Parameters

Object/KeyDescription
pageNumber, Optional. Default is 1. Get data for the requested page.
page_lengthNumber. Optional. Default is 10. Total number of records per page.
search_byString. Optional. Required if search_string is used. Use one of the following:
  • room_id: On Room ID field
  • session_id: On Session ID field
  • user_id: On a specific user
  • room_id: On specified room-id
  • meeting_id: On specified meeting-id
  • from_session_date: Start Date filter on Session Date. Format: YYYY-MM-DD HH:ii:ss in UTC
  • to_session_date: To Date filter on Session Date. Format: YYYY-MM-DD HH:ii:ss in UTC
search_stringString. Required with search_by.
order_byString. Optional. Use search_by strings. Specify multiple values as comma-separated.
order_qualifyString: Optional. Default asc. Enum: asc, desc

Example Response

{
"result": 1,
"search": {
"page": "Number",
"page_length": "Number",
"search_by": "String",
"stage": "String",
"search_string": "String",
"order_by": "String",
"order_qualify": "String"
},
"sessions": [
{
"session_id": "String",
"meeting_id": "String",
"room_id": "String",
"user_id": "ObjectId",
"user_name": "String",
"trans_date": "Date",
"connect_dt": "Date",
"disconnect_dt": "Date",
"duration": "Number",
"app_type": "String"
}
]
}

Response Explanation (Only for important Object and Keys):

Object/KeyDescription
searchObject. It contains the Query String parameters used to fetch the result.
sessionsArray of Objects. Each object contains information about a session.
sessions.user_idUser ID of the user who used the session.
sessions.durationTotal number of video minutes used in the session.
sessions.app_typeType of App. vc=Video Conference, wb=Webinar

Note: All date and time data in the response is in the UTC format.

Get CDR

Use this API to get CDR for a given Session ID, Room ID, or Meeting ID. To get specific data, use Session ID, Room ID, or Meeting ID as filters in the Query String.

  • API Route: https://api.enablex.io/ucaas/v1/cdr
  • HTTP Request: GET
  • Access Mechanism: HTTP Basic Authentication, OAauth2
  • Role Based Accessibility for All
    • Reseller: Can access all customer reports under the reseller.
    • Admin/Tenant: Can access reports of all customers under the tenant.
    • Customer: Can access reports of all the users under this customer.

Example Request (OAuth2) with session_id as Query String. You can use it with room_id or meeting_id.

GET https://api.enablex.io/ucaas/v1/cdr?session_id=XXXXXXX
Content-Type: application/json
Authorization: Token ACCESS_TOTKEN

Explanation of Query String Parameters

Object/KeyDescription
pageNumber, Optional. Default is 1. Get the data for the requested page.
page_lengthNumber. Optional. Default is 10. Total number of records per page.
session_idString. Optional. To get CDR for a session_id.
meeting_idString. Optional. To get CDR for a meeting_id.
room_idString. Optional. To get CDR for a room_id.

Note: You must use only one filter. In case multiple parameters are used, use only one parameter in the following order of precedence: room_id, meeting_id, session_id.

Example Response

{
"result": 1,
"search": {
"page_length": 10,
"page": 1,
"filters": {
"session_id": "xxxxxxxxx"
}
},
"session":</