Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Introduction to VSee Clinic API

VSee Clinic API allow developer to make their own interface while still having full VSee Clinic and VSee Call capability.

Common Workflows

Example Set up

Let's take a look at a typical example set up

Key

Example

Note

Clinic Portal URL

https://vclinic.com

This is your original portal

Account code

vclinic

Your VSee Clinic Account Code

API Key

vclinic_api_key

The key generated under Developers menu

API Secret

vclinic_api_secret

The secret generated under Developers menu

API Endpoint

https://api-vclinic.vseepreview.com/vc/next/api_v3/

To be advised by VSee Clinic Team

Clinic Portal URL

https://vclinic.vseepreview.com/vc/next/

To be advised by VSee Clinic Team

Waiting Room URL

https://vclinic.vseepreview.com/vc/next/u/clinic

To be advised by VSee Clinic Team

User Code

mypatient_uuid1234-5678-90

This is anything that you can formular and act as a way for VSee Clinic to identify the your user

Patient Side Integration

Prerequisites: I already have a portal for patients with a way to sign up and login. I want to extend the functionality by letting them proceed to VSee Clinic without a need of additional sign up / login.

Use case #1: Log patient in and take them to VSee Clinic's patient dashboard

Step 1: Obtain patient access token from POST /users/sso API call

The API will return you the token (data.token.token) look like this 66bcd0acff324e8a44992d9596b5d361.

Step 2: Redirect the user to your VSee Clinic page

You need to provide the user with a button or link to redirect to VSee Clinic. The URL will follow this pattern

{portal_base_url}auth?sso_token={token}&next={next_url}

e.g

https://vclinic.vseepreview.com/vc/next/auth?sso_token=66bcd0acff324e8a44992d9596b5d361&next=/u/clinic

This will log user in, then redirect user to

https://vclinic.vseepreview.com/vc/next/u/clinic

Additional options: - disable_navigation: 1 - disable all email communication

e.g

https://vclinic.vseepreview.com/vc/next/auth?sso_token=66bcd0acff324e8a44992d9596b5d361&next=/u/clinic&disable_navigation=1

Use case #2: Log Patient In using SSO Token and Start a Video Session

Step 1: Obtain patient access token from POST /users/sso API call

The API will return you the token (data.token.token) look like this 66bcd0acff324e8a44992d9596b5d361. User's ID (data.id) will also be used as member_id later in Step 3.

Step 2: Create intake object via POST /intakes API

Use the SSO token from Step 1 in the X-ApiToken header field. You will get an intake ID in the response (data.id), e.g. 61165a8e-d8cc-47da-bd8e-597d64457b1f

Step 3: Create a walkin visit via POST /visits/add_walkin API

Use SSO token from Step 1 in the X-ApiToken header field and intake_id from Step 2. You will get a visit ID in the response (data.id, e.g. 67258

Step 4: Redirect the patient into the video call/chat page:

https://vclinic.vseepreview.com/vc/next/auth?sso_token=9fa6239291aa27d9528416cdcafbd6a5&next=/visits/inbrowser_calling/67258

Use case #3: Log Patient In using SSO Token and Schedule An Appointment

Step 1: Obtain patient access token from POST /users/sso API call

The API will return you the token (data.token.token) look like this 66bcd0acff324e8a44992d9596b5d361. User's ID (data.id will also be used as member_id later in Step 3.

Step 2: Create intake object via POST /intakes API

Use the SSO token from Step 1 in the X-ApiToken header field. You will get an intake ID in the response (data.id), e.g. 61165a8e-d8cc-47da-bd8e-597d64457b1f

Step 3: Create a scheduled appointment visit via POST /visits API

Use the SSO token from Step 1 in the X-ApiToken header field and intake_id from Step 2. You will get a visit ID in the response (data.id) e.g. 67258

If your clinic is configured to use one time appointment links then the visit object will also contain data.one_time_link_token, e.g. f7gybzjd9o

You can build a link using the format below and send it to the patient:

https://vclinic.vseepreview.com/vc/next/members/appointment/67258?token= f7gybzjd9o

Provider Side Integration

Use Case #1: Provider Accessing Web Dashboard using SSO Token

Usecase: I already have a way to sign up, manage my provider on my own providers' portal and now I want them to go to VSee Clinic for additional telehealth functionality.

Here is how you log in and redirect your provider using access token.

Step 1: Obtain provider access token from POST /users/sso API call

The API will return you the token (data.token.token) look like this 66bcd0acff324e8a44992d9596b5d361.

Step 2: Redirect the provider to their dashboard

You need to provide the user with a button or link to redirect to VSee Clinic. URL will follow this pattern

{portal_base_url}auth?sso_token={token}&next={next_url}

e.g https://vclinic.vseepreview.com/vc/next/auth?sso_token=66bcd0acff324e8a44992d9596b5d361&next=/providers/dashboard

This will log user in, then redirect user to https://vclinic.vseepreview.com/vc/next/providers/dashboard

Use Case #2: Create a Provider Account With a Room

Usecase: I already have a way to sign up, manage my provider on my own providers' portal and now I want them to go to VSee Clinic for additional telehealth functionality. My portal has multiple providers, each provider should have their own Waiting Room in VSee Clinic to accept their own pool of patients.

Step 1: Obtain provider access token from POST /users/sso API call

The API will return you the token (data.token.token) look like this 66bcd0acff324e8a44992d9596b5d361.

Step 2: Create a waiting room in the clinic via POST /rooms API call

The API will return you the room ID and room code (data.id , data.code). If the room already exists, it will return error 400.

Step 3: Assign the newly created provider to the waiting room via POST /users/:id/rooms API call

Step 4: Redirect the provider to their dashboard. The provider will be assigned to a room already and be able to see patients from that room.

You need to provide the user with a button or link to redirect to VSee Clinic. URL will follow this pattern

{portal_base_url}auth?sso_token={token}&next={next_url}

e.g https://vclinic.vseepreview.com/vc/next/auth?sso_token=66bcd0acff324e8a44992d9596b5d361&next=/providers/dashboard

This will log user in, then redirect user to https://vclinic.vseepreview.com/vc/next/providers/dashboard

API Documentation

API Setup

API Endpoints

  • Production: https://api.vsee.me/api_v3/

  • Staging: https://api.vseepreview.com/vc/next/api_v3/

Note: Your clinic setting on Production environment is not available on Staging environment unless set up by VSee Clinic Support team.

API Parameters

Parameter

Location

Type

Description

X-AccountCode

Header

Header

If the app knows the account code, it should pass it in this header for every request. Otherwise leave blank

X-ApiToken

Header

Header

Once the user logs in, the app gets the token and should pass it for every request.

user_id

URL

String

Wherever there’s user’s :id field in API methods, it will also accept dash (-) as a mapping to the current user.

API Objects

User Object

(To be completed soon)

Visit Object

status:

Status Code

Meaning

Description

10

Pending

Visit was just created

20

Confirmed

Appointment is confirmed

25

In-progress

Visit is in progress

30

Completed

Visit is closed

40

Deleted / Cancelled

Visit is cancelled by patient or provider

Intake Object

(To be completed soon)

Settings API

GET /settings.json [public access]

Parameters

(None)

Response

curl https://api.vsee.me/api_v3/settings.json

{
  "data": {
    "visit": {
      "time": {
        "max_wait_time": 86400
      }
    }
  }
}

GET /settings/:path.json [public access]

Parameters

Parameter

Type

Description

path

String

The path to the settings object. e.g. visit/time/max_wait_time

Response

curl https://api.vsee.me/api_v3/settings/visit/time/max_wait_time.json

{
  "data": 86400
}

Users API

POST /users/sso

Single Sign On for patient and provider.

This is disabled by default, you need to contact admin@vsee.com to request for it.

SSO process will create a user record on VSee side when you first call this API and will map to and return existing user record for further requests.

Parameters

Parameter

Type

Description

first_name

String

Required

last_name

String

Required

dob

String

Optional

type

Integer

200: Member, 400: Provider, 600: Guest User

code

String

Required if type is 200 or 400 / Max length: 128 character
code is a unique user identifier on your end. VSee will store the code for this user record and next time you call SSO, we will return you the same existing user.

email

String

Optional

username

String

Optional - system will generate one as fallback

disable_emails

Integer

Optional - set to 1 - if you want user to disable all email notification

Response

Note: you can use the data.token.token return here to redirect user from your portal to VSee Clinic portal, please see Workflows section.

Guest SSO

curl -X POST
    -H "X-AccountCode: vclinic"
    -H "X-ApiKey: vclinic_api_key"  
    -H "Content-Type: multipart/form-data;"
    -F "first_name=John"
    -F "last_name=Smith"
    -F "dob=1990-01-01"
    -F "type=600"
    "https://api.vsee.me/api_v3/users/sso.json" -k

{
    "data": {
        "id": "10008",
        "code": "57d76ada0bb444f9b3057855ac1f0144",
        "first_name": "John",
        "last_name": "Smith",
        "username": "57d76ad979b843e6973e7855ac1f0144",
        "vseeid": "conciergedev+57d76ad979b843e6973e7855ac1f0144",
        "dob": "1990-01-01",
        "active": true,
        "tos": false,
        "subtype": "",
        "token": {
            "user_id": "10008",
            "token": "0437c1ce3b7079906e2ff247aad1adda",
            "expiry": 1473821786,
            "refresh_token": {
                "user_id": "10008",
                "token": "2693615fd2a46edf13334b3f35580e26",
                "expiry": 1476327386,
                "created": 1473735386
            }
        }
    }
}

Patient SSO

curl -X POST
    -H "X-AccountCode: vclinic"
    -H "X-ApiKey: vclinic_api_key"  
    -H "Content-Type: multipart/form-data;"
    -F "first_name=John"
    -F "last_name=Smith"
    -F "code=ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
    -F "type=200"
    "https://api.vsee.me/api_v3/users/sso.json" -k

{
    "data": {
        "id": "10008",
        "code": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb",
        "first_name": "John",
        "last_name": "Smith",
        "username": "57d76ad979b843e6973e7855ac1f0144",
        "vseeid": "conciergedev+57d76ad979b843e6973e7855ac1f0144",
        "active": true,
        "tos": false,
        "subtype": "",
        "token": {
            "user_id": "10008",
            "token": "0437c1ce3b7079906e2ff247aad1adda",
            "expiry": 1473821786,
            "refresh_token": {
                "user_id": "10008",
                "token": "2693615fd2a46edf13334b3f35580e26",
                "expiry": 1476327386,
                "created": 1473735386
            }
        }
    }
}

Provider SSO

curl -X POST
    -H "X-AccountCode: vclinic"
    -H "X-ApiKey: vclinic_api_key"
    -H "Content-Type: multipart/form-data;"
    -F "first_name=John"
    -F "last_name=Provider"
    -F "code=cd978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
    -F "type=400"
    "https://api.vsee.me/api_v3/users/sso.json" -k

{
    "data": {
        "id": "10008",
        "code": "cd978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb",
        "first_name": "John",
        "last_name": "Provider",
        "username": "57d76ad979b843e6973e7855ac1f0144",
        "vseeid": "conciergedev+57d76ad979b843e6973e7855ac1f0144",
        "active": true,
        "tos": false,
        "subtype": "",
        "token": {
            "user_id": "10008",
            "token": "0437c1ce3b7079906e2ff247aad1adda",
            "expiry": 1473821786,
            "refresh_token": {
                "user_id": "10008",
                "token": "2693615fd2a46edf13334b3f35580e26",
                "expiry": 1476327386,
                "created": 1473735386
            }
        }
    }
}

POST /users/login.json [public access]

Log user in and retrieve access token

Notes:

  1. user_type will be member(200), provider(400), …, etc

  2. There is 2 methods for log in

    1. active user

      1. use username and password field

    2. inactive user

      1. user email and email token sent to their email

      2. only after user update their password via API, their status will change to active and can log in via active user log in method above.

Parameters

Parameter

Type

Description

username

String

(for active user only)

password

String

(for active user only)

email

String

(for non-active user who has not set the password yet)

email_token

String

(for non-active user who has not set the password yet)

Response

Note: you can use the token.token return here to redirect user from your portal to VSee Clinic portal, please see Section Web log in using SSO Token.

curl -X POST -d "username=member-201&password=111111" https://api.vsee.me/api_v3/users/login.json

curl -X POST -d "email=an+1@vsee.com&email_token=ztpand" https://api.vsee.me/api_v3/users/login.json

{
  "data": {
    "user_id": "201",
    "token": "18c31fa10afb6f0857c803eb01a2b392",
    "expiry": 1473822319,
    "created": 1473735919,
    "user_type": "200",
    "refresh_token": {
      "user_id": "201",
      "token": "6338a6e42f407acf39d07a63442efb9d",
      "expiry": 1476327919,
      "created": 1473735919
    },
    "user": {
      "id": "201",
      "code": "54bdf165f02c4a0fbaac2603ac1f0144",
      "first_name": "Lemuel",
      "last_name": "Eveline (201)test",
      "username": "member-201",
      "vseeid": "conciergedev+richard",
      "dob": "1960-01-01",
      "email": "an+user1@vsee.com",
      "gender": 2,
      "photo": "https://api.vsee.me/api_v3/files/index/app_user/photo/201/?auth_code=e965cbbe29c1fc1e8076ff00733648625bd56ac0",
      "active": true,
      "tos": false,
      "phone": "800-555-5555",
      "subtype": "",
      "street_addr": "FIrst str 12",
      "state": "CA",
      "city": "San Francisco",
      "zip": "01234",
      "pcp_name": "",
      "pcp_phone": ""
    }
  }
}

GET /me

Parameters

Parameter

Type

Description

user_photo_size

String

(optional) User photo dimensions in {W}x{H} format. Example: 320x240.

Response

curl -X GET -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" https://api.vsee.me/api_v3/me.json

{
    "data": {
        "id": "201",
        "first_name": "An",
        "last_name": "Nguyen",
        "username": "member-201",
        "dob": "1960-01-01",
        "email": "an+user1@vsee.com",
        "gender": 2,
        "active": true,
        "nationality": "Vietnamese",
        "tos": false,
            "photo": "https://api.vsee.me/api_v3/files/57e8c9a2-5c30-4b2c-b9d0-11d6ac1f0144?auth_code=8cd13ff90604b5820d2cfb16859054e9c1c074c4&time=1474873881&size=320x240",
    }
}

POST /me

Update current user profile

Parameters

Parameter

Type

Description

password

String

(optional) Should be sent alone if it’s first time setting password, or together with old_password to change it.

old_password

String

(optional) Should be sent when user is changing password

dob

Date

(optional) yyyy-mm-dd

gender

String

(optional) male / female

nationality

String

(optional) choose 1 from the list e.g Vietnamese

tos

Integer

0 - not accepting / 1 - accepted Terms of service

phone

String

(optional) phone number

first_name

String

(optional) First name

last_name

String

(optional) Last name

street_addr

String

(optional) Street addr

state

String

(optional) 2 letter state code (CA, AL)

zip

String

(optional) eg 07123

city

String

(optional) City

pcp_name

String

(optional) Primary Care Physician Name

pcp_phone

String

(optional) Primary Care Physician Phone (10 digit)

timezone

String

(optional) See timezone list below

photo

String

(optional) File id retrieved from POST /files API call to upload photo

To delete the uploaded avatar, pass empty string. latlong??? gps | Object | json object, min lat, long

Timezone List

$timezones = array(
        'America/Los_Angeles' => "(GMT-08:00) Pacific Time (US & Canada)",
        'America/Denver' => "(GMT-07:00) Mountain Time (US & Canada)",
        'America/Chicago' => "(GMT-06:00) Central Time (US & Canada)",
        'America/New_York' => "(GMT-05:00) Eastern Time (US & Canada)",
        'Pacific/Pago_Pago' => "(GMT-11:00) Coordinated Universal Time-11",
        'Pacific/Honolulu' => "(GMT-10:00) Hawaii",
        'America/Anchorage' => "(GMT-09:00) Alaska",
        'America/Mazatlan' => "(GMT-07:00) Chihuahua, La Paz, Mazatlan",
        'America/Guatemala' => "(GMT-06:00) Central America",
        'America/Mexico_City' => "(GMT-06:00) Guadalajara, Monterrey, Mexico City",
        'America/Regina' => '(GMT-06:00) Saskatchewan',
        'America/Bogota' => "(GMT-05:00) Bogota, Lima, Quito",
        'America/Caracas' => "(GMT-04:30) Caracas",
        'America/Asuncion' => "(GMT-04:00) Asuncion",
        'America/Halifax' => "(GMT-04:00) Atlantic Time (Canada)",
        'America/Santiago' => "(GMT-04:00) Santiago",
        'America/St_Johns' => "(GMT-03:30) St Johns, Newfoundland",
        'America/Buenos_Aires' => "(GMT-03:00) Buenos Aires",
        'America/Godthab' => "(GMT-03:00) Godthab, Greenland",
        'America/Montevideo' => "(GMT-03:00) Montevideo",
        'America/Sao_Paulo' => "(GMT-03:00) Sao Paulo, Brasilia",
        'America/Noronha' => "(GMT-02:00) Mid-Atlantic",
        'Atlantic/Azores' => "(GMT-01:00) Azores",
        'Atlantic/Cape_Verde' => "(GMT-01:00) Cape Verde Is.",
        'Europe/London' => "(GMT+00:00) Dublin, Edinburgh, Lisbon, London",
        'UTC' => "(GMT+00:00) Monrovia, Reykjavik",
        'Europe/Berlin' => "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",
        'Europe/Prague' => "(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",
        'Europe/Paris' => "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris",
        'Europe/Warsaw' => "(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb",
        'Africa/Windhoek' => "(GMT+01:00) Windhoek",
        'Africa/Johannesburg' => "(GMT+02:00) Johannesburg, Harare, Pretoria",
        'Asia/Beirut' => "(GMT+02:00) Beirut",
        'Europe/Bucharest' => "(GMT+02:00) Athens, Bucharest",
        'Europe/Istanbul' => "(GMT+02:00) Istanbul",
        'Asia/Damascus' => "(GMT+02:00) Damascus",
        'Asia/Jerusalem' => "(GMT+02:00) Jerusalem",
        'Africa/Cairo' => "(GMT+02:00) Cairo",
        'Europe/Kiev' => "(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",
        'Asia/Amman' => "(GMT+03:00) Amman",
        'Europe/Minsk' => "(GMT+02:00) Kalinignrad, Minsk",
        'Asia/Baghdad' => "(GMT+03:00) Baghdad",
        'Asia/Riyadh' => '(GMT+03:00) Kuwait, Riyadh',
        'Asia/Tehran' => "(GMT+03:30) Tehran",
        'Europe/Moscow' => "(GMT+04:00) Moscow, St. Petersburg, Volgograd",
        'Asia/Dubai' => "(GMT+04:00) Dubai, Abu Dhabi, Muscat",
        'Asia/Yerevan' => "(GMT+04:00) Yerevan",
        'Asia/Baku' => "(GMT+04:00) Baku",
        'Asia/Kabul' => "(GMT+04:30) Kabul",
        'Asia/Karachi' => "(GMT+05:00) Islamabad, Karachi",
        'Asia/Kolkata' => "(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi",
        'Asia/Colombo' => "(GMT+05:30) Sri Lanka",
        'Asia/Kathmandu' => "(GMT+05:45) Kathmandu",
        'Asia/Yekaterinburg' => "(GMT+06:00) Ekaterinburg",
        'Asia/Dhaka' => "(GMT+06:00) Dhaka",
        'Asia/Rangoon' => "(GMT+06:30) Yangon",
        'Asia/Novosibirsk' => "(GMT+07:00) Novosibirsk",
        'Asia/Ho_Chi_Minh' => "(GMT+07:00) Hanoi, Hochiminh City, Bangkok",
        'Asia/Jakarta' => "(GMT+07:00) Jakarta",
        'Asia/Krasnoyarsk' => "(GMT+07:00) Krasnoyarsk",
        'Asia/Shanghai' => "(GMT+08:00) Shanghai, Beijing, Chongqing, Hong Kong, Urumqi",
        'Asia/Singapore' => "(GMT+08:00) Singapore, Kuala Lumpur",
        'Asia/Taipei' => "(GMT+08:00) Taipei",
        'Australia/Perth' => "(GMT+08:00) Perth",
        'Asia/Irkutsk' => "(GMT+09:00) Irkutsk",
        'Asia/Tokyo' => "(GMT+09:00) Osaka, Sapporo, Tokyo",
        'Asia/Seoul' => "(GMT+09:00) Seoul",
        'Australia/Darwin' => "(GMT+09:30) Darwin",
        'Australia/Adelaide' => "(GMT+09:30) Adelaide",
        'Australia/Brisbane' => "(GMT+10:00) Brisbane",
        'Pacific/Guam' => "(GMT+10:00) Guam, Port Moresby",
        'Asia/Yakutsk' => "(GMT+10:00) Yakutsk",
        'Australia/Sydney' => "(GMT+10:00) Canberra, Melbourne, Sydney",
        'Australia/Hobart' => "(GMT+10:00) Hobart",
        'Asia/Vladivostok' => "(GMT+11:00) Vladivostok",
        'Pacific/Fiji' => "(GMT+12:00) Fiji",
        'Asia/Magadan' => "(GMT+12:00) Magadan",
        'Pacific/Auckland' => "(GMT+12:00) Auckland, Wellington",
        'Pacific/Tongatapu' => "(GMT+13:00) Tongatapu, Nuku'alofa",
        'Pacific/Apia' => "(GMT+13:00) Samoa"
    )
);

