---
# System prepended metadata

title: VConnct Client API - Client Documetation (v1)

---

# VConnct Client API - Client Documetation (v1)

 ## Description
 
-   This tool used for making conference meetings with some settings for every meeting.
    
-   There are 2 different concepts :
    

	1.   Meeting: is the static meeting which scheduled before with static id used every time you need to start this meeting, every meeting id can run several times.

	2.   Session: When the meeting is running it is called session, the session id used just once.
    
-   There are two types of users:
	1.  Moderator.
	2.  Attendee.
    
-   Every Business Partner has License key used for accessing the APIs and every License key has **expiration** **date**, **maximum Meeting rooms** and **maximum Attendance for every room** .

# APIs Endpoints

**Request headers** **to be considered for every request**.
| **Key** | **Value** | **Description** |
| :--- | :--- | :--- |
| `license` | `string` | **Required**. Business Partner license key to access API endpoints. key |
| `Accept-Language` | `string` |**Optional**. indicates the natural language and locale that the client prefers.|


## 1. Create Meeting
The API responsible for the meeting creation.

```http
POST /api/v1/create_meeting/
```

| **Key** | **Value** | Description 
| :--- | :--- | :--- | 
| `title` | `string` | **Optional**. Meeting title | 
| `moderator_password` | `string` | **Optional**. moderator password for start a new meeting session or enter as a moderator | 
| `welcome_text` | `string` | **Optional**. Meeting welcome text | 
| `meeting_setting` | `array` | **Required**. Array of 10 required setting objects | 

**Request example** 
```javascript
{

"title": "meeting title",
"moderator_password": "modpwd",
"welcome_text": "welcome to the class",
"meeting_setting": [
	{
		"setting":"lock_settings_disable_public_chat",
		"value":true
	},

	{
		"setting":"lock_settings_disable_mic",
		"value":true
	},

	{
		"setting":"auto_start_recording",
		"value":true
	},

	{
		"setting":"lock_settings_disable_cam",
		"value":true
	},

	{
		"setting":"lock_settings_locked_layout",
		"value":true
	},

	{
		"setting":"allow_start_stop_recording",
		"value":true
	},

	{
		"setting":"record",
		"value":true
	},

	{
		"setting":"webcam_only_for_moderators",
		"value":true
	},

	{
		"setting":"lock_settings_disable_note",
		"value":true
	},

	{
		"setting":"lock_settings_disable_private_chat",
		"value":true
	}
]

}
```
**Response example** 
```javascript
{

"status": true,
"status_code": 201,
"message": "success",
"data": {
	"meeting_id": "0db9ac9d-399b-4b9b-987c-50fd77f5d15d",
	"title": "meeting title",
	"moderator_password": "modpwd",
	"welcome_text": "welcome to the class",
	"meeting_setting": [
		{
			"setting":"lock_settings_disable_public_chat",
			"value":true
		},

		{
			"setting":"lock_settings_disable_mic",
			"value":true
		},

		{
			"setting":"auto_start_recording",
			"value":true
		},

		{
			"setting":"lock_settings_disable_cam",
			"value":true
		},

		{
			"setting":"lock_settings_locked_layout",
			"value":true
		},

		{
			"setting":"allow_start_stop_recording",
			"value":true
		},

		{
			"setting":"record",
			"value":true
		},

		{
			"setting":"webcam_only_for_moderators",
			"value":true
		},

		{
			"setting":"lock_settings_disable_note",
			"value":true
		},

		{
			"setting":"lock_settings_disable_private_chat",
			"value":true
		}
]

},

"success_message": "تمت اضافه الاجتماع بنجاح!"

}
```

## 2. Update Meeting
The API responsible for the meeting update.

```http
PUT /api/v1/update_meeting/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d
```

| **Key** | **Value** | Description 
| :--- | :--- | :--- | 
| `title` | `string` | **Optional**. Meeting title | 
| `moderator_password` | `string` | **Optional**. moderator password for start a new meeting session or enter as a moderator | 
| `welcome_text` | `string` | **Optional**. Meeting welcome text | 
| `meeting_setting` | `array` | **Required**. Array of 10 required setting objects | 

