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:

GET
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
          

ParameterTypeDescription
authorizationStringA unique authorization token generated from your secret and kide key and used to access other VidSi.me endpoints.
expiresIntegarNumber of milliseconds before expiry.
typeStringBearer. 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:

ParameterTypeDescription
emailAddressStringProperly formatted email address
fullNameStringThe full name of the end user, i.e. Dr. Andrew Chapman
roleInteger0 = Patient, 1 = Doctor, 2 = Clinic Administrator
stylesString[optional] Full https URL to custom style sheet

Example Curl Request

Call the API endpoint using an https request:

POST
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
ParameterTypeDescription
successBooleanTrue or False. If false the process fails at this point.
redirect_urlStringThe secure URL for the video call now all authentication parameters are in place.
sessionIdStringThe location hash to be used to initiate the secure video call.
sessionPwdStringA 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==

ParameterTypeDescription
emailAddressStringProperly formatted email address
firstNameStringFirst name
lastNameStringLast Name
streetAddressStringStreet Address, e.h. 123 My Street
cityStringCity or Town
provinceStateStringProvince or State e.g. Alberta
postalCodeStringProperly formatted postal code e.g. V9P 1A6
roleInteger0=Client/Customer, 1=Initiator/Business Owner
telephoneStringTelephone number e.g. (250) 555-4567
enableSMSBooleanTrue/False. True = Allow SMS messages to the telephone number.
passwordString[optional] Preferred password
POST
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==

ParameterTypeDescription
tokenStringYour Base64 token resposne from the authentication endpoint
userIdIntegerThe unique VidSi.me identifier for your client (can be retrieved from the /video/rest/get-user-id.php endpoint)
meetingTitleStringA title for the meeting/appointment
startDateStringStart date and time formatted as Y-m-d h:i:s e.g. 2020-07-01 16:45:00
inviteTextStringa full HTML string for your invitation text/notes to accompany your invite
attendeesStringComma separated list of properly formatted email addresses
remoteStylesStringName of custom style sheet ie. myStyles.css
sendInvitesBooleantrue=Use the VidSi invitation template, false=Do not send an invitation to the attendee, just schedule the call
POST
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.
Example HTML invitation
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==

ParameterTypeDescription
emailAddressStringProperly formatted email address
userIdintegerThe user ID number
POST
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==

ParameterTypeDescription
emailAddressStringDoctor's Email Address. Properly formatted email address
patientEmailStringPatient's email address. Properly formatted email address
firstNameStringFirst name
lastNameStringLast Name
streetAddressStringStreet Address, e.h. 123 My Street
cityStringCity or Town
provinceStateStringProvince or State e.g. Alberta
postalCodeStringProperly formatted postal code e.g. V9P 1A6
roleInteger0 (Patient)
telephoneStringTelephone number e.g. (250) 555-4567
enableSMSBooleanTrue/False. True = Allow SMS messages to the telephone number.
passwordString[optional] Preferred password
clinicIdInteger[optional] Clinic Account Id
PHNStringPatient health number/insurance number*

* The PHN is encrypted before storing in the database.

POST
https://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==

ParameterTypeDescription
emailAddressStringProperly formatted email address
GET
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==

ParameterTypeDescription
emailAddressStringDoctor Email Address. Properly formatted email address
patientIdIntegerUse the Get User Id endpoint for the patient account
startDateDateFormatted date Y-m-d h:i:s, e.g. 2020-10-05 11:00:00
POST
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:

ParameterTypeDescription
iStringAppointment Type. YXBwdA== = Appointment
tokenStringUse the secure authorization token. MnpWQUs2V1NaME5GSG5sbVYxZEplV1o0VjNSaFFUcDFlWE15ZWxaQlN6WlhVems0Y1hwaQ==
Location HashStringMeeting 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

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.

Start immediate secure session

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.