Response

curl -X POST -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734"
-d "password=111111&dob=1983-10-02&nationality=Vietnamese"
https://api.vsee.me/api_v3/me.json

{
    "data": {
        "id": "201",
        "first_name": "An",
        "last_name": "Nguyen",
        "username": "member-201",
        "dob": "1960-01-01",
        "email": "an+user1@vsee.com",
        "gender": 2,
        "active": true,
        "nationality": "Vietnamese",
        "tos": true
    }
}

POST /users/logout

Parameters

Parameter

Type

Description

tokens

Array

Array of tokens to be destroyed, e.g ['token1','token2'] or string 'token1,token2'

Response

{
    "data": true
}

POST /tokens/refresh

Parameters

Parameter

Type

Description

refresh_token

String

Response

curl -X POST -d "refresh_token: 6366a7018a39536a1ef4b63626f8e734" https://api.vsee.me/api_v3/tokens/refresh.json

{
    "data": {
        "user_id": "201",
        "user_type": "200",
        "token": "b21ab6cb871fa452a1193f0fbcf400d5",
        "expiry": 1426236055,
        "user": {
            "id": "201",
            "code": "55011c6c5b5c4aed99624956c0a801ee",
            "username": "member-201",
            "first_name": "Kristopher",
            "last_name": "Nieves (201)",
            "email": "an+user1@vsee.com",
            "dob": "1960-01-01",
            "gender": "Female",
            "photo": null,
            "name": "Kristopher Nieves (201)"
        },
    }
}

POST /users/reset_password

Parameters

Parameter

Type

Description

email

String

Valid email to send reset password email

Response

curl -X POST -d "email=an+1@vsee.com" https://api.vsee.me/api_v3/users/reset_password.json

{
    "data": true
}        

POST /users/alive

When user is in critical workflow such as waiting for provider to call, it's required to send keep alive at certain interval recommended < 1/2 of the heartbeat value. Only "alive" patients will be able to show up on provider dashboard

Parameters

Parameter

Type

Description

heartbeat

Integer

(optional) default value is 300s, you can set your own heartbeat value, the more intermittent your network connection, the higher the value you should set. Ideally for mobile, set to about 300s and update every 250s

Response

curl -X POST -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" https://api.vsee.me/api_v3/users/alive.json

{
    "data": {
        "last_connected": 1423023124,
        "heartbeat": 300
    }
}

POST /users/activate

It will check user info against eligibility file if configured for the current account. User will receive email with activation code.

Parameters

Parameter

Type

Description

first_name

String

last_name

String

email

String

e.g an@vseeclinic.com

dob

String

YYYY-MM-DD e.g 1988-10-02

ssn

String

4 digits e.g 1234, 1111

Response

curl -X POST -d "first_name=An&last_name=Nguyen&email=an@vsee.com" https://api.vsee.me/api_v3/users/activate.json

{
    "data": true
}

EMR API

GET /users/:id/emr

Parameters

Parameter

Type

Description

id

String

