Skip to content

Video Conferencing Service v1.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Microservice providing Video-Conferencing functionality.

Base URLs:

Authentication

  • HTTP Authentication, scheme: bearer

VideoChatArchiveController

VideoChatArchiveController.setUploadTarget

Code samples

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/storage-target',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/storage-target',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /archives/storage-target

Configures custom storage target to a custom Amazon s3 bucket or Microsoft Azure Storage.

Permissions
SetMeetingUploadTarget

Body parameter

{}

Parameters

Name In Type Required Description
body body object false none

Example responses

200 Response

null

Responses

Status Meaning Description Schema
200 OK none text

VideoChatArchiveController.getArchive

Code samples

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/{archiveId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/{archiveId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /archives/{archiveId}

Used to fetch a specific archive w.r.t archiveId. If archive is not present, it will throw HTTP Not Found Error.

Permissions
GetMeetingArchives

Parameters

Name In Type Required Description
archiveId path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

VideoChatArchiveController.deleteArchive

Code samples

const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/{archiveId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/{archiveId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /archives/{archiveId}

Used to delete a specific archive w.r.t archiveId. If archive is not present, it will throw HTTP Not Found Error.

Permissions
DeleteMeetingArchive

Parameters

Name In Type Required Description
archiveId path string true none

Example responses

200 Response

null

Responses

Status Meaning Description Schema
200 OK none text

VideoChatArchiveController.getArchives

Code samples

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /archives

Used to fetch a list of archives (meetings that were recorded).

Permissions
GetMeetingArchives

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

VideoChatSessionController

VideoChatSessionController.getAttendeesList

Code samples

const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/attendees',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/attendees',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /session/{meetingLinkId}/attendees

Permissions
GetMeetingAttendees

Parameters

Name In Type Required Description
meetingLinkId path string true none
active query string false none

Example responses

200 Response

[]

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

VideoChatSessionController.endSession

Code samples

const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/end',
{
  method: 'PATCH',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/end',
{
  method: 'PATCH',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /session/{meetingLinkId}/end

Used to stop the current active meeting. Meeting cannot be stopped again if it is already stopped. Successful execution will add the endTime attribute to a recently ending session.

Permissions
StopMeeting

Parameters

Name In Type Required Description
meetingLinkId path string true none

Responses

Status Meaning Description Schema
204 No Content MessageRecipient PATCH success None

VideoChatSessionController.getMeetingToken

Code samples

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/token',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/token',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /session/{meetingLinkId}/token

Used for Generating token, which is used for connecting to a room/session on a client side. In vonage, there are three different roles (Moderator, Subscriber, Publisher). We can use expire time for limited validity of a token. Successful execution will send a token.

Permissions
GenerateMeetingToken

Body parameter

{}

Parameters

Name In Type Required Description
meetingLinkId path string true none
body body object false none

Example responses

200 Response

null

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

VideoChatSessionController.editMeeting

Code samples

const inputBody = '{
  "deleted": true,
  "deletedOn": "2019-08-24T14:15:22Z",
  "deletedBy": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "modifiedOn": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "modifiedBy": "string",
  "id": 0,
  "sessionId": "string",
  "meetingLink": "string",
  "isScheduled": true,
  "scheduleTime": "2019-08-24T14:15:22Z",
  "isArchived": true,
  "archiveId": "string",
  "uploadTarget": "string",
  "startTime": "2019-08-24T14:15:22Z",
  "endTime": "2019-08-24T14:15:22Z",
  "extId": "string",
  "extMetadata": {}
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {
  "deleted": true,
  "deletedOn": "2019-08-24T14:15:22Z",
  "deletedBy": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "modifiedOn": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "modifiedBy": "string",
  "id": 0,
  "sessionId": "string",
  "meetingLink": "string",
  "isScheduled": true,
  "scheduleTime": "2019-08-24T14:15:22Z",
  "isArchived": true,
  "archiveId": "string",
  "uploadTarget": "string",
  "startTime": "2019-08-24T14:15:22Z",
  "endTime": "2019-08-24T14:15:22Z",
  "extId": "string",
  "extMetadata": {}
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /session/{meetingLinkId}

Used for editing the meeting

Permissions
EditMeeting

Body parameter

{
  "deleted": true,
  "deletedOn": "2019-08-24T14:15:22Z",
  "deletedBy": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "modifiedOn": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "modifiedBy": "string",
  "id": 0,
  "sessionId": "string",
  "meetingLink": "string",
  "isScheduled": true,
  "scheduleTime": "2019-08-24T14:15:22Z",
  "isArchived": true,
  "archiveId": "string",
  "uploadTarget": "string",
  "startTime": "2019-08-24T14:15:22Z",
  "endTime": "2019-08-24T14:15:22Z",
  "extId": "string",
  "extMetadata": {}
}

Parameters

Name In Type Required Description
meetingLinkId path string true none
body body VideoChatSessionPartial false none

Responses

Status Meaning Description Schema
204 No Content Session details PATCH success None

Code samples

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/session',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/session',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /session

Used for Creating a session with options such as end to end encryption, archive mode. Note: Archiving Option cannot be enabled while using end to end encryption, otherwise an Error will be thrown. Successful execution will send a meeting link id which can be used to amend in client url. To archive the session, use enableArchiving (a boolean value) in the request body with it's value as true.

Permissions
CreateMeetingSession

Body parameter

{}
Name In Type Required Description
body body object false none

Example responses

200 Response

"string"
Status Meaning Description Schema
200 OK none string

VideoChatSessionController.checkWebhookPayload

Code samples

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json'
};

fetch('/webhooks/session',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json'
};

fetch('/webhooks/session',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /webhooks/session

Webhook API hit from a third party to add/update session attendees in a meeting.

Body parameter

{}

Parameters

Name In Type Required Description
body body object false none

Responses

Status Meaning Description Schema
204 No Content POST /webhooks/session Success None

Schemas

VideoChatSessionPartial

{
  "deleted": true,
  "deletedOn": "2019-08-24T14:15:22Z",
  "deletedBy": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "modifiedOn": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "modifiedBy": "string",
  "id": 0,
  "sessionId": "string",
  "meetingLink": "string",
  "isScheduled": true,
  "scheduleTime": "2019-08-24T14:15:22Z",
  "isArchived": true,
  "archiveId": "string",
  "uploadTarget": "string",
  "startTime": "2019-08-24T14:15:22Z",
  "endTime": "2019-08-24T14:15:22Z",
  "extId": "string",
  "extMetadata": {}
}

VideoChatSessionPartial

Properties

Name Type Required Restrictions Description
deleted boolean false none none
deletedOn string(date-time)¦null false none none
deletedBy string¦null false none none
createdOn string(date-time) false none none
modifiedOn string(date-time) false none none
createdBy string false none none
modifiedBy string false none none
id number false none none
sessionId string false none none
meetingLink string false none none
isScheduled boolean false none none
scheduleTime string(date-time) false none none
isArchived boolean false none none
archiveId string false none none
uploadTarget string false none none
startTime string(date-time) false none none
endTime string(date-time) false none none
extId string false none none
extMetadata object false none none