**Request example** 
```javascript
{

"title": "updated meeting title",
"moderator_password": "updated_modpwd",
"welcome_text": "updated welcome to the class",
"meeting_setting": [
	{
		"setting":"lock_settings_disable_public_chat",
		"value":false
	},

	{
		"setting":"lock_settings_disable_mic",
		"value":true
	},

	{
		"setting":"auto_start_recording",
		"value":false
	},

	{
		"setting":"lock_settings_disable_cam",
		"value":true
	},

	{
		"setting":"lock_settings_locked_layout",
		"value":false
	},

	{
		"setting":"allow_start_stop_recording",
		"value":true
	},

	{
		"setting":"record",
		"value":false
	},

	{
		"setting":"webcam_only_for_moderators",
		"value":true
	},

	{
		"setting":"lock_settings_disable_note",
		"value":false
	},

	{
		"setting":"lock_settings_disable_private_chat",
		"value":true
	}
]

}
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": {
	"meeting_id": "0db9ac9d-399b-4b9b-987c-50fd77f5d15d",
	"title": "updated meeting title",
	"moderator_password": "updated_modpwd",
	"welcome_text": "updated welcome to the class",
	"meeting_setting": [
		{
			"setting":"lock_settings_disable_public_chat",
			"value":false
		},

		{
			"setting":"lock_settings_disable_mic",
			"value":true
		},

		{
			"setting":"auto_start_recording",
			"value":false
		},

		{
			"setting":"lock_settings_disable_cam",
			"value":true
		},

		{
			"setting":"lock_settings_locked_layout",
			"value":false
		},

		{
			"setting":"allow_start_stop_recording",
			"value":true
		},

		{
			"setting":"record",
			"value":false
		},

		{
			"setting":"webcam_only_for_moderators",
			"value":true
		},

		{
			"setting":"lock_settings_disable_note",
			"value":false
		},

		{
			"setting":"lock_settings_disable_private_chat",
			"value":true
		}
]

},

"success_message": "لقد تم تعديل بيانات الاجتماع بنجاح!"

}
```
## 3. Start Meeting
The API responsible for starting a new meeting session.

```http
POST /api/v1/start_meeting/
```

| **Key** | **Value** | Description 
| :--- | :--- | :--- | 
| `meeting_id` | `UUID` | **Required**. The meeting id to start meeting session with | 
| `title` | `string` | **Optional**. moderator password for start a new meeting session or enter as a moderator | 
| `attendee_password` | `string` | **Optional**. password for joining the meeting as an attendee | 
| `moderator_password` | `string` | **Optional**. Meeting moderator password for creating a new session | 
| `moderator_name` | `string` | **Required**. moderator name | 
| `logout_url` | `string` | **Optional**. logout URL to be redirected to | 

**Request example** 
```javascript
{

"meeting_id": "0db9ac9d-399b-4b9b-987c-50fd77f5d15d",
"title": "session title",
"attendee_password": "attpwd",
"moderator_password": "modpwd",
"moderator_name": "mod1",
"logout_url": "example.com",

}
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": {
	"title": "session title",
	"url": "https://vconnct-client-api.com/api/join?fullName=mod1&meetingID=0db9ac9d-399b-4b9b-987c- 50fd77f5d15d&password=modpwd&checksum=1531e711a3cf4ac3ecd7227e3a8e28ad0764c868"
},
"success_message": "الاجتماع الان تم تشغيله!"

}
```
## 4. Join Meeting
The API responsible for joining a running meeting session.
There are two scenarios here:
1.  join as moderator: (moderator)
    required moderator password to be passed with password key, if the password matches. The requested user will join as a moderator.
    
2.  join as attendee: (viewer)
    required attendee password to be passed with password key, if the password matches. The requested user will join as an attendee.
```http
POST /api/v1/start_meeting/
```

| **Key** | **Value** | Description 
| :--- | :--- | :--- | 
| `meeting_id` | `UUID` | **Required**. The meeting id to join meeting session with | 
| `fullname` | `string` | **Required**. Full name for attendee or moderator | 
| `password` | `string` | **Optional**. Password phrase for authentication | 
| `role` | `string` | **Required**. Select between two options: **moderator** or **viewer** | 


**Request example** 
```javascript
{

"meeting_id": "0db9ac9d-399b-4b9b-987c-50fd77f5d15d",
"fullname": "John Doe",
"password": "attpwd",
"role": "viewer"

}
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": {
	"url": "https://vconnct-client-api.com/api/join?fullName=John_Doe&meetingID=0db9ac9d-399b-4b9b-987c- 50fd77f5d15d&password=modpwd&checksum=1531e711a3cf4ac3ecd7227e3a8e28ad0764c868"
},
"success_message": "لقد تم دخولك للاحتماع بنجاح!"

}
```

## 5. End Meeting
The API responsible for ending a running meeting session.

```http
GET /api/v1/end_meeting/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": null,
"success_message": "تم بنجاح!"

}
```

## 6. Delete Scheduled Meeting
The API responsible for deleting  a scheduled meeting.
User can’t delete a scheduled meeting if it’s running.