User’s or "-" (dash) for current user

Response

curl -k -X GET -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" -H "X-AccountCode: vclinic" "https://api.vsee.me/api_v3/users/575/emr"

{
  "data": {
    "allergies": {
      "data": [
        {
          "substance": "A+D"
        }
      ],
      "modified": 1467667527,
      "modified_by": {
        "id": "575",
        "type": "200",
        "subtype": "",
        "first_name": "Keven2",
        "last_name": "Teodoro2",
        "title": "Dr.",
        "Suffix": "MD"
      }
    },
    "conditions": {
      "data": [
        {
          "condition": "Bleeding problem"
        }
      ],
      "modified": 1465941203,
      "modified_by": {
        
      },
      ...
    }
  }
}

POST /users/:id/emr/:name

Input fields should follow schema from GET /emr/schema for corresponding :name schema.

Parameters

Parameter

Type

Description

id

String

User’s or "-" (dash) for current user

name

String

Name of emr schema. Eg: conditions, surgeries, allergies, medications, family_conditions, social_history, health_habits

data

JSON

The health data object

data_not_reported

Boolean

True: User selects not to declare any data; False: User decides to input some data

Conditions {"data":[{"condition":"Asthma"},{"condition":"Bleeding problem"}], "data_not_reported":false}

Surgeries {"data":[{"procedure":"Heart valve replaced"}], "data_not_reported":false}

Family History {"data":[{"condition":"Alcoholism","relations":["Mother","Father"]},{"condition":"Asthma","relations":["Mother","Father"]}], "data_not_reported":false}

Social History {"data":{"marital_status":"Single","highest_ed":"Grammar school","occupation":"test","num_kids":"5"}, "data_not_reported":false}

Health Habits {"data":{"smoking":"Never","alcohol":"Never","drugs":"qwerty","exercise":"Never"}, "data_not_reported":false}

Medications {"data":[{"name": "Tylenol"}], "data_not_reported":false}

Allergies {"data":[{ "substance": "1-Day" }, {"substance": "12 Hour Nasal"}], "data_not_reported":false}

Response

curl -k -X POST -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" -H "X-AccountCode: vclinic" -H "Content-Type: application/json" -d '{"data":[{"condition":"Asthma"},{"condition":"Bleeding problem"}],"data_not_reported":false}' "https://api.vsee.me/api_v3/users/575/emr/conditions"

{
  "data": {
    "data": {
      "marital_status": "Single",
      "highest_ed": "Grammar school",
      "occupation": "test",
      "num_kids": "5"
    }
  }
}

ePrescribe API

GET /users/:id/erx/prescriptions

Get list of current prescriptions for a patient.

Parameters

Parameter

Type

Description

status

String

Status of prescriptions. Send "Current" by default.

Response

{
  "data": [
    {
      "ID": "101544",
      "DrugID": "69202",
      "NDC": "59390003613",
      "RxNormCode": "1000990",
      "Drug": "12 Hour Nasal 0.05% nasal spray",
      "Supply": false,
      "Compound": false,
      "Directions": "1 Milliliter(s) 1 to 2 times a day",
      "Qty": 5,
      "QtyQual": "Milliliter",
      "Refills": 0,
      "DaysSupply": 0,
      "SubstitutionAllowedFlag": 1,
      "Schedule": 0,
      "PharmacyNote": "",
      "InternalNote": "",
      "PrescriberId": "403",
      "LocationId": "Cep tuc ID",
      "PrescriptionDate": "2016-03-09T00:00:00",
      "SignDate": "0001-01-01T00:00:00",
      "Status": "Current",
      "PharmacyNcpdpId": "0001060",
      "RouteDetail": "e-Sent:Mar  9 2016  8:38AM Test 000 Pharmacy 10.6MU<br />Sent",
      "PartnerMedID": "",
      "PrescriberName": "Dr. Rocky Charlette, N.P."
    }
  ]
}

GET /users/:id/erx/pharmacies

Parameters

Parameter

Type

Description

id

String

User ID or dash (-) for current user

Response

Array of Pharmacy object

curl -k -X GET -H "X-ApiToken: c1dfcb553b2395a902722387222310a4" -H "X-AccountCode: vclinic" "https://api.vsee.me/api_v3/users/575/erx/pharmacies"

{
  "data": [
    {
      "is_default": true
      "name": "4700 Sunset Blvd",
      "address": "4700 Sunset Boulevard",
      "address_more": "2nd line of address",
      "code": "0561539",
      "city": "Los Angeles",
      "country": "",
      "state": "CA",
      "zip": "90027",
      "phone": "8663528725",
      "fax": "8663528725",
      "lat": 36.800488,
      "long": -116.718750,
      "distance": 0.95993211712521
    }
  ]
}

POST /users/:id/erx/pharmacies

Save patient’s currently chosen pharmacy.

Parameters

Parameter

Type

Description

address

String

1010 UNIVERSITY AVENUE, SAN DIEGO, CA, 92103

address_more

String

code

String

5555008

name

Date

02855

city

String

Los Angeles

country

String

state

String

CA

zip

String

90027

phone

String

4017707046

fax

String

8663528725

lat

Double

36.800488

long

Double

-116.718750

distance

Double

0.95993211712521

type

String

mdtoolbox

extra

Object

Unmodified data returned by pharmacy search API

Response

    curl -k -X POST -H "X-ApiToken: c1dfcb553b2395a902722387222310a4" -H "X-AccountCode: vclinic" -H "Content-Type: application/json" -d '   {
      "name": "A247PC00-Anesthesia 24/7, PC",
      "address": "Freas Avenue, 1200",
      "address_more": "",
      "code": "1001103",
      "city": "Berwick",
      "country": "",
      "state": "PA",
      "zip": "18063",
      "phone": "5707525572",
      "fax": "6153972423",
      "type": "mdtoolbox",
      "extra": {
        "NCPDPID": "1001103",
        "StoreName": "A247PC00-Anesthesia 24/7, PC",
        "Addr1": "1200 Freas Avenue",
        "Addr2": "",
        "City": "Berwick",
        "State": "PA",
        "Zip": "18063",
        "Phone": "5707525572",
        "Fax": "6153972423",
        "Email": "",
        "ServiceLevel": 1
      }
    }
    "https://api.vsee.me/api_v3/users/575/erx/pharmacies"

{
    "data": true
}

DELETE /users/:id/erx/pharmacies/:code

Delete the specified pharmacy from the user profile.

Parameters

Parameter

Type

Description

Response

    curl -k -X DELETE -H "X-ApiToken: c1dfcb553b2395a902722387222310a4" -H "X-AccountCode: vclinic" -H "Content-Type: application/json"
    "https://api.vsee.me/api_v3/users/575/erx/pharmacies/12834"

{
    "data": true
}

Visits API

POST /intakes

Create intake information

Parameters

Parameter

Type

Description

provider_id

Integer

(optional) The ID of the provider who is being visited

reason_for_visit

String

(optional) Reason for visit

type

Integer

(optional) Visit type: 1 - walkin; 2 - schedule

member_id

String

(optional) Patient’s code ID on behalf of whom the intake will be created

room_code

String

Room’s code

attachments

Array

(optional) Multiple formats supported: [{id:"577af3e6-9e48-4a51-9315-2ba8c0a8210a"}, ...] or ["577af3e6-9e48-4a51-9315-2ba8c0a8210a", ...] or 577af3e6-9e48-4a51-9315-2ba8c0a8210a,577af3e6-9e48-4a51-9315-2ba8c0a8210a,...

location

String

(optional) CA/AL/...

phone

String

(optional) 7123465789

Response

curl -k -X POST -d "provider=541&reason_for_visit=Test&reset=true&type=1" https://api.vsee.me/api_v3/intakes.json

{
  "data": {
        "id": "56e8c536-566c-44b6-bbca-66f0ac1f0144"
  }
}

POST /intakes/:id

Update intake information

Parameters

Parameter

Type

Description

provider_id

Integer

(optional) The ID of the provider who is being visited

reasonforvisit

String

(optional) Reason for visit

type

Integer

(optional) Visit type: 1 - walkin; 2 - schedule

member_id

String

(optional) Patient’s code ID on behalf of whom the intake will be created

room* room_code

String

Room’s code

attachments

Array

Multiple formats supported: [{id:"577af3e6-9e48-4a51-9315-2ba8c0a8210a"}, ...] or ["577af3e6-9e48-4a51-9315-2ba8c0a8210a", ...] or 577af3e6-9e48-4a51-9315-2ba8c0a8210a,577af3e6-9e48-4a51-9315-2ba8c0a8210a,...

location

String

CA/AL/...

phone

String

7123465789

consultation

Object

(optional) Required for payment related, the consultation objects can be found at GET /rooms/:code API

Response

curl -X POST -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" -H "X-AccountCode: vclinic" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" -F "location=CA" -F "phone=7123456789" -F "reason_for_visit=Test intake functionalities 2" "https://api.vsee.me/api_v3/intakes/57a0705e-1c4c-4f24-b51d-3c71ac1f0144"

{
  "data": {
      "id": "56e8c536-566c-44b6-bbca-66f0ac1f0144"
  }
}

GET /intakes/:id

Get the specific intake

Parameters

None

Response

curl -X GET \
  -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \
  -H "X-AccountCode: vclinic" \
  "https://api.vsee.me/api_v3/intakes/57a0705e-1c4c-4f24-b51d-3c71ac1f0144"

{
  "data": {
    "modified": 1471465080,
    "created": 1471465080,
    "type": "1",
    "reason_for_visit": "the reason",
    "attachments": [
      {
        "_id": "57b4c65d-7ef8-461f-8951-43b1ac1f0144",
        "name": "575004c7-b350-421d-8542-4dcdac1f0144.png",
        "path": "files/2016/08/17/57b4c65d-7ef8-461f-8951-43b1ac1f0144.png",
        "size": 12859,
        "ext": "png",
        "type": 0,
        "creator_id": "575",
        "remark": null,
        "using": 1,
        "modified": {
          "sec": 1471465053,
          "usec": 966000
        },
        "created": {
          "sec": 1471465053,
          "usec": 967000
        }
      }
    ],
    "id": "57b4c678-de20-4c1a-a52b-43e9ac1f0144"
  }
}

POST /visits/add_walkin

Create a walkin visit

Parameters

Parameter

Type

Description

provider_id

String

(optional) The ID of the provider who is being visited if patient is starting an appointment. Shouldn’t pass this for walkins.

intake_id

String

The ID of the intake.

visit_data_id

String

The ID of a scheduled appointment. This one is used in the case when the patient visits a scheduled appointment.

visit_id

String

(optional) The ID of a scheduled appointment. This one is used in the case when the patient visits a scheduled appointment.

user_code

String

(optional) Patient’s code ID on behalf of whom the intake will be created

room_code

String

Current room’s code in which the visit will be created

Response

curl -k -X POST \
  -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \
  -H "X-AccountCode: vclinic" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \
  -F "provider_id=826" \
  -F "intake_id=57a0705e-1c4c-4f24-b51d-3c71ac1f0144" \
  -F "room_code=ceproom1" \
  "https://api.vsee.me/api_v3/visits/add_walkin"

{
  "data": {
        "id": "1525",
        "member_id": "508",
        "provider_id": "509",
        "account_code": null,
        "code": "56e8c580f55c44a2868b66f0ac1f0144",
        "start": "1458095488",
        "end": "1458096388",
        "actual_start": null,
        "actual_end": null,
        "specialty_id": null,
        "state": null,
        "type": "1",
        "status": "10",
        "completed_by": null,
        "created": 1458095488,
        "modified": 1458095488,
        "room_id": null,
        "_id": "1525",
        "payment": {
              "duration": 15,
              "amount": "00.00",
              "description": "FruitStreet Config Level One-time charge"
        },
        "intake": {
              "provider": "509",
              "reason_for_visit": "Test intake functionalities 1",
              "type": "1",
            "modified": 1458095488,
              "created": 1458095414,
              "visit_id": "1525",
              "id": "56e8c536-566c-44b6-bbca-66f0ac1f0144"
        },
        "provider": {
              "id": "509",
               "first_name": "Ligeng",
              "last_name": "Doctor",
              "vseeid": "wellikodev+user509",
              "title": ""
        },
        "member": {
              "id": "508",
              "first_name": "Ligeng",
              "last_name": "01",
              "vseeid": "wellikodev+user508",
              "dob": "2014-09-10",
              "gender": 1,
              "phone": "6506506500"
        },
  }
}

