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
Responses
Status
Meaning
Description
Schema
200
OK
none
text
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
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
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
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
Responses
Status
Meaning
Description
Schema
200
OK
none
text
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
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
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
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
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
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.
Parameters
Name
In
Type
Required
Description
meetingLinkId
path
string
true
none
Responses
Status
Meaning
Description
Schema
204
No Content
MessageRecipient PATCH success
None
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
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
Responses
Status
Meaning
Description
Schema
200
OK
none
Inline
Response Schema
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
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
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
Responses
Status
Meaning
Description
Schema
204
No Content
Session details PATCH success
None
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
VideoChatSessionController.getMeetingLink
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
Parameters
Name
In
Type
Required
Description
body
body
object
false
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
none
string
To perform this operation, you must be authenticated by means of one of the following methods:
HTTPBearer
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
This operation does not require authentication
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