VidSi.me API Reference Toolkit
VidSi.me has a robust REST API for use by authenticated clients. The REST API documentation will enable access to key features of the platform with appropriate authorization.
Why use the VidSi.me REST API?
Verified Network Inc. has spent significant time and effort in producing a secure video conferencing platform, specifically designed for healthcare users. The REST API enables third party integrations with popular EMR platforms where telehealth video conferencing solutions are required. The API endpoints enable integrators to white-label the VidSi.me platform functionality and serve it within their own client applications. For more information about third party integrations, please contact a Verified Network Inc. representative at sales@verifiednet.com.
Getting Started
The first step to getting started with an API integration is to contact sales@verifiednet.com to request a client secret and key code. These codes will identify you to our platform and set up access permissions and roles for your client.
Your secret is a 16 digit unique identifier:
gCENyfWWIyfxWtaA
You will also need a key code, which is also a 16 character string:
uys2zVAK6WS98qzb
In addition, you will be required to specify the IP Address that will be submitting API requests.
API Authentication
To access the REST API, you must authenticate with the VidSi.me server using your secret and key code. The API authentication endpoint responds to GET requests assuming you have correctly authenticated using an authorization string as below.
You will need to pass an Authorization
header as part of the request using a Base 64 encoding of your secret and key code:
Parameters
Call the API endpoint using an https
request:
https://vidsi.me/video/rest/authenticate.php
Example Curl Request with PHP:
curl -H "Authorization: Basic Z0NFTnlmV1dJeWZ4V3RhQTp1eXMyelZBSzZXUzk4cXpi"
https://vidsi.me/video/rest/authenticate.php
Response
On successful authentication, the server will respond with the following JSON
parameters and an HTTP 200 Code:
{
"result": [
{
"access": {
"authorization": "MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==",
"expires": "36000",
"type": "Bearer"
}
}
]
}
content-length: 220
content-type: application/json; charset=UTF-8
Parameter | Type | Description |
---|---|---|
authorization | String | A unique authorization token generated from your secret and kide key and used to access other VidSi.me endpoints. |
expires | Integar | Number of milliseconds before expiry. |
type | String | Bearer. Used to describe the Authorization type in future header requests. |
The server will return an authorization_token
that is valid for 24 hours and is necessary for connection to other API endpoints.
Accessing with an API Token
In the authentication process, the server returns a token that is used to identify you to all other VidSi.me API endpoints. The token needs to be sent as an Authorization
header using the format:
Authorization: Bearer MnpWQUs2V1NaME5GVG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
Create a Call
This endpoint is used to initiate a two-way secure video call between two participants. Used when a doctor wants to communicate with another party such as a patient or other healthcare professional. To initiate a call, the Authorization
header sends the Bearer
token in the request as below:
Authorization: Bearer MnpWQUs2V1NaME5GVG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
In addition we need to specify some POST parameters:
Parameter | Type | Description |
---|---|---|
emailAddress | String | Properly formatted email address |
fullName | String | The full name of the end user, i.e. Dr. Andrew Chapman |
role | Integer | 0 = Patient, 1 = Doctor, 2 = Clinic Administrator |
styles | String | [optional] Full https URL to custom style sheet |
Example Curl Request
Call the API endpoint using an https
request:
https://vidsi.me/video/secure-video-call.php
curl --request POST \
--url https://vidsi.me/video/secure-video-call.php \
--header 'Authorization: Bearer MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==' \
--header 'Content Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data '{"client": [{"fullName": "Dr. Andy Chapman","emailAddress": "andy.chapman@example.com","role": 1}]}'
Response
On successful authentication, the server will respond with the following JSON
parameters and an HTTP 200 Code:
{
"result": {
"authorized": {
"success": "true",
"redirectUrl": "https://vidsi.me/video/videoInclude.php",
"sessionId": "IN9LkZ",
"sessionPwd": "113td7SHSdM2"
}
}
}
cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
content-length: 128
content-type: application/json; charset=UTF-8
expires: Thu, 19 Nov 1981 08:52:00 GMT
pragma: no-cache
Parameter | Type | Description |
---|---|---|
success | Boolean | True or False. If false the process fails at this point. |
redirect_url | String | The secure URL for the video call now all authentication parameters are in place. |
sessionId | String | The location hash to be used to initiate the secure video call. |
sessionPwd | String | A unique password to be used to access the video call by external invitees. |
The redirect_url
in the response can now be called by the browser to connect the user specified into the secure video call. Additional parameters are nbecessary to build the complete URL. For example using the response above, the full browser URL would be:
https://vidsi.me/video/videoInclude?token=MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==#IN9LkZ
Upon successful navigation, the end user is prompted for their full name and the session password (contained in the response above).
Styling
An example of the stylesheet for the videoInclude.php redirect can be found by clicking here
Create User Account
To schedule meetings, appointments and request payment, a valid VidSi.me user account is necessary. We need to create a POST request, sending the Authorization header and with user information:
Authorization: Bearer MnpWQUs2V1NaME5GVG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
Parameter | Type | Description |
---|---|---|
emailAddress | String | Properly formatted email address |
firstName | String | First name |
lastName | String | Last Name |
streetAddress | String | Street Address, e.h. 123 My Street |
city | String | City or Town |
provinceState | String | Province or State e.g. Alberta |
postalCode | String | Properly formatted postal code e.g. V9P 1A6 |
role | Integer | 0=Client/Customer, 1=Initiator/Business Owner |
telephone | String | Telephone number e.g. (250) 555-4567 |
enableSMS | Boolean | True/False. True = Allow SMS messages to the telephone number. |
password | String | [optional] Preferred password |
https://vidsi.me/video/rest/create-user.php
Example CURL Request
Call the API endpoint using an https
request:
curl --request POST \
--url https://vidsi.me/video/rest/create-user.php \
--header 'Authorization: Bearer MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==' \
--header 'Content Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data '{"firstName": "Andrew","lastName":"Chapman","emailAddress": "andy.chapman@example.com","role": 1,"streetAddress":"123 My Street","city","Vancouver","postalCode":"V9P 1A6","provinceState":"British Columbia","telephone":"(250) 555-4567","enableSMS":true,"password":"redballoon1234!"}'
Response
On successful account creation, the server will respond with the following JSON
parameters and an HTTP 200 Code:
{
"result": [
{
"result": "{"success": "true"}"
}
]
}
content-length: 43
content-type: application/json; charset=UTF-8
Schedule a Call
When scheduling a call, you can set the time and date and send the email addresses of the intended recipients to ther VidSi.me platform. Using parameters, you can send your own invitation text and may opt to use the VidSi.me invitation template or you can send invitation emails through your own platform using the response data provided by the endpoint. The VidSi.me invitation template structure is configured with a meeting invitation (which may be customized) and includes the meeting URL and password and the date and time for the meeting along with a calendar appointment .ics file that can be used to create a calendar appointment in the recipients web calendar.
The following parameters are submitted using a POST request with the Authorization
header.
Authorization: Bearer MnpWQUs2V1NaME5GVG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
Parameter | Type | Description |
---|---|---|
token | String | Your Base64 token resposne from the authentication endpoint |
userId | Integer | The unique VidSi.me identifier for your client (can be retrieved from the /video/rest/get-user-id.php endpoint) |
meetingTitle | String | A title for the meeting/appointment |
startDate | String | Start date and time formatted as Y-m-d h:i:s e.g. 2020-07-01 16:45:00 |
inviteText | String | a full HTML string for your invitation text/notes to accompany your invite |
attendees | String | Comma separated list of properly formatted email addresses |
remoteStyles | String | Name of custom style sheet ie. myStyles.css |
sendInvites | Boolean | true=Use the VidSi invitation template, false=Do not send an invitation to the attendee, just schedule the call |
https://vidsi.me/video/rest/schedule.php
Example CURL Request
Call the endpoint using an https
request:
curl --request POST \
--url https://vidsi.me/video/rest/schedule.php \
--header 'Authorization: Bearer MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==' \
--header 'Content Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data '{"user": [{"emailAddress": "andy.chapman@example.com","attendees": "andy@myemail.com,fred@anotherurl.ca,james@somewhere.net","token":"MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==","meetingTitle":"Meeting to review presentation","startDate":"2021-07-15 10:15:00","inviteText":"We are all set for your meeting with Maria next week. You can find the call information in this email message.","remoteStyles":"MyCompany.css"
The HTML invitation should include a brief message that explains the reason for your meeting or a note to the attendees. e.g.
The invitation text is used to invite additional attendees while the meeting is in process if additional attendees or reminders are needing to be sent.
Response
On successful account creation, the server will respond with the following JSON
parameters and an HTTP 200 Code:
{
"result":
{
"meetingTitle":"test meeting 26052021",
"startDate":"2021-07-16 09:45:00",
"meetingId":"fiFTaq",
"meetingPassword":"cmeH9F7LjDBV",
"url":"https:\/\/vidsi.me\/video\/url.php?u=herbn"
}
}
cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
content-length: 184
content-type: application/json; charset=UTF-8
expires: Thu, 19 Nov 1981 08:52:00 GMT
pragma: no-cache
Note: Content length may vary due to variations in parameters sent to the API.
Access to secure sessions is through the gid
parameter followed by the sessionId from the response parameter. e.g.
https://vidsi.me/video/url.php?u=herbn
Delete a User Account
This API endpoint is used to remove a user form the VidSi.me platform. Once a user account is deleted, all billing inforamtion, linked records, scheduled meetings and payment information is also removed. Use with caution!
The following parameters are submitted using a POST request with the Authorization
header.
Authorization: Bearer MnpWQUs2V1NaME5GVG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
Parameter | Type | Description |
---|---|---|
emailAddress | String | Properly formatted email address |
userId | integer | The user ID number |
https://vidsi.me/video/rest/delete-user.php
Example CURL Request
Call the endpoint using an https
request:
curl --request POST \
--url https://vidsi.me/video/rest/delete-user.php \
--header 'Authorization: Bearer MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==' \
--header 'Content Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data '{"emailAddress": "andy.chapman@example.com","userId": 1234567890}'
On successful location of the user account, it is deleted with associated data and the following response is given with the following JSON
parameters and an HTTP 200 code.
{
"result": [
[
{
"success": "true",
"message":"User andy.chapman@example.com has been deleted."
}
]
]
}
content-length: 125
content-type: application/json; charset=UTF-8
Create Patient Account
To attend a scheduled appointment a valid VidSi.me user account is necessary. Both doctor and patient need to be valid VidSi.me users. We need to create a POST request, sending the Authorization header and with user information:
Authorization: Bearer MnpWQUs2V1NaME5GVG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
Parameter | Type | Description |
---|---|---|
emailAddress | String | Doctor's Email Address. Properly formatted email address |
patientEmail | String | Patient's email address. Properly formatted email address |
firstName | String | First name |
lastName | String | Last Name |
streetAddress | String | Street Address, e.h. 123 My Street |
city | String | City or Town |
provinceState | String | Province or State e.g. Alberta |
postalCode | String | Properly formatted postal code e.g. V9P 1A6 |
role | Integer | 0 (Patient) |
telephone | String | Telephone number e.g. (250) 555-4567 |
enableSMS | Boolean | True/False. True = Allow SMS messages to the telephone number. |
password | String | [optional] Preferred password |
clinicId | Integer | [optional] Clinic Account Id |
PHN | String | Patient health number/insurance number* |
* The PHN is encrypted before storing in the database.
POSThttps://vidsi.me/video/rest/create-patient.php
Example CURL Request
Call the API endpoint using an https
request:
curl --request POST \
--url https://vidsi.me/video/rest/create-patient.php \
--header 'Authorization: Bearer MnpWQUs2V1NaME5GSG5sbSYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==' \
--header 'Content Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data '{"user": [{"firstName": "Barbara","lastName":"Peacock","emailAddress": "andy.chapman@example.com","role": 0,"streetAddress":"#5 114 Maple Avenue E","city","Kamloops","postalCode":"K1B 7AB","provinceState":"British Columbia","telephone":"(250) 555-4567","enableSMS":true,"password":"redballoon1234!","PHN":"456-123-456-987","patientEmail":"barbara@example.com"}]}'
Response
On successful account creation, the server will respond with the following JSON
parameters and an HTTP 200 Code:
{
"result": [
{
"result": "{"success": "true"}"
}
]
}
content-length: 43
content-type: application/json; charset=UTF-8
Retrieve User Identity
You may wish to use the ID of a user to schedule appointments or to check if a user account exists. This API endpoint will return the user ID for a given email address if properly authorized. We need to create a GET request, sending the Authorization header and with user information:
Authorization: Bearer MnpWQUs2V1NaME5GVG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
Parameter | Type | Description |
---|---|---|
emailAddress | String | Properly formatted email address |
https://vidsi.me/video/rest/get-user-id.php
Example CURL Request
Call the API endpoint using an https
request:
curl --request GET \
--url https://vidsi.me/video/rest/get-user-id.php \
--header 'Authorization: Bearer MnpWQUs2V1NaME5SVG5sbSYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==' \
--header 'Content Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data '{"user": [{"emailAddress": "andy.chapman@example.com"}]}'
Response
On successful account creation, the server will respond with the following JSON
parameters and an HTTP 200 Code:
{
"result": [
{
"result": "{
"success": "true", "userID":"1593206497"
}"
}
]
}
content-length: 66
content-type: application/json; charset=UTF-8
Schedule a Patient Call
To schedule patient calls,a valid patient account is necessary. Use the Create Patient endpoint to create the patient record before attempting to create a scheduled appointment. We need to create a POST request, sending the Authorization header and with user information:
Authorization: Bearer MnpWQUs2V1NaME5GVG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
Parameter | Type | Description |
---|---|---|
emailAddress | String | Doctor Email Address. Properly formatted email address |
patientId | Integer | Use the Get User Id endpoint for the patient account |
startDate | Date | Formatted date Y-m-d h:i:s, e.g. 2020-10-05 11:00:00 |
https://vidsi.me/video/rest/schedule-appointment.php
Example CURL Request
Call the API endpoint using an https
request:
curl --request POST \
--url https://vidsi.me/video/rest/schedule-appointment.php \
--header 'Authorization: Bearer MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==' \
--header 'Content Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data '{"user": [{"emailAddress": "andy.chapman@example.com", "patientId":164579542,"startDate":"2020-10-05 11:30:00"}]}'
Response
When the appointment is scheduled, the server will respond with the following JSON
parameters and an HTTP 200 Code:
{
"result": [
[
"{
"success": "true",
"message":"Appointment has been scheduled.",
"redirectUrl":"https://vidsi.me/video/videoInclude.php",
"sessionId":"tt5DVy"
"sessionPwd":"cx6INeZqA1V1"
"shortUrl":"https://vidsi.me/video/url.php?u=d27wc"
}"
]
]
}
content-length: 185
content-type: application/json; charset=UTF-8
Note: Content length may vary due to variations in parameters sent to the API.
A Short URL is provided that will translate to the secure call screen. Alternatively, you can pass additional parameters to the query string as follows.
To create a link for the patient to join the call, additional parameters are required in the URL. The URL has the following parameters:
Parameter | Type | Description |
---|---|---|
i | String | Appointment Type. YXBwdA== = Appointment |
token | String | Use the secure authorization token. MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ== |
Location Hash | String | Meeting Hash (from sessionId result). tt5DVy |
Example URL:
https://vidsi.me/video/videoInclude.php?i=YXBwdA==&token=MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==#tt5DVy
This URL can be sent to the patient as part of a confirmation process with the date and time for the appointment and the meeting password. To access the secure meeting, the patient will need to enter their email address (used when creating the patient account).
Sample Workflow
The following workflow schematics are given as examples of business processes.
Scheduling an Appointment
Open Secure Session
A secure session can be initiated for an immediate call between parties. The response provides a redirect URL with session ID and password.
Debugging your API calls
VidSi.me has an integrated API logging system that can help you to debug your API calls and responses. The API log is based on the originating IP address. To view your log calls, visit the URL:
https://vidsi.me/video/rest/viewLog.php
Log files can be viewed by selecting the date at the top of the screen.