```http
DELETE /api/v1/delete_scheduled_meeting/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": null,
"success_message": "تم الحذف بنجاح!"

}
```

## 7. List Sessions
The API responsible for list all sessions related to a specific meeting.

```http
GET /api/v1/list_sessions/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": [

	{
	"session_id": "546b4f17-16dc-4d07-b155-a5994e0ce161",
	"title": "session1 title",
	"session_start_time": "2022-12-20T12:08:46.148Z",
	"session_end_time": "2022-12-20T12:08:57.281Z",
	"attendee_password": "attpwd",
	"status": true
	},
	{
	"session_id": "546b4f17-16dc-4d07-b155-a5994e0ce161",
	"title": "session2 title",
	"session_start_time": "2022-12-20T12:08:46.148Z",
	"session_end_time": "2022-12-20T12:08:57.281Z",
	"attendee_password": "attpwd",
	"status": true
	}
	

],
"success_message": "تم بنجاح!"

}
```


## 8. List Meetings
The API responsible for list all meetings.

```http
GET /api/v1/list_meetings/
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": [

	{
	"meeting_id": "cc22d75f-2e53-4b1a-a1da-afcafa633364",
	"title": "meeting1 title",
	"is_running": true,
	"moderator_password": "modpwd",
	"welcome_text": "welcome to the class"
	},
	{
	"meeting_id": "cc22d75f-2e53-4b1a-a1da-afcafa633364",
	"title": "meeting2 title",
	"is_running": true,
	"moderator_password": "modpwd",
	"welcome_text": "welcome to the class"
	}
	
],
"success_message": "تم بنجاح!"

}
```

## 9. List Attendance
The API responsible for list all meeting session attendance.

```http
GET /api/v1/list_attendance/?session_id=f7b75854-7cdc-4a4e-9888-9cfb8bb1feef
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": [

	{
	"full_name": "attendee 3",
	"joined_date": "2022-12-20T12:22:30.564Z"
	},

	{
	"full_name": "attendee 1",
	"joined_date": "2022-12-20T12:22:21.897Z"
	},

	{
	"full_name": "attendee 2",
	"joined_date": "2022-12-20T12:22:25.430Z"
	}
	
],
"success_message": "تم بنجاح!"

}
```

## 10. List Settings
The API responsible for list all meeting settings.

```http
GET /api/v1/list_setting/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d
```

**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": [

		{
			"setting":"lock_settings_disable_public_chat",
			"value":false
		},

		{
			"setting":"lock_settings_disable_mic",
			"value":true
		},

		{
			"setting":"auto_start_recording",
			"value":false
		},

		{
			"setting":"lock_settings_disable_cam",
			"value":true
		},

		{
			"setting":"lock_settings_locked_layout",
			"value":false
		},

		{
			"setting":"allow_start_stop_recording",
			"value":true
		},

		{
			"setting":"record",
			"value":false
		},

		{
			"setting":"webcam_only_for_moderators",
			"value":true
		},

		{
			"setting":"lock_settings_disable_note",
			"value":false
		},

		{
			"setting":"lock_settings_disable_private_chat",
			"value":true
		}
	
],
"success_message": "تم بنجاح!"

}
```

## 11. List General Meeting Settings
The API responsible for list all general meeting settings.

```http
GET /api/v1/list_general_meeting_setting/
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": [

	"lock_settings_disable_cam": false,
	"record": false,
	"lock_settings_disable_note": false,
	"lock_settings_disable_public_chat": false,
	"webcam_only_for_moderators": false,
	"lock_settings_disable_mic": false,
	"lock_settings_locked_layout": false,
	"lock_settings_disable_private_chat": false,
	"allow_start_stop_recording": false,
	"auto_start_recording": false
	
],
"success_message": "تم بنجاح!"

}
```

## 12. Get Session Recording
The API responsible for get session recording.

```http
GET /api/v1/get_record/?session_id=f7b75854-7cdc-4a4e-9888-9cfb8bb1feef
```
**Response example** 
```javascript
{

"status": true,
"status_code": 200,
"message": "success",
"data": "https://vconnct-client-api.com/playback/presentation/2.3/8e3838a10f13e06cecbef7a464b86de74e66a5b8-1672672130203",
"success_message": "تم بنجاح!"

}
```

***

## Error Responses 

| Key  | Possible Values/Responses 
| :--- | :--- 
| `status`  | false | 
| `status_code`  | [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) - [404](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404) - [401](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401) | 
| `message` | error | 
| `error_messages` | [ "error_1", "error_2", "error_3" ] | 