Table of Contents | ||||
---|---|---|---|---|
|
User Object
Type
Value | Meaning | Description |
---|---|---|
|
| Admin user |
|
| For system use |
|
| For system use |
|
| Admin user |
|
| For system use |
|
| A registered patient |
|
| |
|
| Provider: Physician or CSR |
|
| Guest one-time user |
|
| User joined by dial-in |
|
| deprecated |
Subtype
Value | Meaning | Description |
---|---|---|
|
| Remote Medic |
|
| Licensed Service Provider |
|
| Remote Medic |
|
| deprecated |
|
| Customer Service Representative |
|
| Medical Assistant |
GET /users
Status | ||||
---|---|---|---|---|
|
Filter Parameters
Parameter | Type | Description |
---|---|---|
|
| E.g:
|
|
| Full text search (minimum 3 chars) |
|
|
|
|
| Search keyword (minimum 3 chars)
Should be used in conjunction with |
|
|
|
|
| |
|
| |
|
| Status, e.g:
|
|
| User type, e.g:
|
|
| Role, e.g:
|
| ||
| ||
| Clinic group | |
| Provider sub type |
Other Parameters
Parameter | Type | Description |
---|---|---|
|
| E.g:
|
|
| Offset |
|
| Page size |
|
| E.g:
Available fields params
|
Response:
Code Block | |||
---|---|---|---|
| {
"
| ||
curl --location 'https://api-vclinic.vseepreview.com/vc/stable/api_v3/users?q=anton%2Bpatient1%40vseelab.com&type=200' \ --header 'X-ApiToken: vclinic_api_token' \ --header 'X-AccountCode: vclinic' { "data": [ { UserObject,"email": "anton+patient1@vseelab.com", UserObject, "id": "20008869839", UserObject,"full_name": "Anton Patient1" UserObject}, UserObject... ], "total_count": 500 } |
GET /users/:id
...
Status | ||||
---|---|---|---|---|
|
Get profile’s data of a particular user, including fields from the extended profile (if any).
...
Code Block |
---|
curl --location --request GET 'https://api-vclinic.vsee.me/api_v3/users/27769243' \ --header 'X-ApiToken: xxxxxxxxxxxxx' \ --header 'X-AccountCode: vclinic' { "data": { "id": "27769243", "code": "63f67706de344db98a6461d00adc646e", "first_name": "anton", "last_name": "test_2", "full_name": "anton test_2", "username": "anton+test2@vseelab.com", "vseeid": "cmo+user27769243", "dob": "1980-01-01", "email": "anton+test2@vseelab.com", "gender": 1, "active": true, "tos": true, "status": 20, "subtype": "", "timezone": "Europe/Berlin", "email_verified": true, "signup_step": 99, "extra": { "marital_status": "married", "gender_identity": "Choose Not To Disclose", "social_security_no": "", "veteran": "", "race": "", "ethnicity": "", "health_insurance": "", "insurance": "", "insurance_policy_number": "", "attachments": null, "emerg_contact_name": "" }, "dashboard_url_alternative": "/u/uat", "account_code": "vclinic", "clinics": [ "vclinic" ], "rooms": [ { "id": "865244556", "code": "vclinic_room_code", "slug": "uat", "name": "UAT", "account_code": "vclinic", "domain": "vclinic.vsee.me", "default": true, "added_time": 1677096710, "source": "signup" } ], "created": 1677096710, "type": 200 } } |
POST /users/sso
Status | ||||
---|---|---|---|---|
|
Single Sign On for patient and provider.
...
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.
GET parameters
Use POST /users/sso?fields=vsee parameter to include the following object as part of the response. This may be used for Browser Call SDK workflow.
Code Block |
---|
"vsee": { "id": "ccpreview+606ce3e353c8411a8e7b52c664457b1f", "token": "78fc497ff743d2b51050d9102acabe63" } |
...
POST Parameters
Parameter | Type | Description |
---|---|---|
|
|
|
|
|
|
|
|
YYYY-MM-DD format |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
POST Parameters required in order to be able to e-prescribe for this user
Parameter | Type | Description |
---|---|---|
|
|
|
|
|
|
|
|
Optional
YYYY-MM-DD format | ||
|
|
|
400
: Provider, 600
: Guest User
|
|
|
Max length: 128 character |
email
|
|
Optional
username
male / female | |
|
|
Optional
- system will generate one as fallback
disable_emails
Integer
Optional
- set to 1
- if you want user to disable all email notification
| ||
|
|
|
|
|
Two-Letter State Abbreviation |
|
|
|
|
|
|
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
Code Block |
---|
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
Code Block |
---|
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
Code Block |
---|
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
}
}
}
} |
...
} |
GET /auth
Status | ||||
---|---|---|---|---|
|
Use this URL when you need to provide the user with a button or link to redirect to VSee Clinic. The URL will follow this pattern
...
https://vclinic.vseepreview.com/vc/next/u/clinic
Parameters
Parameter | Type | Description |
---|---|---|
|
| SSO token from |
User API - SSO API response | ||
|
| URL path to redirect the user to after login |
|
| 1 - invalidate the sso_token after login. This is optional for additional security. |
|
| 1 - disable all email communication |
POST /users/login.json [public access]
Status | ||||
---|---|---|---|---|
|
Log user in and retrieve access token
...
user_type will be member(200), provider(400), …, etc
There is 2 methods for log in
active user
use username and password field
inactive user
user email and email token sent to their email
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 |
---|---|---|
|
| (for active user only) |
|
| (for active user only) |
|
| (for non-active user who has not set the password yet) |
|
| (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.
Code Block |
---|
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
Status | ||||
---|---|---|---|---|
|
Retrieve the current user profile
Parameters
Parameter | Type | Description |
---|---|---|
|
|
|
Response
Code Block |
---|
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
Status | ||||
---|---|---|---|---|
|
Update current user profile
Parameters
Parameter | Type | Description |
---|---|---|
|
| (optional) Should be sent alone if it’s first time setting password, or together with old_password to change it. |
|
| (optional) Should be sent when user is changing password |
|
| (optional) yyyy-mm-dd |
|
| (optional) male / female |
|
| (optional) choose 1 from the list e.g Vietnamese |
|
| 0 - not accepting / 1 - accepted Terms of service |
|
| (optional) phone number |
|
| (optional) First name |
|
| (optional) Last name |
|
| (optional) Street addr |
|
| (optional) 2 letter state code (CA, AL) |
|
| (optional) eg 07123 |
|
| (optional) City |
|
| (optional) Primary Care Physician Name |
|
| (optional) Primary Care Physician Phone (10 digit) |
|
| (optional) See timezone list below |
|
| (optional) File id retrieved from |
To delete the uploaded avatar, pass empty string. lat
, long
??? gps | Object | json object, min lat, long
Timezone List
Code Block |
---|
$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" ) ); |
...
Code Block |
---|
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
Status | ||||
---|---|---|---|---|
|
Log the current user session out corresponding to the supplied tokens. The supplied tokens will be destroyed.
Parameters
Parameter | Type | Description |
---|---|---|
|
| Array of tokens to be destroyed, e.g |
Response
Code Block |
---|
{ "data": true } |
POST /tokens/refresh
Status | ||||
---|---|---|---|---|
|
Use refresh token to generate a new access token. New refresh token is also returned for the next refresh.
Parameters
Parameter | Type | Description |
---|---|---|
|
|
Response
Code Block |
---|
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
Status | ||||
---|---|---|---|---|
|
System will send reset password email to the email supplied if valid
Parameters
Parameter | Type | Description |
---|---|---|
|
| Valid email to send reset password email |
Response
Code Block |
---|
curl -X POST -d "email=an+1@vsee.com" https://api.vsee.me/api_v3/users/reset_password.json { "data": true } |
POST /users/alive
Status | ||||
---|---|---|---|---|
|
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 |
---|---|---|
|
| (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
Code Block |
---|
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
Status | ||||
---|---|---|---|---|
|
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 |
---|---|---|
|
| |
|
| |
|
| e.g |
|
|
|
|
| 4 digits e.g |
Response
Code Block |
---|
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 } |
...