POST /visits/close

Close/Cancel a visit or an appointment

Parameters

Parameter

Type

Description

id

String

The ID of the visit/appointment

reason

String

  • "patientendcall" - Patient click End Call button on VSee

  • "patientexitroom" - Patient click Exit Waiting Room

  • "call_ended" - When call ended not by patient, could be due to network problem or provider ended the call

  • "patientcancelappointment" - Patient click cancel appointment button

  • "maxwaitingtime_reached" - Patient side max waiting time reached

Response

curl -k -X POST -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" -H "X-AccountCode: vclinic" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" -F "id=14" "https://api.vsee.me/api_v3/visits/close"

{
  "data": {
        "id": "1525"
  }
}

Appointment API

GET /availability [public access available upon request]

Get provider's available slots

Parameters

Parameter

Type

Location

Description

room_code

String

Query string

(optional) Room code. If not given, will try to fall back to Intake.room

start

Integer

Query string

Search for available slots from this start time

end

Integer

Query string

Search for available slots up to this end time

duration

Integer

Query string

Search for available slots during certain seconds

provider_id

String

Query string

(optional) Pick only this provider’s slots

intake_id

String

Query string

Intake ID. Should be passed when patient is choosing a slot for an appointment. It will use intake’s location, specialty, etc.

consultation_id

String

Query string

Consultation ID. This will help to determine slot duration

X-ApiKey

String

Header

(beta) Header value is required if the application want to retrieve availablity without user token

X-ApiSecret

String

Header

(beta) Header value is required if the application want to retrieve availablity without user token

Notes: If application want to retrieve providers availability slots for a room without user token, the following are required X-ApiKeyX-ApiSecretroom_codestartendconsultation_idlocation will be required if you want to filter by state as well.

Notes: The time range parameters 'start', 'end' and 'duration' obey the following rules:

input

actual

start

end

duration

start

end

duration

1

not set

not set

not set

available

available+4d

4d

2

set

not set

not set

  1. start

  2. If 'nearest' is set, then we search for the nearest slots since the start time

  1. start+4d

  2. nearest+4d

4d

3

set

set

not set

start

end

(ignored)

4

set

not set

set

  1. start

  2. If 'nearest' is set, then we search for the nearest slots since the start time

  1. start+duration

  2. nearest+duration

duration

5

not set

set

not set

end-4d

end

4d

6

not set

set

set

end-duration

end

duration

7

not set

not set

set

available

available+duration

duration

8

set

set

set

start

end

(ignored)

(available: The start time of the 1st available slot)

Response

curl -k -X GET -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" https://api.vsee.me/api_v3/availability

{
  "data": {
    "slots": [
      {
        "slot_id": "5277",
        "slot_start": 1470186000,
        "slot_end": 1470186900,
        "slot_booked": 0,
        "slot_available": 1,
        "group_id": "57106583f46874e70afc93b4"
      },
      
    ]      
    }
  ]
}

curl -X GET \
  'https://api.vsee.me/api_v3/availability?consultation_id=593999b2-08e4-404c-82f8-772dc0a8016f&start=1497063600&end=1497065400&location=AL&room_code=234yn' \
  -H 'x-accountcode: vclinic' \
  -H 'x-apikey: vclinic_api_key' \
  -H 'x-apisecret: vclinic_api_secret' \
  
{
  "data": {
    "slots": [
      {
        "slot_id": "4",
        "slot_start": 1497063600,
        "slot_end": 1497065400,
        "slot_booked": 0,
        "slot_available": "1",
        "group_id": "59399694-9ec0-4108-927d-7776c0a8016f"
      }
    ]
  }
}
      

The above data response format will change soon to

{
  "data": [
     {       
       "start": 1470186000,
       "end": 1470186900,
       "providers": ["123", "345"]
     },
     {
       "start": 1470186000,
       "end": 1470186900,
       "providers": ["123", "345"]
     }    
   ]           
  ]
}

POST /visits

Create an appointment

Parameters

Parameter

Type

Description

member_id

String

The ID of the visiting patient (optional - only use in paramedic workflow)

slot_start

Integer

The timestamp of the beginning of the appointment (in UNIX timestamp format)

slot_end

Integer

The timestamp of the ending of the appointment (in UNIX timestamp format)

room_code

String

Room code (required)

type

Integer

2 - scheduling

intake_id

String

The ID of the intake

provider_id

String

(optional) The ID of the provider who is being visited

Response

curl -X POST \
  -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \
  -H "X-AccountCode: vclinic" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \
  -F "member_id=575" \
  -F "slot_start=1470669300" \
  -F "slot_end=1470670200" \
  -F "type=2" \
  -F "intakeId=57a0705e-1c4c-4f24-b51d-3c71ac1f0144" \
  "https://api.vsee.me/api_v3/appointments"


{
    "data": {
        "member_id": 17778181,
        "provider_id": 12456470,
        "account_code": "vclinic",
        "code": "615f2e2eabc46ad94e9b6457b11",
        "start": 1631628616,
        "end": 1631628916,
        "actual_start": 1631628211,
        "actual_end": null,
        "specialty_id": null,
        "state": null,
        "type": 2,
        "status": 30,
        "completed_by": null,
        "room_id": 1002387,
        "room_code": "vclinicroom",
        "modified": 1633630312,
        "created": 1633627694,
        "provider": {
            "id": "12456470",
            "email": "anton+providersa@vseelab.com",
            "subtype": "482",
            "vseeid": "anton+providersa@vseelab.com",
            "photo": null,
            "full_name": "Anton Provider",
            "title": "",
            "suffix": ""
        },
        "member": {
            "id": "17778181",
            "code": "anton+vclinic2@vseelab.com",
            "email": "anton+vclinic2@vseelab.com",
            "vseeid": "cmo+615f28cd70804d8994d62bd564457b11",
            "photo": null,
            "full_name": "Anton Test",
            "phone": "5551231122"
        },
        "subType": 3,
        "more_provider_ids": null,
        "guest_emails": null,
        "guest_mobiles": null,
        "reminder_type": null,
        "reminder_time": null,
        "host_ids": [
            "12456470"
        ],
        "hosts": [
            {
                "username": "anton+providersa@vseelab.com",
                "email": "anton+providersa@vseelab.com",
                "phone": "",
                "timezone": "America/Los_Angeles",
                "vseeid": "anton+providersa@vseelab.com",
                "full_name": "Anton Provider",
                "title": "",
                "suffix": "",
                "id": "12456470",
                "photo_attachment_id": "",
                "role": "owner"
            }
        ],
        "creator": {
            "id": "15729940",
            "code": "60aed4242c90409099385cef64457b11",
            "vseeid": "d55d2f77ff3653891a587fdfa83207b4@vsee.com",
            "type": 160,
            "subtype": "",
            "first_name": null,
            "last_name": null,
            "account_code": "vclinic"
        },
        "pending_actions": [],
        "is_test": false,
        "meeting": {
            "recording_auto_start": false,
            "phone_numbers": {
                "US": [
                    "+1.650.758.0255"
                ]
            },
            "hosts": [
                "anton+providersa@vseelab.com",
                "chau+provider@vseelab.com"
            ],
            "expiry": 1633643316,
            "conference_pin": 838759,
            "meeting_id": "1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi"
        },
        "one_time_link_token": "l0vht6wkxj",
        "notify_list": [],
        "payment": {
            "duration": null,
            "amount": "25.00",
            "description": "Cloud Clinic Default One-time Charge Message",
            "id": "615cec5b-14c8-4493-b9ce-365764457b11"
        },
        "intake_id": "615f2de7-8ab8-48d3-80d8-53f564457b11",
        "related_walkin_id": "18407370",
        "call_logs": {
            "total_start": 1633628208,
            "total_end": 1633628268,
            "total_duration": 60,
            "waiting_time": 0,
            "provider_id_1": "anton+providersa@vseelab.com",
            "call_start_1": 1633628208,
            "call_duration_1": 60,
            "wait_time_1": 0,
            "patients": [
                "cmo+615f28cd70804d8994d62bd564457b11"
            ],
            "source": "v2",
            "source_ids": [
                "1633628104000_1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi",
                "1633628745000_1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi"
            ]
        },
        "incharge": false,
        "intake": {
            "provider_id": "12456470",
            "member_id": "17778181",
            "room_code": "vclinicroom",
            "location": "MI",
            "phone": "5551234415",
            "type": "2",
            "room": "vclinicroom",
            "modified": 1633627623,
            "created": 1633627623,
            "visit_id": "18407167",
            "attachments": "",
            "reason_for_visit": "",
            "consent": "true",
            "consultation": {
                "description": "test",
                "duration": 60,
                "charge": false,
                "group": false,
                "slots": 1,
                "amount": 0,
                "visible_to_patient": true,
                "id": "615cec5b-14c8-4493-b9ce-365764457b11",
                "currency": "USD"
            },
            "id": "615f2de7-8ab8-48d3-80d8-53f564457b11"
        },
        "related_walkin": {
            "start": 1633628101,
            "end": 1633631701,
            "status": 30,
            "id": "18407370"
        },
        "postvisit": {
            "member_id": "17778181",
            "class_id": null,
            "visit_id": "18407167",
            "modified": 1633627695,
            "created": 1633627695,
            "id": "615f2e2f-c240-4088-a28b-594b64457b11"
        },
        "isEditExpired": false,
        "room": {
            "id": "10023087",
            "code": "vclinicroom",
            "name": "VClinic UAT",
            "domain": "vclinic.vseepreview.com",
            "account_code": "vclinic",
            "slug": "UAT"
        },
        "account": {
            "code": "vclinic",
            "name": "VClinic",
            "domain": "vclinic.vseepreview.com",
            "vsee_api": {
                "meeting": {
                    "enabled": true,
                    "guest_invite_enabled": true,
                    "adhoc_group_call": {
                        "disabled": true
                    }
                }
            }
        },
        "root_visit": {
            "id": "18407167",
            "group_chat_id": null,
            "participants": null
        },
        "id": "18407167",
        "subtype": 3
    },
    "s": "ms"
}

GET /visits

Get the visits list of the patient. The frontend can check the data["start"] field. If the start field is greater than the current timestamp then the visit is a upcoming appointment, otherwise it’s a past session. Group appointments and one-to-one appointments are now differentiated by the field visit_group_id which only exists in group appointments data.

For one-to-one appointments, consultation information can be retrieved from intake.consultation; for group appointments, consultation information has to be got from visit_group.consultation.

The following sample response offers 2 example for one-to-one appointment and one for group appointment.

Fields that can be returned for fields with format: "html"<u>, <b>, <i>, <strong>, <ul>, <ol>, <li>, <p>, <br>

Parameters

Response

curl -k -X GET \
  -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \
  -H "X-AccountCode: vclinic" \
  "https://api.vsee.me/api_v3/visits.json"

