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 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
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.
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 |
---|---|---|
|
|
|
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 |
---|---|---|
|
| (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
$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 |
---|---|---|
|
| Array of tokens to be destroyed, e.g |
Response
{ "data": true }
POST /tokens/refresh
Parameters
Parameter | Type | Description |
---|---|---|
|
|
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 |
---|---|---|
|
| 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 |
---|---|---|
|
| (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 |
---|---|---|
|
| |
|
| |
|
| e.g |
|
|
|
|
| 4 digits e.g |
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 }