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/loginContent-Type: application/jsonX-Api-Id: String{"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/Key | Data Type | Required | Description |
---|---|---|---|
email | String | Required | Email of the user trying to access the API. |
password | String | Required | Password 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/Key | Description |
---|---|
token | This is the access token for accessing the Provisioning API. Use this token in the Authorization Header of the API call. |
user.user_id | Unique ID of the logged-in user. |
user.user_type | String Constants, Enumerated values are: |
user.user_type_desc | String. Full description of user.user_type. |
apps.vc | Object. Provides information about whether the user has access to the meeting or video conference application |
apps.wb | Object. 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.
Get Password Reset Link
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}
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/Key | Data Type | Required | Description |
---|---|---|---|
email | String | Required | Registered email of the user who is trying to obtain the Password Reset link. |
Example Response
{ "result": 1"data": {"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
Placeholder | Description |
---|---|
RESET_KEY | The Reset key sent to the user's registered email. |
Example Response
{ "result": 1"data": {"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/XOXOXOContent-Type: `application/json`X-Api-Id: String"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
Placeholder | Description |
---|---|
RESET_KEY | This is the Rest key sent to the registered email of the user. |
Explanantion of Raw Body JSON Payload
Object/Key | Data Type | Required | Description |
---|---|---|---|
email | String | Required | Email of the user trying to reset. This email must match the email used for getting the Reset key. |
password | String | Required | Type the new password. |
password_retyped | String | Required | Retype the new password. |
Example Response
{ "result": 1"data": {"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/joinContent-Type: application/jsonX-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/Key | Data Type | Required | Description |
---|---|---|---|
pin | String | Required | Either the host/moderator PIN or the participant PIN. |
name | String | Required | Name of the user. |
user_ref | String | Required | The 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/Key | Description |
---|---|
token | Token to join a video session. |
user.meeting_id | Meeting ID. |
user.customer_id | Customer ID for which the meeting/usage will be accounted. |
user.room_id | Video Room ID. |
user.role | Role of the user, either the moderator or a participant. |
user.user_id | Host/Moderator ID. |
user.first_name | First name of the user. |
user.middle_name | Middle name of the user. |
user.last_name | Last name of the user. |
user.email | Email address of the user. |
user.profile_pic | URL of the user's profile picture. |
Error Codes
Error Code | Description |
---|---|
2101 | The PIN field is required if room ID is not present. |
2107 | The 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/inviteContent-Type: application/jsonX-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/Key | Data Type | Required | Description |
---|---|---|---|
pin | String | Optional | Participant PIN. |
meeting_id | String | Optional | Meeting ID of the current session. |
room_id | String | Optional | Room ID of the current session. |
invitees | Array | Required | Array of email addresses. |
Example Response
{"result": 1,"desc": "Invitation email has been sent."}
Error Codes
Error Code | Description |
---|---|
2101 | The PIN field is required if room ID is not present. |
2107 | The PIN must be between 6 to 10 characters. |
2207 | Array of email addresses of the invitees is required. |
2208 | The invitees must passed as an array. |
2209 | At 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/jsonX-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/Key | Data Type | Required | Description |
---|---|---|---|
domain | String | Optional | The host domain name of the meeting application. |
customer_id | String | Optional | Customer ID of the domain owner. |
meeting_id | String | Optional | Meeting 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/Key | Description |
---|---|
vc | This object is displayed for the video meeting application. |
wb | This 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
Placeholder | Description |
---|---|
CUSTOMER_ID | This 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/Key | Description |
---|---|
customer | Object. This object carries customer information. |
customer.customer_code | String. Enum: T, P, R, A |
customer.customer_type_ex | String. Customer Code explained. T=Tenant/Entity, P=Customer, R=Reseller, A=Affiliate |
customer.status | String. Enum: A, S, C, U |
customer.status_ex | String. Status code explained. A=Active, S=Suspended, C=Closed, U=Unverified |
customer.office_address | Object. This object carries offie address of the customer. |
customer.billing_address | Object. 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/customersContent-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=AContent-Type: `application/json`Authorization: Token ACCESS_TOTKEN
Explanation of URL Query String Variable
Variable | Description |
---|---|
page | Number. Optional. Default is 1. Data return requested for the page. |
page_num | Number. Optional. Default is 10. Total records to include in a page. |
from_join_dt | Date. Optional. Format: YYYY-MM-DD. Filter for the join start date. |
to_join_dt | Date. Optional. Format: YYYY-MM-DD. Filter for the join end date. |
search_by | String. 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_string | String. Required with search_by |
order_by | String. Optional. Field names of the database. Multiple names can be added as comma-separated. |
order_qualify | String. 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/Key | Description |
---|---|
search | Object. Contains all filter and sort options to get the results. |
customers | Array of Objects. Each object carries information about a customer. |
customers[n].customer_code | String. Enum: T, P, R, A |
customers[n].customer_type_ex | String.Customer Code explained. T=Tenant/Entity, P=Customer, R=Reseller, A=Affiliate |
customers[n].status | String.Enum: A, S, C, U |
customers[n].status_ex | String.Status Code explained. A=Active, S=Suspended, C=Closed, U=Unverified |
customers[n].office_address | Object. This object carries offie address of the customer. |
customers[n].billing_address | Object. 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/customersContent-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/Key | Description |
---|---|
customer_name | String. Required. Name of the customer. |
customer_legal_name | String. Required. Legal Entity name. |
customer_code | String. Optional. Code, ID or Reference from external information system. |
individual | Boolean. Optional. Default: false. true for individual; and false for corporate registrations |
contact_first_name | String. Required. First name of the contact person. |
contact_last_name | String. Optional. Last name of the contact person. |
contact_email | String. Required. Email address of the contact person. |
office_address | Object. Required. Object keys are self explanatory. |
office_address.address_1 | String. Required. |
office_address.address_2 | String. Optional. |
office_address.address_3 | String. Optional. |
office_address.city | String. Required. |
office_address.state | String. Optional. |
office_address.country_id | String. Required. ID to be taken from the country list. For more information, see Get Countries. |
office_address.zipcode | String. Optional |
billing_address | Object. 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/Key | Description |
---|---|
result | Number. 1=Success |
msg | A text message explaining the successful transaction. |
customer | Object. It contains key information of the new customer. |
customer.customer_id | String. Unique ID of the customer. |
customer.customer_name | String. Name of the customer. |
portal_access | Object. Portal access information. |
portal_access.url | String. URL of the EnableX portal. |
portal_access.username | String. Login credential of the portal: Username. |
portal_access.password | String. 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/Key | Description |
---|---|
customer_name | String. Required. Name of the customer. |
customer_legal_name | String. Required. Name of legal entity. |
customer_code | String. Optional. Code, ID, or reference from the external information system. |
individual | Boolean. Optional. Default: false. True for individual and false for corporate registrations. |
contact_first_name | String. Required. First name of the contact person. |
contact_last_name | String. Optional. Last name of the contact person. |
contact_email | String. Required. Email address of te contact person. |
office_address | Object. Required. Object keys are self explanatory. |
office_address.address_1 | String. Required. |
office_address.address_2 | String. Optional. |
office_address.address_3 | String. Optional. |
office_address.city | String. Required. |
office_address.state | String. Optional. |
office_address.country_id | String. Required. ID to be used from the country list. For more information, see Get Countries. |
office_address.zipcode | String. Optional. |
billing_address | Object. Optional. Keys are similar to office_address . If omitted, theoffice_address object is replicated. |
timezone_id | String. 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/Key | Description |
---|---|
result | Number. 1=Success |
msg | String. A text message explaining the successful transaction. |
customer | Object. It contains key information of the new customer. |
customer.customer_id | String. It contains the Unique ID of the customer. |
customer.customer_name | String. Name of the customer. |
Error Codes
Error Code | Description |
---|---|
1301 | Customer name is required |
1302 | Customer name must be a string. |
1306 | Customer legal name must be a string |
1307 | Customer type is required ( P:Partner, R:Reseller, T: Top). |
1308 | The selected customer type is invalid. |
1312 | Boolean: True for Individual and false for corporate registrations. Default is false. |
1322 | Contact Name must be a string. |
1331 | Contact email is required. |
1332 | Contact email must not be greater than 100 characters. |
1333 | Contact email must always be unique. A previously used contacte mail cannot be used again. |
1334 | Contact email must be a string. |
1341 | The Office address object is required. |
1342 | Office address 1 is required. |
1343 | Office address 1 must be a string. |
1344 | Office address 2 is optional. Must be passed as a string. |
1345 | Office address 3 is optional. Must be a string. |
1353 | Office address city is Required |
1354 | Office address city must be a string. |
1355 | Office address country ID is required. Select the country Id from the country list. |
1356 | Office address state must be a string. |
1371 | Billing Address 1 must be a string. |
1372 | Billing Address 2 must be a string. |
1373 | Billing Address 3 must be a string. |
1380 | Billing Address city must be string. |
1381 | Billing Address state must be a string. |
1391 | Selected status is invalid. |
1404 | Subscription ID is required. |
1405 | Subscription ID must be a string. |
1408 | Access 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/Key | Data Type | Required | Description |
---|---|---|---|
page | Number | Optional | Data return requested for the page. |
page_length | Number | Optional | Total records to include in a page. |
from_subxn_dt | Date | Optional | Filter for subscription start date. |
to_subxn_dt | Date | Optional | Filter for subscription join date. |
from_expiry_dt | Date | Optional | Filter for subscription expiry start date. |
to_expiry_dt | Date | Optional | Filter for join subscription expiry date. |
search_by | String | Optional | Required if "search_string" is used. Use any of the enumerated values:
|
search_string | String | Optional | Required with search_by. |
order_by | String | Optional | Names of database fields. |
order_qualify | String | Optional | Default "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/subscriptionsContent-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/Key | Data Type | Required | Description |
---|---|---|---|
customer_id | String | Required | Customer ID |
plan_id | String | Required | Plan ID |
subscription | Object | Required | To define the subscription settings. |
allow_meeting_overlap | Boolean | Optional | To allow scheduling of an overlapped meeting. |
Payment_mode | String | Optional | F for offline, O for online. Default is F. |
subxn_date | String | Required | Format: YYYY-MM-DD |
No_of_license | Number | Required | Number of user-license purchased. |
unit_price | Float | Optional | Unit price of a user license. |
po | String | Optional | Purchase 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/Key | Data Type | Required | Description |
---|---|---|---|
subscription | Object | Optional | To define the subscription settings. |
subscription.status | String | Optional | Optional 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 Code | Description |
---|---|
1201 | Customer ID is required. |
1202 | Customer ID must be a valid string. |
1211 | Plan ID is required. |
1212 | Plan ID must be a valid string. |
1220 | An invalid Subscription ID is used. Use a valid Subscription ID. |
1221 | The subscription field is required. |
1228 | Allow meeting to be overlapped with other meetings: Boolean True or False. |
1229 | Subscription must be an array. |
1230 | Subscription status must be a valid string. |
1231 | Subscription status is invalid. |
1232 | Prepaid is a boolean value (True: Prepaid Subscription). |
1234 | Customer ID is invalid. Use a valid customer ID. |
1254 | Number of user licenses must be in integers. |
1256 | User license price must be stated. Minimum price is 1, maximum price is 100000. |
1260 | License is not assigned. Assign a license. |
1261 | License is already assigned. |
1325 | Plan ID is invalid. Use a valid Plan ID. |
1326 | Room type is required. |
1329 | The 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/usersContent-Type: application/jsonAuthorization: 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/Key | Data Type | Required | Description |
---|---|---|---|
user_type | String | Required | Enumerated Values. Check application data.constant.php (AP). |
first_name | String | Required | First name. |
middle_name | String | Optional | Middle name. |
last_name | String | Optional | Last name. |
email | String | Required | Email must be unique. |
password | String | Optional | If not passed, the password is automatically generated. |
status | String | Optional | Enum. Check data.constant.php. If not passed, set it to active (A: Active, S: Suspend) |
department | String | Optional | Name of the company that the user is affiliated with. |
designation | String | Optional | Designation of the user at the aforementioned company. |
send_welcome_mail | Boolean | Optional | If 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/jsonAuthorization: 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/Key | Data Type | Required | Description |
---|---|---|---|
first_name | String | Optional | First Name |
middle_name | String | Optional | Middle Name |
last_name | String | Optional | Last Name |
status | String | Optional | Enum. Check data.constant.php. |
department | String | Optional | |
designation | String | Optional |
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/jsonAuthorization: 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/jsonAuthorization: Basic BASE64_AUTH_STRING
URL Placeholder Explanation:
Object/Key | Description |
---|---|
page | Data return requested for a page. Default is 1. |
page_length | Total number of records to include in a page. Default is 10. |
from_create_dt | From Create Date Filter |
to_create_dt | To create a date filter. |
search_by | Required if "search_string" is used. Use any of the enumerated values:
|
search_string | Required with search_by. |
order_by | Field names of the database. |
order_qualify | Default "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/jsonAuthorization: Basic BASE64_AUTH_STRINGX-License: assign{"app": "String","subscription_id": "String","send_access_mail": "Boolean"}
Explanation of Headers
X-License
: assign
Explanation of Raw Body JSON Payload
Object/Key | Data Type | Required | Description |
---|---|---|---|
app | String | Required | Enumerated Values: vc, wb |
subscription_id | String | Required | Object ID of the subscription to be assigned. |
send_access_mail | Boolean | If 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/jsonAuthorization: Basic BASE64_AUTH_STRINGX-License: revoke{"app": "String"}
Explanation of Headers
X-License
: revoke
Explanation of Raw Body JSON Payload
Object/Key | Data Type | Required | Description |
---|---|---|---|
app | String | Required | Enumerated 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 Code | Description |
---|---|
1103 | The email has already been used. Specify a different email address, which is unique. |
1105 | The email is a valid email. |
1106 | The selected email is invalid. |
1111 | The first name is required. |
1112 | First name must be a string. |
1115 | Middle name must be a string. |
1119 | Last name must be a string. |
1121 | The user password must be a string. |
1131 | Status must be a string (A: Active, S: Suspended). |
1141 | Department must be a string. |
1145 | Designation must be a string. |
1152 | User type must be string (AP : User). |
1153 | The User type entered is invalid. |
1161 | Send Welcome email is Boolean (True: send email with login details). |
1191 | Status 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 informationhttps://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/permanentContent-Type: application/jsonAuthorization: Basic BASE64_AUTH_STRINGX-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/jsonAuthorization: Basic BASE64_AUTH_STRINGX-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/Key | Data Type | Required | Description |
---|---|---|---|
room_name | String | Optional | Name of the Room |
`desc | `String | Optional | Descriptive text on the room or the meeting. |
moderators | Number | Optional | Number of moderators needed on call |
participants | Number | Optional | Number of participants needed on call |
wait_for_moderator | Boolean | Optional | Whether to wait for Moderator to join first to get into a Session |
knock | Boolean | Optional | Whether to enable moderated entry into the session for participants |
auto_recording | Boolean | Optional | Whether to enable auto-recording of the Session |
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/jsonAuthorization: Basic BASE64_AUTH_STRINGX-App-Type: vcX-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-pinsX-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/Key | Data Type | Required | Description |
---|---|---|---|
reset_ppin | Boolean | Optional | To reset a participant PIN. |
reset_mpin | Boolean | Optional | To 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/meetingContent-Type: application/jsonAuthorization: Basic BASE64_AUTH_STRINGX-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/Key | Data Type | Required | Description |
---|---|---|---|
user_id | String | Optional | It must be user under the company. If given, the meeting will be scheduled under this user. The user must be under the account. |
room_name | String | Required | Name of the room. |
desc | String | Required | Descriptive text on the room or the meeting. |
start_time | YYYY-MM-DD HH:ii:ss in UTC. | Required | Start time of the meeting. |
timezone_id | String | Required | |
duration | Numeric | Required | Duration of the meeting. |
moderators | Number | Required | Number of moderators needed on the call. |
participants | Number | Required | Number of participants needed on the call. |
wait_for_moderator | Boolean | Optional | Whether to wait for the moderator to join first to get into a session. |
knock | Boolean | Optional | Whether to enable moderated entry into the session for participants. |
auto_recording | Boolean | Optional | Whether to enable auto-recording of the session. |
send_mail | Boolean | Optional | Whether to send out emails with access information. |
invitees | Object | Optional | Array 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/jsonAuthorization: Basic BASE64_AUTH_STRINGX-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/Key | Data Type | Required | Description |
---|---|---|---|
room_name | String | Optional | Name of the Room |
desc | String | Optional | Descriptive text on the room or the meeting. |
start_time | Optional | YYYY-MM-DD HH:ii:ss in UTC. | |
timezone_id | Optional | Duration of the meeting. | |
duration | Optional | ||
moderators | Number | Optional | Number of moderators needed on the call. |
participants | Number | Optional | Number of participants needed on the call. |
wait_for_moderator | Boolean | Optional | Whether to wait for the moderator to join first to get into a session. |
knock | Boolean | Optional | Whether to enable moderated entry into the session for the participants. |
auto_recording | Boolean | Optional | Whether to enable auto-recording of the session. |
send_mail | Boolean | Optional | Whether to send out emails with access information. |
invitees | Object | Optional | Array 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/jsonAuthorization: Basic BASE64_AUTH_STRINGX-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/jsonAuthorization: Basic BASE64_AUTH_STRINGX-App-Type: vc
Explanation of Headers
X-App-Type
: vc, wb
Explanation of Query String Parameters
Object/Key | Data Type | Required | Description |
---|---|---|---|
page | Number | Optional | Data return requested for the page. Default is 1. |
page_length | Number | Optional | Total records to include in a page. Default is 10. |
search_by | String | Optional | Required if "search_string" is used. Use any of the enumerated values:
|
search_string | String | Optional | Required with search_by. |
stage | String | Optional | "upcoming", "current", "past" |
order_by | String | Optional | Field names of the database. |
order_qualify | String | Optional | Default "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/jsonAuthorization: Basic BASE64_AUTH_STRINGX-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}}/lobbyContent-Type: application/jsonAuthorization: Basic BASE64_AUTH_STRINGX-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}}/lobbyContent-Type: multipart/form-dataAuthorization: Basic BASE64_AUTH_STRINGX-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-dataX-App-Type
: vc, wb
Explanation of Raw Body JSON Payload
Object/Key | Data Type | Required | Description |
---|---|---|---|
options | Object | Required | What type of lobby to define. You can set one amongst the 4 options as true. |
options.messages | Boolean | Optional | Set it to true if you want "text messages" to show as slideshow on the lobby. Along with "messages", you can also define the background audio. |
options.image | Boolean | Optional | Set 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.audio | Boolean | Optional | Set it to true if you want "background audio" to play on the lobby. |
options.video | Boolean | Optional | Set it to true if you want "video" to play on the lobby. |
message | Array of Object | Optional | Required with options.message:true. It contains an array of multiple text messages. |
image | Array of Object | Optional | Required with options.image:true. It contains an array of multiple image files. |
audio | Array of Object | Optional | Required 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. |
video | Array of Object | Optional | Required 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}}/lobbyContent-Type: multipart/form-dataAuthorization: Basic BASE64_AUTH_STRINGX-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-dataX-App-Type
: vc, wb
Explanation of Raw Body JSON Payload
Object/Key | Data Type | Required | Description |
---|---|---|---|
options | Object | Required | Define the type of the lobby. You can set one amongst the 4 options as true. |
options.messages | Boolean | Optional | Set it to true if you want "text messages" to show as slideshow on lobby. Along with "messages", you can also define the background audio. |
options.image | Boolean | Optional | Set 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.audio | Boolean | Optional | Set it to true if you want "background audio" to play on lobby. |
options.video | Boolean | Optional | Set it to true if you want "video" to play on lobby. |
message | Array of Object | Optional | Required with options.message:true. It contains array of multiple text messages. |
image | Array of Object | Optional | Required with options.image:true. It contains array of multiple image files or image URLs with caption. |
audio | Array of Object | Optional | Required 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. |
video | Array of Object | Optional | Required 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}}/lobbyContent-Type: application/jsonAuthorization: Basic BASE64_AUTH_STRINGX-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.
- Image Banner Specification
- 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}}/brandingContent-Type: multipart/form-dataAuthorization: Basic BASE64_AUTH_STRINGX-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-dataX-App-Type
: vc, wb
Explanation of Raw Body JSON Payload
Object/Key | Data Type | Required | Description |
---|---|---|---|
login | Object | Required | This object defines the branding options for the login or landing pages. |
login.banner | String | Optional | Image 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_file | String | Optional | Video 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_embed | String | Optional | Video Embed Code. For example, Youtube Video Embed Code. It cannot be used with banner and video_file. |
login.headline | String | Required | Title or headline. |
login.desc | String | Optional | Descriptive text. |
login.target_url | String | Optional | Click-thru URL. |
session | Object | Required | This object defines branding options for the Video Session page. |
session.banner_small | `String | Required | Small image banner. Specify the https hosted public URL of the image file, which must be CORS-enabled. |
session.banner_big | String | Required | Big Image Banner. Specify the https hosted public URL of the image file, which must be CORS-enabled. |
session.target_url | String | Optional | Click-thru URL. |
Response Example
{"result": 1,"branding": {"login": {"banner": "{https hosted url for banner image}","video_file": "{https hosted url for video file}","video_embed": "{embed code for video}","headline": "{title / headline}","desc": "{description}","target_url": "{click-thru url}"},"session": {"banner_small": "{https hosted url for small banner image}","banner_big": "{https hosted url for big banner image}","target_url": "{click-thru url}"}}}
Error Codes
Error Code | Description |
---|---|
1000 | Room is not active. |
1601 | Meeting Date Time must be future-dated. |
1602 | Meeting Date Time: Format YYYY-MM-DD (In UTC) |
1603 | Meeting Date Time is required. |
1611 | Meeting Title is reqruied. |
1612 | Meeting Title accepts a minimum of 3 characters. |
1613 | Meeting Title accepts a maximum of 50 characters. |
1615 | No active meeting subscription. |
1616 | No active webinar subscription. |
1617 | Not assigned with Meeting License |
1618 | Not assigned with Webinar License |
1621 | Description filed is required. |
1631 | Meeting Duration is required. |
1632 | Meeting Duration accepts a minimum of 10 minutes. |
1633 | Meeting Duration exceeded the permissible duration. |
1634 | Meeting Duration accepts values in number of minutes. |
1641 | Moderator count is required. |
1642 | Moderator Count accepts a minimum value of 1. |
1643 | Moderator Count must not exceed the room size. |
1644 | Moderator Count accepts values in numbers. |
1651 | Participant count is required. |
1652 | Participant Count accepts a minimum value of 0. |
1653 | Participant Count must not exceed the room size. |
1654 | Participant Count must be in numbers. |
1672 | Auto Recording: In Boolean (true, false) |
1681 | Timezone is required. |
1683 | Timezone id required. |
1684 | Invalid Timezone ID |
1685 | Invalid Timezone ID |
1686 | Invalid Timezone ID |
1691 | Invalid Timezone ID |
1692 | Send Email accepts a Boolean (true, false) value. |
1693 | Wait for the moderator accepts a Boolean (true, false) value. |
1694 | Knock accepts a Boolean (true, false) value. |
1695 | Invitees must be an array. |
1696 | Invitee Email Addresses must be an array. |
1697 | Invitee Contact IDs must be an array. |
1698 | Invitee Group IDs must be an array. |
1901 | Reset MPIN must be a Boolean (true, false) value. |
1902 | Reset PPIN must be a Boolean (true, false) value. |
1903 | MPIN and PPIN are required. |
2402 | Message field is required. |
2403 | Image field is required. |
2404 | Audio field is required. |
2405 | Video field is required. |
2412 | The Image option must be an array. |
2421 | The video option must be an array |
2422 | Message text is required if message is used for lobby. |
2423 | The options field is required to choose from text, audio, and video. |
2432 | Message text accepts a minimum of 5 characters. |
2433 | Message text accepts a maximum of 100 characters. |
2435 | Image caption must be a string. |
2438 | Video url must be a string. |
2453 | The url format should be a valid url string. |
2501 | Page length filter must be passed with an integer. |
2603 | The selected order by is invalid. |
2604 | The selected order qualify is invalid. |
2605 | The selected search is invalid. |
2606 | The search string field is required when search by is present. |
2608 | Page number must be a number. |
3011 | The old password and the new password cannot be the same. |
4201 | Invalid 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/Key | Data Type | Required | Description |
---|---|---|---|
group_ids | Array | Optional | Array of Group-Ids with which the new contact is to be linked. |
name | String | Required | Full name of the contact. |
email | String | Required | Email id of the contact. The email id must be unique in the user's contact list. |
company | String | Optional | Name of the contact's company. |
designation | String | Optional | Designation 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/Key | Data Type | Required | Description |
---|---|---|---|
name | String | Optional | Full name of the contact. |
email | String | Optional | Email id of the contact. The email id must be unique in the user's contact list. |
company | String | Optional | |
designation | String | Optional |
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/Key | Data Type | Required | Description |
---|---|---|---|
page | Number | Optional | Data return requested for the page. The default is 1. |
page_length | Number | Optional | Total records to include in a page. Default is 10. |
search_by | String | Optional | Required if "search_string" is used. Use any of the enumerated values:
|
search_string | String | Optional | Required with search_by. |
order_by | String | Optional | Field names of the database. |
order_qualify | String | Optional | Default "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-groupsContent-Type: `application/json`Authorization: Token ACCESS_TOTKEN{"group_name": "String"}
Explanation of Raw Body JSON Payload
Object/Key | Data Type | Required | Description |
---|---|---|---|
group_name | String | Required | Group 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/Key | Data Type | Required | Description |
---|---|---|---|
group_name | String | Required | Group 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/Key | Data Type | Required | Description |
---|---|---|---|
page | Number | Optional | Data return requested for the page. Default is 1. |
page_length | Number | Optional | Total number of records to include in a page. Default is 10. |
search_by | String | Optional | Required if "search_string" is used. |
search_string | String | Optional | Required with search_by. |
order_by | String | Optional | Field names of the database. |
order_qualify | String | Optional | Default "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_TOTKENX-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/Key | Data Type | Required | Description |
---|---|---|---|
contact_ids | Object IDs | Required | Array 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_TOTKENX-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/Key | Data | Type Required | Description |
---|---|---|---|
contact_ids | Object IDs | Required | Array 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 Code | Description |
---|---|
1701 | Group IDs must be specified in the form of an array. |
1702 | The group IDs array must have at least one item in it. |
1711 | Name is required. |
1712 | Name must contain a minimum of 3 characters. |
1713 | Name can contain a maximum 50 characters. |
1714 | Name must be a string. |
1721 | This email ID already exists. Use a different email ID. |
1722 | Email ID must be a valid email address. |
1723 | Email ID must be a valid string. |
1724 | Email field is required. |
1725 | Email can have a maximum of 100 characters. |
1731 | Company name must be a string. |
1732 | Company name does not accept more than 100 characters. |
1733 | Company name must have at least 5 characters. |
1741 | Designation must be a string. |
1742 | Designation does not accept more than 100 characters. |
1743 | Designation must have at least 5 characters. |
1802 | Group name must have at least 3 characters. |
1803 | Group name must be less than 100 characters. |
1804 | Group name must be a string. |
1805 | This group name has already been used. Enter a different name for the group. |
1810 | The group name must be unique and not used. |
1811 | Contact IDs are required to add contacts to a contact group. |
1812 | Contact IDs must be specified in the form of an array. |
1818 | An 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/timezonesContent-Type: application/jsonAuthorization: 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/Key | Description |
---|---|
timezones | Object. Array of objects. Each tbject carries information of a timezone. |
timezones.timezone_id | String. The ID of a timezone. |
timezones.zone_name | String. The name of a timezone. |
timezones.zone_abbr | String. Abbreviation of a timezone. |
timezones.time_start | String. Date/Time from which the GST Offset is applicable. |
timezones.gst_offset | Number. GMT Offset in minutes. |
timezones.is_dst | Object. 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/countriesContent-Type: application/jsonAuthorization: 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/Key | Description |
---|---|
countries | Array of Objects. Each object contains information about a country. |
countries[].country_id | String. Country ID |
countries[].country_name | String. The name of a country. |
countries[].iso2_code | String. 2-Character ISO Code. |
countries[].iso3_code | String. 3-Character ISO Code. |
countries[].isd_code | String. 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/plansContent-Type: application/jsonAuthorization: Token ACCESS_TOTKEN
Example Request (OAuth2) For all billing plans of specific applications.
GET https://api.enablex.io/ucaas/v1/plans/wbContent-Type: application/jsonAuthorization: Token ACCESS_TOTKEN
Explanation of dynamic URL
Placeholder | Description |
---|---|
APP_TYPE | String. 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/Key | Description |
---|---|
plan_id | String. Plan ID |
status | String. Enum: A (Active), S (Suspended). |
settings | Object. It contains all the features supported by the plan. |
user_license | Object. It contains the license price for a single user. |
connect | Object. It contains the video connect price per minute. |
records | Object. It contains the recording price per defined unit (in Minute). |
download | Object. It contains the download price per defined unit (in MB). |
storage | Object. 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/jsonAuthorization: Token ACCESS_TOTKEN
Explanation of Query String Parameters
Object/Key | Description |
---|---|
page | Number, Optional. Default is 1. Get data for the requested page. |
page_length | Number. Optional. Default is 10. Total number of records per page. |
search_by | String. Optional. Required if search_string is used. Use one of the following:
|
search_string | String. Required with search_by. |
order_by | String. Optional. Use search_by strings. Specify multiple values as comma-separated. |
order_qualify | String: 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/Key | Description |
---|---|
search | Object. It contains the Query String parameters used to fetch the result. |
sessions | Array of Objects. Each object contains information about a session. |
sessions.user_id | User ID of the user who used the session. |
sessions.duration | Total number of video minutes used in the session. |
sessions.app_type | Type 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=XXXXXXXContent-Type: application/jsonAuthorization: Token ACCESS_TOTKEN
Explanation of Query String Parameters
Object/Key | Description |
---|---|
page | Number, Optional. Default is 1. Get the data for the requested page. |
page_length | Number. Optional. Default is 10. Total number of records per page. |
session_id | String. Optional. To get CDR for a session_id. |
meeting_id | String. Optional. To get CDR for a meeting_id. |
room_id | String. 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":