{
  "data": [
    {
      "id": "7727",
      "member_id": "575",
      "provider_id": "1096",
      "account_code": "vclinic",
      "code": "57a07c26947c4544aeef4e5cac1f0144",
      "start": "1470669300",
      "end": "1470670200",
      "actual_start": null,
      "actual_end": null,
      "specialty_id": null,
      "state": null,
      "type": "2",
      "subtype": "3",
      "status": "20",
      "completed_by": null,
      "created": 1470135334,
      "modified": 1470135334,
      "room_id": null,
      "_id": "7727",
      "payment": {
        "duration": null,
        "amount": "0.00",
        "description": "CMO Config Level One-time charge"
      },
      "invoice_id": "57a071d0-c0dc-45a6-9bc3-40fdac1f0144",
      "provider": {
        "id": "1096",
        "code": "563b40f082584368bee10335ac1f0144",
        "first_name": "Anton",
        "last_name": "Provider III",
        "username": "anton+provider3@vsee.com",
        "vseeid": "conciergedev+user1096",
        "email": "anton+provider3@vsee.com",
        "photo": "https://api.vsee.me/api_v3/files/index/app_user/photo/1096/?auth_code=8350f279578774a6e31787fc5a5a05d2948770e0",
        "active": true,
        "title": "",
        "suffix": "",
        "tos": true,
        "phone": "(334) 229-4100",
        "subtype": "482"
      },
      "member": {
        "id": "575",
        "code": "553ea41edfd041bd94475276ac1f0144",
        "first_name": "Keven2",
        "last_name": "Teodoro2",
        "username": "anton+1@vsee.com",
        "vseeid": "conciergedev+user575",
        "dob": "1983-02-02",
        "email": "anton+1@vsee.com",
        "gender": 2,
        "active": true,
        "tos": true,
        "phone": "7123456111",
        "subtype": ""
      }
    },
    "postvisit": {
      "visit_id": "9709",
      "modified": 1473370072,
      "created": 1473368099,
      "member_id": "1290",
      "modifiedBy": "Alexey Provider 2",
      "draft": false,
      "attachments": [],
      "physical_exam": "<p>dfvevofivuoiwue<\/p><p>iou<\/p><p>oi<\/p>",
      "assessment_plan": "<p>oiuoiwfuweoifu<\/p><p>efweiofweiofuweoif<\/p><p><br><\/p>",
      "reason_for_visit": "Allergic reaction",
      "reason_for_visit_other": "",
      "schema": "",
      "diagnosis": "Allergic reaction,initial encounter (T78.40XA),Asthma (J45.909)",
      "patient_instructions": "<p>Plan \/ Discharge...<br><\/p>",
      "disposition": "Referred to ED",
      "dea": "",
      "npi": ""
    }
}

GET /visits/:id

Get detailed information for a certain appointment.

Group appointments and one-to-one appointments are now differentiated by the field "visitgroupid" which only exists in group appointments data.

For one-to-one appointments, consultation information can be retrieved from intake.consultation; for group appointments, consultation information has to be got from visit_group.consultation.

Parameters

None

Response

curl -k -X GET \
  -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \
  -H "X-AccountCode: vclinic" \
  "https://api.vsee.me/api_v3/visits/7727.json"

{
    "data": {
        "member_id": 17778181,
        "provider_id": 12456470,
        "account_code": "vclinic",
        "code": "615f2e2eabc46ad94e9b6457b11",
        "start": 1631628616,
        "end": 1631628916,
        "actual_start": 1631628211,
        "actual_end": null,
        "specialty_id": null,
        "state": null,
        "type": 2,
        "status": 30,
        "completed_by": null,
        "room_id": 1002387,
        "room_code": "vclinicroom",
        "modified": 1633630312,
        "created": 1633627694,
        "provider": {
            "id": "12456470",
            "email": "anton+providersa@vseelab.com",
            "subtype": "482",
            "vseeid": "anton+providersa@vseelab.com",
            "photo": null,
            "full_name": "Anton Provider",
            "title": "",
            "suffix": ""
        },
        "member": {
            "id": "17778181",
            "code": "anton+vclinic2@vseelab.com",
            "email": "anton+vclinic2@vseelab.com",
            "vseeid": "cmo+615f28cd70804d8994d62bd564457b11",
            "photo": null,
            "full_name": "Anton Test",
            "phone": "5551231122"
        },
        "subType": 3,
        "more_provider_ids": null,
        "guest_emails": null,
        "guest_mobiles": null,
        "reminder_type": null,
        "reminder_time": null,
        "host_ids": [
            "12456470"
        ],
        "hosts": [
            {
                "username": "anton+providersa@vseelab.com",
                "email": "anton+providersa@vseelab.com",
                "phone": "",
                "timezone": "America/Los_Angeles",
                "vseeid": "anton+providersa@vseelab.com",
                "full_name": "Anton Provider",
                "title": "",
                "suffix": "",
                "id": "12456470",
                "photo_attachment_id": "",
                "role": "owner"
            }
        ],
        "creator": {
            "id": "15729940",
            "code": "60aed4242c90409099385cef64457b11",
            "vseeid": "d55d2f77ff3653891a587fdfa83207b4@vsee.com",
            "type": 160,
            "subtype": "",
            "first_name": null,
            "last_name": null,
            "account_code": "vclinic"
        },
        "pending_actions": [],
        "is_test": false,
        "meeting": {
            "recording_auto_start": false,
            "phone_numbers": {
                "US": [
                    "+1.650.758.0255"
                ]
            },
            "hosts": [
                "anton+providersa@vseelab.com",
                "chau+provider@vseelab.com"
            ],
            "expiry": 1633643316,
            "conference_pin": 838759,
            "meeting_id": "1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi"
        },
        "one_time_link_token": "l0vht6wkxj",
        "notify_list": [],
        "payment": {
            "duration": null,
            "amount": "25.00",
            "description": "Cloud Clinic Default One-time Charge Message",
            "id": "615cec5b-14c8-4493-b9ce-365764457b11"
        },
        "intake_id": "615f2de7-8ab8-48d3-80d8-53f564457b11",
        "related_walkin_id": "18407370",
        "call_logs": {
            "total_start": 1633628208,
            "total_end": 1633628268,
            "total_duration": 60,
            "waiting_time": 0,
            "provider_id_1": "anton+providersa@vseelab.com",
            "call_start_1": 1633628208,
            "call_duration_1": 60,
            "wait_time_1": 0,
            "patients": [
                "cmo+615f28cd70804d8994d62bd564457b11"
            ],
            "source": "v2",
            "source_ids": [
                "1633628104000_1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi",
                "1633628745000_1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi"
            ]
        },
        "incharge": false,
        "intake": {
            "provider_id": "12456470",
            "member_id": "17778181",
            "room_code": "vclinicroom",
            "location": "MI",
            "phone": "5551234415",
            "type": "2",
            "room": "vclinicroom",
            "modified": 1633627623,
            "created": 1633627623,
            "visit_id": "18407167",
            "attachments": "",
            "reason_for_visit": "",
            "consent": "true",
            "consultation": {
                "description": "test",
                "duration": 60,
                "charge": false,
                "group": false,
                "slots": 1,
                "amount": 0,
                "visible_to_patient": true,
                "id": "615cec5b-14c8-4493-b9ce-365764457b11",
                "currency": "USD"
            },
            "medical_profile": {
              "_id": "553ea41ef468747652d11034",
              "user_id": "575",
              "family_conditions": {
                "data": [
                  {
                    "condition": "Diabetes",
                    "relations": [
                      "Paternal grandparents"
                    ]
                  },
                  {
                    "condition": "Ulcer disease",
                    "relations": [
                      "Mother"
                    ]
                  }
                ],
                "modified": 1467623311,
                "modifiedBy": "Keven Teodoro"
              },
              "conditions": {
                "data": [
                  {
                    "condition": "Kidney disease"
                  },
                  {
                    "condition": "Kidney stones"
                  },
                  {
                    "condition": "Stroke"
                  }
                ],
                "modified": 1472059195,
                "modifiedBy": "Keven2 Teodoro2"
              },
              "social_history": {
                "data": [],
                "modified": 1472588123,
                "modifiedBy": "Keven2 Teodoro2",
                "modified_by": {
                  "id": "575",
                  "type": 200,
                  "subtype": "",
                  "first_name": "Keven2",
                  "last_name": "Teodoro2",
                  "photo": ""
                }
              },
              "health_habits": {
                "data": [],
                "modified": 1470128370,
                "modifiedBy": "Keven2 Teodoro2"
              },
              "surgeries": {
                "data": [
                  {
                    "procedure": "C-section"
                  },
                  {
                    "procedure": "Heart valve replaced"
                  }
                ],
                "modified": 1471769856,
                "modifiedBy": "Keven2 Teodoro2"
              },
              "medications": {
                "data": [],
                "modified": 1471769958,
                "modifiedBy": "Keven2 Teodoro2",
                "modified_by": {
                  "id": "575",
                  "type": "200",
                  "subtype": "",
                  "first_name": "Keven2",
                  "last_name": "Teodoro2"
                }
              },
              "allergies": {
                "data": [],
                "modified": 1471986123,
                "modifiedBy": "Keven2 Teodoro2",
                "modified_by": {
                  "id": "575",
                  "type": "200",
                  "subtype": "",
                  "first_name": "Keven2",
                  "last_name": "Teodoro2"
                }
              },
              "modified": {
                "sec": 1472059195,
                "usec": 806000
              },
              "created": {
                "sec": 1430168606,
                "usec": 596000
              }
            },
            "id": "615f2de7-8ab8-48d3-80d8-53f564457b11"
        },
        "related_walkin": {
            "start": 1633628101,
            "end": 1633631701,
            "status": 30,
            "id": "18407370"
        },
        "postvisit": {
            "member_id": "17778181",
            "class_id": null,
            "visit_id": "18407167",
            "modified": 1633627695,
            "created": 1633627695,
            "id": "615f2e2f-c240-4088-a28b-594b64457b11"
        },
        "postvisit": {
          "visit_id": "9709",
          "modified": 1473370072,
          "created": 1473368099,
          "member_id": "1290",
          "modifiedBy": "Second Provider 2",
          "draft": false,
          "attachments": [],
          "physical_exam": "<p>dfvevofivuoiwue<\/p><p>iou<\/p><p>oi<\/p>",
          "assessment_plan": "<p>oiuoiwfuweoifu<\/p><p>efweiofweiofuweoif<\/p><p><br><\/p>",
          "reason_for_visit": "Allergic reaction",
          "reason_for_visit_other": "",
          "schema": "",
          "diagnosis": "Allergic reaction,initial encounter (T78.40XA),Asthma (J45.909)",
          "patient_instructions": "<p>Plan \/ Discharge...<br><\/p>",
          "disposition": "Referred to ED",
          "dea": "",
          "npi": "",
          "attachments": [
            {
              "_id": "57e4f034-3a0c-4b1d-bc15-221bac1f0144",
              "name": "Water_nature_canyon_cliffs_horseshoe_bend_rivers_2560x1600.jpg",
              "path": "files/2016/09/23/57e4f034-3a0c-4b1d-bc15-221bac1f0144.jpg",
              "size": 1692776,
              "ext": "jpg",
              "type": 0,
              "creator_id": "1096",
              "remark": null,
              "using": 1,
              "modified": {
                "sec": 1474621492,
                "usec": 858000
              },
              "created": {
                "sec": 1474621492,
                "usec": 858000
              }
            }
          ]
        },
        "isEditExpired": false,
        "room": {
            "id": "10023087",
            "code": "vclinicroom",
            "name": "VClinic UAT",
            "domain": "vclinic.vseepreview.com",
            "account_code": "vclinic",
            "slug": "UAT"
        },
        "account": {
            "code": "vclinic",
            "name": "VClinic",
            "domain": "vclinic.vseepreview.com",
            "vsee_api": {
                "meeting": {
                    "enabled": true,
                    "guest_invite_enabled": true,
                    "adhoc_group_call": {
                        "disabled": true
                    }
                }
            }
        },
        "prescriptionsBeforeVisit": [
          {
            "ID": "97316",
            "DrugID": "69117",
            "NDC": "00122206038",
            "RxNormCode": "260654",
            "Drug": "One Tab Daily with Iron oral tablet",
            "Supply": false,
            "Compound": false,
            "Directions": "1 Milliliter(s) 1 to 2 times a day",
            "Qty": 60,
            "QtyQual": "Tablet",
            "Refills": 0,
            "DaysSupply": 0,
            "SubstitutionAllowedFlag": 1,
            "Schedule": 0,
            "PharmacyNote": "",
            "InternalNote": "",
            "PrescriberId": "826",
            "LocationId": "DEMO-ACCOUNT",
            "PrescriptionDate": "2016-01-30T00:00:00",
            "SignDate": "0001-01-01T00:00:00",
            "Status": "Current",
            "PharmacyNcpdpId": "0001060",
            "RouteDetail": "e-Sent:Jan 30 2016  3:41PM Test 000 Pharmacy 10.6MU<br />Sent",
            "PartnerMedID": "",
            "PrescriberName": "Dr. John Will, M.D."
          },
        "prescriptions": [],

        "root_visit": {
            "id": "18407167",
            "group_chat_id": null,
            "participants": null
        },
        "id": "18407167",
        "subtype": 3
    }
}

GET /visits/current

Get current visit in progress

Parameters

None

Response

curl -X GET \
  -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" \
  https://api.vsee.me/api_v3/visits/current.json

{
  "data": {
        "id": "1504",
        "member_id": "508",
        "provider_id": "509",
        "account_code": "fruitstreet",
        "code": "56e7b1d2b90c4d68953e3d02ac1f0144",
        "start": "1459973100",
        "end": "1459974000",
        "actual_start": null,
        "actual_end": "1458024955",
        "specialty_id": null,
        "state": null,
        "type": "2",
        "status": "40",
        "completed_by": "508",
        "created": 1458024914,
        "modified": 1458024914,
        "room_id": null,
        "_id": "1504",
        "payment": {
              "duration": 15,
              "amount": "00.00",
              "description": "FruitStreet Config Level One-time charge"
        },
        "intake": {
              "provider": "509",
              "reason_for_visit": "Test intake functionalities",
              "reset": "true",
              "type": "1",
              "modified": 1458024914,
              "created": 1458024708,
              "visit_id": "1504",
              "id": "56e7b104-ded0-4096-979b-395bac1f0144"
        },
        "provider": {
              "id": "509",
              "first_name": "Ligeng",
              "last_name": "Doctor",
              "username": "ligeng+provider1@vsee.com",
              "vseeid": "wellikodev+user509",
              "email": "ligeng+provider1@vsee.com",
              "active": true,
              "title": "",
              "tos": false,
              "phone": "6506506500"
        },
        "member": {
              "id": "508",
              "first_name": "Ligeng",
              "last_name": "01",
              "username": "ligeng+1@vsee.com",
              "vseeid": "wellikodev+user508",
              "dob": "2014-09-10",
              "email": "ligeng+1@vsee.com",
              "gender": 1,
              "active": true,
              "tos": true,
              "phone": "6506506500"
        }
  }
}


Payment API

GET /billing/settings

Allow user to retrieve payment settings

Parameters

Parameter

Type

Description

Response

{
  "data": {
    "stripe": {
      "publishable_key": "2342342"
    }
  }
}

POST /billing/sources?room_code=abc&provider_id=12312

Allow user to add a new payment source to their account

Parameters

Parameter

Type

Location

Description

type

String

"card" for credit card, more to be supported later e.g bitcoin,.. (no need???)

token

String

token obtain from Stripe after posting card detail to api.stripe.com

room_code

String

Query string

provider_id

String

Query string

(optional)

Response

{
  "data": {
        "id": "card_19DrgXBY2jn2BCqQNpjjzuay",
          "type": "card",
          "brand": "Visa",
          "country": "US",
          "exp_month": 8,
          "exp_year": 2017,
          "funding": "credit",
          "last4": "4242",
          "name": "Jack Sparrow",
          "is_default": true
  }
}

DELETE /billing/sources/:id

Allow user to delete payment source from his account

Parameters

Parameter

Type

Description

id

String

Payment source id

Response

{
  "data": []
}

GET /billing/sources?room_code=abc&provider_id=12312

Allow user to retrieve all payment sources from their account

Parameters

Parameter

Type

Location

Description

type

String

(optional) "card" for credit card, more to be supported later e.g bitcoin,..

room_code

String

Query string

provider_id

String

Query string

(optional)

Response

{
  "data": [
        {
          "id": "card_19DrgXBY2jn2BCqQNpjjzuay",
          "type": "card",
          "brand": "Visa",
          "exp_month": 8,
          "exp_year": 2017,
          "last4": "4242",
          "name": "Jack Sparrow",
          "is_default": true
        },
        {
          "id": "card_19DrgXBY2jn2BCqQNpjjzuay",
          "type": "card",
          "brand": "Visa",
          "exp_month": 8,
          "exp_year": 2017,
          "last4": "4242",
          "name": "JackSparrow",
          "is_default": false
        }
  ]
}

GET /billing/sources/:id (new)

Allow user to retrieve a payment source from their account

Parameters

Parameter

Type

Description

id

String

Payment source id

Response

{
  "data": {
        "id": "card_19DrgXBY2jn2BCqQNpjjzuay",
          "type": "card",
          "brand": "Visa",
          "exp_month": 8,
          "exp_year": 2017,
          "last4": "4242",
          "name": "Jack Sparrow",
          "is_default": true
  }
}

PUT /billing/sources/:id

Allow user to make this card as default card

Parameters

Parameter

Type

Description

is_default

int

1

room_code

String

If it’s CC app, we need to pass this parameter

provider_id

String

If it’s FS app, then we need to pass this parameter

Response

{
  "data": {
    "id": "card_19DrgXBY2jn2BCqQNpjjzuay",
    "type": "card",
    "brand": "Visa",
    "exp_month": 8,
    "exp_year": 2017,
    "last4": "4242",
    "name": "Jack Sparrow",
    "is_default": true

  }
}

POST /billing/invoices/process

Allow user to process invoice

Parameters

Parameter

Type

Description

promo_code

String

Coupon code

intake_id

String

Required - intake id to apply coupon code to

create_invoice

int

1

Response

{
  "data": {
    "currency": "USD",

    "consultation": {
      "description": "30 mins",
      "amount": 30,
      "duration": 30,
      "id": "58244a53-0f28-4ff9-bdbc-7468ac1f0144"
    },
    "coupon": {
      "id": "10_percents_1479363579",
      "object": "coupon",
      "amount_off": null,
      "created": 1479363580,
      "currency": null,
      "duration": "once",
      "duration_in_months": null,
      "livemode": false,
      "max_redemptions": null,
      "metadata": [

      ],
      "percent_off": 10,
      "redeem_by": null,
      "times_redeemed": 0,
      "valid": true
    },
    "amount_due": 27
  }
}

Clinic Account API

GET /accounts [public access]

Get list of accounts

Response

curl -k -X GET https://api.vsee.me/api_v3/accounts.json

{
  "data": [
    {
      "code": "DEMO-ACCOUNT-LOCAL",
      "name": "DEMO-ACCOUNT-LOCAL",
      
    },
    {
      "code": "DEMO-ACCOUNT-LOCAL",
      "name": "DEMO-ACCOUNT-LOCAL",
      
    },
    ...
  ]
}

GET /accounts/:code [public access]

Get current member’s Account data. Each member is mapped to Account which contains some general settings. It includes schema for Intake forms, Signup form. Account.code is also used for starting visits. Intake wizard flow: Patient should go through all steps defined in 2 arrays: Account.intakesteps and Account.postintakesteps * Create / update Intake object * When Account.intakesteps are all passed, create a visit * Go through Account.postintakesteps at which the patient may update existing intake and do other things (take survey, pick pharmacy, etc) Each step has a "code" field which defines the type of content of the step. See the description below

Parameters

Parameter

Type

Description

code

String

Account’s code or dash (-) for current account

Response

curl -k -X GET https://api.vsee.me/api_v3/accounts/vclinic.json

{
  data: {
    id: "56ced820-55bc-43ca-9b35-4599ac1f0144",
    code: "vclinic",
    domain: "demo.vsee.me",
    name: "VClinic",
    portal_title: "",
    privacy_id: "",
    states: {
      signup: {
        signup: [
          {
            name: "",
            code: "signup",
            next: {
              title: "Enter"
            },
            sections: [
              {
                code: "signup_activate",
                schema: {
                  first_name: {
                    type: "string",
                    required: true,
                    eligibility: {
                      field: "first_name"
                    }
                  },
                  last_name: {
                    type: "string",
                    required: true,
                    eligibility: {
                      field: "last_name"
                    }
                  },
                  dob: {
                    type: "string",
                    required: true,
                    eligibility: {
                      field: "dob"
                    }
                  },
                  ssn: {
                    type: "integer",
                    maxLength: 4,
                    required: true,
                    allowedEmpty: true,
                    eligibility: {
                      field: "ssn"
                    }
                  },
                  email: {
                    type: "string",
                    required: true
                  }
                },
                form: [
                  {
                    key: "first_name",
                    placeholder: "First Name",
                    type: "text"
                  },
                  {
                    key: "last_name",
                    placeholder: "Last Name",
                    type: "text"
                  },
                  {
                    key: "dob",
                    placeholder: "Date of Birth",
                    type: "datepicker"
                  },
                  {
                    key: "ssn",
                    placeholder: "Last 4 digit of SSN",
                    type: "text"
                  },
                  {
                    key: "email",
                    placeholder: "Email",
                    type: "email"
                  }
                ]
              }
            ]
          }
        ],
        verification: [
          {
            name: "",
            code: "signup_verification",
            next: {
              title: "Enter"
            },
            sections: [
              {
                code: "signup_verification",
                schema: {
                  email_token: {
                    type: "string",
                    required: true
                  },
                  email: {
                    type: "string"
                  }
                },
                form: [
                  {
                    key: "email_token",
                    placeholder: "6-digit verification code",
                    type: "text"
                  }
                ]
              }
            ]
          }
        ],
        update_profile: [
          {
            name: "New account",
            code: "post_signup_update_profile",
            next: {
              title: "Create"
            },
            sections: [
              {
                code: "post_signup_profile",
                schema: {
                  first_name: {
                    type: "string",
                    required: true
                  },
                  last_name: {
                    type: "string",
                    required: true
                  },
                  gender: {
                    type: "string",
                    enum: [
                      "male",
                      "female"
                    ],
                    required: true
                  },
                  dob: {
                    type: "string",
                    required: true
                  },
                  password: {
                    type: "string",
                    required: true
                  },
                  password_retype: {
                    type: "string"
                  },
                  phone: {
                    type: "string",
                    required: false
                  },
                  street_addr: {
                    type: "string"
                  },
                  city: {
                    type: "string"
                  },
                  state: {
                    type: "string",
                    enum: [
                      "AL",
                      "AK",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FL",
                      "GA",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "OH",
                      "OK",
                      "OR",
                      "PA",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  zip: {
                    type: "string"
                  },
                  pcp_name: {
                    type: "string"
                  },
                  pcp_phone: {
                    type: "string"
                  }
                },
                form: [
                  {
                    key: "first_name",
                    title: "First Name",
                    type: "text"
                  },
                  {
                    key: "last_name",
                    title: "Last Name",
                    type: "text"
                  },
                  {
                    key: "gender",
                    type: "radios",
                    title: "Gender",
                    titleMap: {
                      male: "Male",
                      female: "Female"
                    }
                  },
                  {
                    key: "dob",
                    title: "Date of Birth",
                    type: "datepicker"
                  },
                  {
                    key: "password",
                    title: "Password",
                    type: "password"
                  },
                  {
                    key: "password_retype",
                    title: "Retype password",
                    type: "password"
                  },
                  {
                    key: "phone",
                    type: "text",
                    title: "Phone number"
                  },
                  {
                    key: "street_addr",
                    type: "text",
                    title: "Street Addr"
                  },
                  {
                    key: "city",
                    type: "text",
                    title: "City"
                  },
                  {
                    key: "state",
                    type: "select",
                    title: "State",
                    titleMap: {
                      AL: "Alabama",
                      AK: "Alaska",
                      AZ: "Arizona",
                      AR: "Arkansas",
                      CA: "California",
                      CO: "Colorado",
                      CT: "Connecticut",
                      DE: "Delaware",
                      DC: "District Of Columbia",
                      FL: "Florida",
                      GA: "Georgia",
                      HI: "Hawaii",
                      ID: "Idaho",
                      IL: "Illinois",
                      IN: "Indiana",
                      IA: "Iowa",
                      KS: "Kansas",
                      KY: "Kentucky",
                      LA: "Louisiana",
                      ME: "Maine",
                      MD: "Maryland",
                      MA: "Massachusetts",
                      MI: "Michigan",
                      MN: "Minnesota",
                      MS: "Mississippi",
                      MO: "Missouri",
                      MT: "Montana",
                      NE: "Nebraska",
                      NV: "Nevada",
                      NH: "New Hampshire",
                      NJ: "New Jersey",
                      NM: "New Mexico",
                      NY: "New York",
                      NC: "North Carolina",
                      ND: "North Dakota",
                      OH: "Ohio",
                      OK: "Oklahoma",
                      OR: "Oregon",
                      PA: "Pennsylvania",
                      RI: "Rhode Island",
                      SC: "South Carolina",
                      SD: "South Dakota",
                      TN: "Tennessee",
                      TX: "Texas",
                      UT: "Utah",
                      VT: "Vermont",
                      VA: "Virginia",
                      WA: "Washington",
                      WV: "West Virginia",
                      WI: "Wisconsin",
                      WY: "Wyoming"
                    }
                  },
                  {
                    key: "zip",
                    type: "text",
                    title: "Zip"
                  },
                  {
                    key: "pcp_name",
                    type: "text",
                    title: "Primary Care Physician Name"
                  },
                  {
                    key: "pcp_phone",
                    type: "text",
                    title: "Primary Care Physician Phone"
                  }
                ]
              },
              {
                code: "post_signup_tos_popup",
                title: "Before you can complete your registration, you must accept the Onduty Terms of Service and Privacy Policy",
                agree: {
                  title: "I Agree"
                },
                terms: {
                  title: "View Terms"
                }
              }
            ]
          }
        ],
        terms_of_service: [
          {
            name: "Terms of Service",
            code: "terms_of_service_text",
            sections: [
              {
                code: "terms_of_service_text"
              }
            ]
          }
        ]
      },
      visits: {
        signin: [

        ],
        intake: [
          {
            name: "Enter Lounge",
            code: "intake",
            next: {
              title: "Next"
            },
            sections: [
              {
                code: "update_intake",
                schema: {
                  reason_for_visit: {
                    type: "string",
                    provider_title: "Chief Complaint",
                    required: true,
                    multiple: true,
                    allow_tags: false,
                    enum: [
                      "Abdominal pain",
                      "Allergic reaction",
                      "Anxiety",
                      "Asthma",
                      "Back pain",
                      "Chest pain",
                      "Cold/runny nose",
                      "Constipation",
                      "Cough",
                      "Cut/scrape",
                      "Depression",
                      "Diarrhea",
                      "Difficulty breathing",
                      "Ear problem",
                      "Extremity injury/fall",
                      "Eye problem",
                      "Fever",
                      "Flu symptoms",
                      "Headache",
                      "Insect sting/bite",
                      "Pregnancy problem",
                      "Rash",
                      "Seasonal allergies",
                      "Sore throat",
                      "Urination problem",
                      "Vomiting",
                      "Other (my symptoms are not listed above)"
                    ]
                  }
                },
                form: [
                  {
                    key: "reason_for_visit",
                    title: "What is your health concern today?",
                    placeholder: "Describe your symptom(s)",
                    type: "select"
                  }
                ]
              },
              {
                code: "file_upload",
                title: "Is there any image you would like to share with the doctor today?"
              }
            ]
          },
          {
            name: "Enter Lounge",
            code: "intake2",
            next: {
              title: "Next"
            },
            sections: [
              {
                code: "update_intake",
                schema: {
                  location: {
                    type: "string",
                    required: true,
                    enum: [
                      "CA"
                    ],
                    show_to_provider: false
                  },
                  phone: {
                    type: "string",
                    provider_title: "Phone",
                    required: true
                  }
                },
                form: [
                  {
                    key: "location",
                    type: "select",
                    title: "Where are you located?",
                    placeholder: "Enter state or zipcode",
                    titleMap: {
                      CA: "California"
                    }
                  },
                  {
                    key: "phone",
                    title: "Which phone number can we reach you at today?",
                    type: "text"
                  }
                ]
              },
              {
                code: "emergency_warning"
              }
            ]
          }
        ],
        visit_type: [
          {
            name: "Enter Lounge",
            code: "visit_type",
            sections: [
              {
                code: "label",
                title: "When would you like to see a doctor?"
              },
              {
                code: "visit_type"
              }
            ]
          }
        ],
        consent: [
          {
            name: "Consent Forms",
            code: "consent_text",
            next: {
              title: "I Agree. Next"
            },
            sections: [
              {
                code: "consent_text"
              }
            ]
          }
        ],
        calendar: [
          {
            name: "Appointment",
            code: "appointment_calendar",
            next: {
              title: "Next"
            },
            sections: [
              {
                code: "appointment_calendar",
                title: "Pick a Date and Time"
              }
            ]
          }
        ],
        post_intake: [
          {
            name: "Enter Lounge",
            code: "emr",
            next: {
              title: "Next"
            },
            sections: [
              {
                code: "label",
                title: "Please update your medical history"
              },
              {
                code: "emr_conditions",
                title: "Past Medical History"
              },
              {
                code: "emr_surgeries",
                title: "Past Surgeries"
              },
              {
                code: "emr_medications",
                title: "Medications"
              },
              {
                code: "emr_allergies",
                title: "Allergies"
              }
            ]
          },
          {
            name: "Enter Lounge",
            code: "pharmacy",
            next: {
              title: "Next"
            },
            sections: [
              {
                code: "pharmacy_picker",
                title: "If you need a prescription today, where would you like it sent?"
              }
            ]
          },
          {
            name: "Enter Lounge",
            code: "survey",
            next: {
              title: "Submit"
            },
            sections: [
              {
                code: "label",
                title: "Your **Parameters** is valuable to help us improve our service. Please take a
                moment to answer the following questions."
              },
              {
                code: "intake_survey"
              }
            ]
          }
        ],
        post_call: [
          {
            name: "Enter Lounge",
            code: "survey",
            next: {
              title: "Submit"
            },
            sections: [
              {
                code: "label",
                title: "Your **Parameters** is valuable to help us improve our service. Please take a
                moment to answer the following questions."
              },
              {
                code: "post_visit_survey"
              }
            ]
          }
        ]
      }
    },
    files: [
      {
        file_id: "56b29a3e-a72c-49e1-93f0-4c23ac1f0144",
        code: "logo",
        path: "https://api.vsee.me/api_v3/files/56b29a3e-a72c-49e1-93f0-4c23ac1f0144"
      },
      {
        file_id: "56fcdfa6-c7cc-433f-b2da-1a21ac1f0144",
        code: "consent",
        path: "https://api.vsee.me/api_v3/files/56fcdfa6-c7cc-433f-b2da-1a21ac1f0144"
      },
      {
        file_id: "57adac35-ac94-4c2d-aedc-7f23ac1f0144",
        code: "terms_of_use",
        path: "https://api.vsee.me/api_v3/files/57adac35-ac94-4c2d-aedc-7f23ac1f0144"
      }
    ],
    waiting_room: {
      subtitle: "If this is an emergency, please call 911 or go to your nearest emergency department.",
      consent: "I consent and reviewed and agreed to <a href='$link' target='_blank'>the terms of use and privacy policy</a>",
      enter_text: "Enter Lounge",
      need_schedule: true,
      show_code: true,
      average_visit_time: 3600,
      capacity: 100,
      default_room_code: "ceproom1"
    }
  }
}

Rooms API

GET /rooms [public access]

Parameters

(none)

Response

curl -k -X GET -H "X-AccountCode: vclinic" "https://api.vsee.me/api_v3/rooms"

{
    "data": [{
        "slug": "room1",
        "name": "Room 1",
        "domain": "demo.vsee.me",
        "code": "room1_code",
        "created": 1427922788,
        "modified": 1427922788
    }, ...]
}

POST /rooms

Parameters

Parameter

Type

Description

domain

String

Clinic’s domain

code

String

(optional) Room code (should be unique)

slug

String

(optional) Set this room as default, other rooms will lose default status.

name

String

Room's name

Response

curl --location --request POST 'https://api.vsee.me/api_v3/rooms' \
--header 'X-AccountCode: vclinic' \
--header 'X-ApiToken: 83ec6843c3af534c551ab609d869dd82' \
--form 'domain=vclinic.vsee.me' \
--form 'slug=provider00102' \
--form 'name=provider00102 room'

{
    "data": {
        "visits": {
            "walkin": {
                "enabled": true
            },
            "appointment": {
                "enabled": false
            }
        },
        "auth": {
            "guest": {
                "type": 600,
                "log_in": {
                    "enabled": true
                }
            }
        },
        "subtitle": "If this is an emergency, please call 911.",
        "slug": "provider00102",
        "name": "provider00102 room",
        "domain": "vclinic.vsee.me",
        "active": true,
        "users": "85741",
        "account_code": "clinic",
        "provider_ids": [
            "85741"
        ],
        "public_access_room": true,
        "modified": 1605728974,
        "created": 1605728974,
        "payment": {
            "consultations": [
                {
                    "id": "5fb57ace-4808-4346-ad3c-3348925862c1",
                    "description": "15-min Consultation",
                    "duration": 15,
                    "amount": 0,
                    "group": false,
                    "charge": false,
                    "slots": 1
                }
            ],
            "currency": "USD",
            "__note__": "paymentCurrency will be deprecated by 1 Jun 2017"
        },
        "operation_settings": {
            "is_closed": false,
            "close_msg": "Service currently not available. Please check back later",
            "default_timezone": "America/Los_Angeles"
        },
        "id": "171",
        "code": "b4vjj"
    }
}

GET /rooms/:code [public access]

Parameters

(none)

Response

curl -k -X GET -H "X-AccountCode: vclinic" "https://api.vsee.me/api_v3/rooms/room1"

{
  "data": {
    "description": "",
    "specialties": [
      {
        "code": "general_care",
        "name": "Default",
        "duration": 15
      },
      {
        "code": "primary_care",
        "name": "Primary Care",
        "duration": 15
      },
      {
        "code": "psychiatry",
        "name": "Psychiatry",
        "duration": 30
      },
      {
        "code": "dermatology",
        "name": "Dermatology",
        "duration": 15
      }
    ],
    "modified": 1466796316,
    "created": 1446802721,
    "payment": {
      "paymentCurrency": "USD",
      "consultations": [
        {
          "description": "15-min Consultation",
          "amount": 0,
          "duration": 15
        },
        {
          "description": "30 min",
          "amount": 20,
          "duration": 30
        },
        {
          "description": "45 min",
          "amount": 40,
          "duration": 45
        }
      ]
    },
    "slug": "room1",
    "name": "Room 1",
    "domain": "demo.vsee.me",
    "code": "room1",
    "account_code": "DEMO-ACCOUNT"
  }

GET /rooms/:code/providers [public access]

Response

curl -k -X GET \
  -H "X-AccountCode: vclinic" \
  "https://api.vsee.me/api_v3/rooms/example-room-code/providers"

{
  "data": [
    {
      "id": "401",
      "username": "provider-401",
      "code": "",
      "subtype": "482",
      "first_name": "Jarod",
      "last_name": "Sun 401",
      "vseeid": "evisitdev+user401",
      "photo": null,
      "title": "",
      "suffix": "",
      "status": false,
      "short_bio": false
    }
  ]
}

GET /rooms/:code/providers/:id [public access]

Response

curl -k -X GET \
  -H "X-AccountCode: vclinic" \
  "https://api.vsee.me/api_v3/rooms/ceproom1/providers/826"

{
  "data": {
    "id": "826",
    "code": "55de45a2ce384a24ad633301ac1f0144",
    "first_name": "John",
    "last_name": "Will",
    "username": "provider1",
    "vseeid": "conciergedev+user826",
    "email": "anton+provider1@vsee.com",
    "active": true,
    "title": "Dr.",
    "suffix": "M.D.",
    "tos": false,
    "phone": "334 2222211",
    "subtype": "482",
    "status": false,
    "educational_training": "edu and training...",
    "professional_interests": "interests...",
    "personal_interests": "some personal hobby"
  }
}

GET /rooms/:code/queue [public access]

Waiting time = average_visit_time * before_me

Response

curl -X GET -H "X-AccountCode: vclinic" "https://api.vsee.me/api_v3/rooms/ceproom1/queue"

{
  "data": {
    "length": 10,
    "capacity": 100,
    "average_visit_time": 3600,
    "before_me": 3
  }
}
  • length - total current queue length

  • capacity- maximum possible queue length

  • average_visit_time - time in seconds per patient

  • before_me - patient in the queue before me

POST /users/:id/rooms

Associate a room to a user

Parameters

Parameter

Type

Description

code

String

Room code

default

Boolean

(optional) Set this room as default, other rooms will lose default status.

Response

curl --location --request POST 'https://api.vsee.me/api_v3/users/85741/rooms' \
--header 'X-AccountCode: vclinic' \
--header 'X-ApiToken: 83ec6843c3af534c551ab609d869dd82' \
--form 'code=b4vjj''

{
    "data": [
        {
            "_id": "171",
            "slug": "provider00102",
            "name": "provider00102 room",
            "domain": "clinic.vseepreview.com",
            "code": "b4vjj",
            "active": true,
            "users": "85741",
            "account_code": "clinic",
            "provider_ids": [
                "85741"
            ],
            "public_access_room": true,
            "modified": {
                "sec": 1605728974,
                "usec": 177000
            },
            "created": {
                "sec": 1605728974,
                "usec": 177000
            },
            "payment": {
                "consultations": [
                    {
                        "id": "5fb57ace-4808-4346-ad3c-3348925862c1",
                        "description": "15-min Consultation",
                        "duration": 15,
                        "amount": 0,
                        "group": false,
                        "charge": false,
                        "slots": 1
                    }
                ]
            },
            "default": false
        }
    ]
}

POST /rooms

Create a room

curl --location --request POST 'https://api-template-wellevate-schedules.vseepreview.com/cc/next/api_v3/rooms' \
--header 'X-AccountCode: template-wellevate-schedules-00101' \
--header 'X-ApiToken: 83ec6843c3af534c551ab609d869dd82' \
--form 'domain=template-wellevate-schedules-00101.vseepreview.com' \
--form 'slug=uat2' \
--form 'name=UAT2'

Input

Parameter Name

Type

Description

X-ApiToken

Header

Clinic Admin token (app token)

X-ApiKey

Header


domain

string

Clinic’s domain

code

string

Room code (should be unique)

slug

string

(optional) Set this room as default, other rooms will lose default status.

name

string



Response

{
  "data": {
    "visits": {
      "walkin": {
        "enabled": true
      },
      "appointment": {
        "enabled": true
      }
    },
    "auth": {
      "guest": {
        "type": 600,
        "log_in": {
          "enabled": true
        }
      }
    },
    "subtitle": "If this is an emergency, please call 911.",
    "slug": "uat2",
    "name": "UAT2",
    "domain": "template-wellevate-schedules-00101.vseepreview.com",
    "active": true,
    "account_code": "template-wellevate-schedules-00101",
    "users": "",
    "provider_ids": [],
    "public_access_room": true,
    "modified": 1605549399,
    "created": 1605549399,
    "payment": {
      "consultations": [
        {
          "id": "5fb2bd57-9394-4cc0-934a-1b3b925862c1",
          "description": "15-min Consultation",
          "duration": 15,
          "amount": 0,
          "group": false,
          "charge": false,
          "slots": 1
        }
      ],
      "currency": "USD",
      "__note__": "paymentCurrency will be deprecated by 1 Jun 2017"
    },
    "operation_settings": {
      "is_closed": false,
      "close_msg": "Service currently not available. Please check back later",
      "default_timezone": "America/Los_Angeles"
    },
    "id": "169",
    "code": "jstq9"
  }
}

If room already exists (http response code 400):

{
  "code": 400,
  "message": "In domain &quot;template-wellevate-schedules-00101.vseepreview.com&quot; slug &quot;uat2&quot; already exists."
}

Push Notification API

Mostly for mobile app

POST /endpoints

Parameters

Parameter

Type

Description

key

String

device token (for apple) or registration id (for android)

type

Integer

30 - Apple Push Notification 40 - Google Cloud Messaging

Response

curl -X POST -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" \
  -d "key=12345&type=30" \
  https://api.vsee.me/api_v3/endpoints

{
    "data": {
        "id": "551c5f64-a6d8-425d-b89c-581fac1f0144",
        "key": "123456",
        "user_id": "201",
        "type": 30,
        "created": 1427922788,
        "modified": 1427922788
    }
}

GET /endpoints

Retrieve all notification endpoints for current user

Parameters

Parameter

Type

Description

type

Integer

(empty) - get all type of endpoints for current user 30 - Apple Push Notification 40 - Google Cloud Messaging

Response

curl -X GET -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" https://api.vsee.me/api_v3/endpoints.json

{
    "data": [
        {
            "id": "551c5f64-a6d8-425d-b89c-581fac1f0144",
            "key": "123456",
            "user_id": "201",
            "type": 30,
            "arn": "arn:aws:sns:us-west-2:048881245029:endpoint\/APNS\/com.vsee.isos.TeleAssistance\/203fd06c-e559-3fba-a47f-87844eca4e6e",
            "created": 1427922788,
            "modified": 1427922788
        },
        {
            "id": "551c6005-83d0-48f0-abfe-59c4ac1f0144",
            "key": "an@vsee.com",
            "user_id": "201",
            "type": 10,
            "created": 1427922949,
            "modified": 1427922949
        }
    ]
}

GET /endpoints/:id

Parameters

Parameter

Type

Description

type

Integer

(empty) - get all type of endpoints for current user 30 - Apple Push Notification 40 - Google Cloud Messaging

Response

curl -X GET \
  -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" \
  https://api.vsee.me/api_v3/endpoints/551c5f64-a6d8-425d-b89c-581fac1f0144

{
    "data": {
        "id": "551c5f64-a6d8-425d-b89c-581fac1f0144",
        "key": "123456",
        "user_id": "201",
        "type": 30,
        "created": 1427922788,
        "modified": 1427922788
    }
}

DELETE /endpoints/:id

Parameters

Parameter

Type

Description

Response

curl -X DELETE \
  -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" \
  https://api.vsee.me/api_v3/endpoints/551c5f64-a6d8-425d-b89c-581fac1f0144


{
    "data": {
        "id": "551c5f64-a6d8-425d-b89c-581fac1f0144",
    }
}

GET /notifications

Reference here for more information: https://docs.google.com/document/d/1o-FH6yKDd8g4ecRZhJT91O8SL7luucK_zyxIFUaHxSw/edit#heading=h.gpbb94y21tki

Parameters

Parameter

Type

Description

size

Integer

(optional) Fetch size, how many records to fetch, default to 10

last

Integer

(optional) unix timestamp in ms, only fetch notifications before this time (please use the field mtime)

Response

curl -X GET \
  -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" \
  https://api.vsee.me/api_v3/notifications.json

{
  "data": [
    {
      "id": "570f3f04-f1f4-4805-946e-178d50e631f8",
      "user_id": "201",
      "type": "foodlog.comment",
      "time": "1460616964",
      "mtime": 14606169641000,
      "is_new": false,
      "read": false,
      "title": "Johnathon Lavon (401) commented on a photo",
      "image": "http://portal.fruitstreet.dev/files/index/food/photo/1/250x250?auth_code=b9b6746928de9450db3c1265d2d90edf83c14688",
      "data": {
        "food_id": "1",
        "food_comment_id": "1"
      }
    }
  ]
}

PUT /notifications/:id

Mark a notification as read

Parameters

Parameter

Type

Description

id

String

Notification id

Response

Notification object

curl -X PUT \
  -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" \
  https://api.vsee.me/api_v3/notifications/570f3f04-f1f4-4805-946e-178d50e631f8

{
  "data": {
      "id": "570f3f04-f1f4-4805-946e-178d50e631f8",
      "user_id": "201",
      "type": "foodlog.comment",
      "time": 1460616964,
      "mtime": 14606169641000,
      "is_new": false,
      "read": true,
      "title": "Johnathon Lavon (401) commented on a photo",
      "image": "http://portal.fruitstreet.dev/files/index/food/photo/1/250x250?auth_code=b9b6746928de9450db3c1265d2d90edf83c14688",
      "data": {
        "food_id": "1",
        "food_comment_id": "1"
      }
  }
}

GET /notifications/badge

Get the badge number for notifications

Parameters

(None)

Response

curl -X GET \
  -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" \
  https://api.vsee.me/api_v3/notifications/badge

{
  "data": 5
}

POST /notifications/badge

Reset the badge number for notifications

Parameters

(None)

Response

curl -X POST -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" https://api.vsee.me/api_v3/notifications/badge

{
  "data": true
}

File Upload API

POST /files

Parameters

Parameter

Type

Description

file

Binary

File content

meta.category

String

File category. This is to mark the usage of the attachments. For now the possible reasons are 'intake_attachment', 'user_consent', 'user_avatar', 'user_document'

Response

curl -X POST \
  https://api.vsee.io/cc/ligeng/api_v3/files \
  -H 'X-ApiToken: 4df5b2b7dec8a8c40e142e43c1825502' \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F file=@/Users/teligeng/Pictures/p878984.jpg \
  -F meta.category=user_document

{
    "data": {
        "id": "5e15d150-19b4-4cbd-b217-332fc71b6977",
        "name": "p878984.jpg",
        "size": 40679,
        "ext": "jpg",
        "fullpath": "https://api.vsee.io/cc/ligeng/files/view/5e15d150-19b4-4cbd-b217-332fc71b6977?auth_code=e86ceb8b57c91e4db41611f08311a125e2df0b09&time=1578488144",
        "meta": {
            "category": "user_document",
            "target": {
                "id": "350936",
                "type": "user"
            },
            "account": {
                "code": "5c47c63907c44f0486a16e1dc71b6977"
            }ß
        },
        "creator": {
            "id": "350936",
            "username": "ligeng+trial14+member01@vseelab.com",
            "email": "ligeng+trial14+member01@vseelab.com",
            "full_name": "Ligeng Long Long Long Long Long Long Long Long Long Long Long Long Long Long Long Name"
        }
    }
}

POST /files/:id

Modify the document information. For now, only 'name' is allowed to be modified.

Parameters

Parameter

Type

Description

name

String

File name

Response

curl -X POST \
  https://api.vsee.io/cc/ligeng/api_v3/files/5e1598e7-4118-47ca-84da-0923c71b6977 \
  -H 'X-ApiToken: 466c809667919d34d371d4c7d389392b' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -F name=test2.jpg

{
    "data": {
        "id": "5e1598e7-4118-47ca-84da-0923c71b6977",
        "name": "test2.jpg",
        "size": 184259,
        "ext": "jpg",
        "fullpath": "https:\/\/api.vsee.io\/cc\/ligeng\/files\/view\/5e1598e7-4118-47ca-84da-0923c71b6977?auth_code=ed7e17f29a56cc8c4b2fec812a07e7d30f322b85&time=1579496452",
        "meta": {
            "target": {
                "id": "350936",
                "type": "user"
            },
            "category": "user_document",
            "account": {
                "code": "5c47c63907c44f0486a16e1dc71b6977"
            }
        },
        "created": 1578473704
    }
}

DELETE /files/:id

Parameters

Parameter

Type

Description

id

String

File id

Response

curl -X DELETE -H "X-ApiToken: c18e9874dccd26482e191f3d7b57d3d8" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" -F "file=@" "https://api.vsee.me/api_v3/files/57aa6ede-bf6c-4a88-81e1-6bcdac1f0144" -k

{
    "data": true
}

GET /files

Retrieve file list

Parameters

Parameter

Type

Description

target_id

String

The id of the target which is related to the files

target_type

String

The file of the target which is related to the files. For now the possible values are 'user' and 'visit'

category_type

String

The category type of this file. For now the possible reasons are 'user_document', 'intake_attachment', 'user_consent', 'user_avatar'.

Response

curl -X GET \
>   'https://api.vsee.io/cc/ligeng/api_v3/files?target_id=350936&target_type=user' \
>   -H 'X-ApiToken: 4df5b2b7dec8a8c40e142e43c1825502' \
>   -H 'cache-control: no-cache' \
>   -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
>   -F target_id=350936 \
>   -F target_type=user


{
    "data": [
        {
            "id": "5e1598e7-4118-47ca-84da-0923c71b6977",
            "name": "55bb223fd7304.jpg",
            "size": 184259,
            "ext": "jpg",
            "fullpath": "https:\/\/api.vsee.io\/cc\/ligeng\/files\/view\/5e1598e7-4118-47ca-84da-0923c71b6977?auth_code=ede418b2b0b1fa5451c726a7e6959b2efabcad97&time=1578530083",
            "creator": {
                "username": "ligeng+trial14+member01@vseelab.com",
                "type": 200,
                "full_name": "Ligeng Long Long Long Long Long Long Long Long Long Long Long Long Long Long Long Name"
            },
            "created": 1578473704
        }
    ]
}

GET /files/:id

Retrieve file info

Parameters

Parameter

Type

Description

:id

String

File id

auth_code

String

Auth code returned by other API method

time

String

Timestamp as returned by other API method

size

String

(optional) Resized image dimensions in {W}x{H} format. Example: 320x240. If the file is not image, this parameter will be ignored. Resized Image is always PNG format, Content-type: image/png header will be set in response

Response

curl -X GET "https://api.vsee.me/api_v3/files/57e8c9a2-5c30-4b2c-b9d0-11d6ac1f0144?auth_code=01f72b633c40c9c272f9dc73a87f1bc66694ee31&time=1475236382&size=320x480" -k

Binary object

  • No labels