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
Filter Parameters
Parameter | Type | Description |
---|---|---|
|
| E.g:
|
|
| Full text search (minimum 3 chars) |
|
| Like search (minimum 3 chars) |
|
| Search keyword (minimum 3 chars)
|
|
|
|
|
| |
|
| |
|
| 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:
|
Response:
{ "data": [ UserObject, UserObject, UserObject, UserObject, UserObject ], "total": 500 }
GET /users/:id
Get profile’s data of a particular user, including fields from the extended profile (if any).
Response:
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
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.
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.
"vsee": { "id": "ccpreview+606ce3e353c8411a8e7b52c664457b1f", "token": "78fc497ff743d2b51050d9102acabe63" }
Parameters
Parameter | Type | Description |
---|---|---|
|
|
|
|
|
|
|
|
YYYY-MM-DD format |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 } } } }
GET /auth
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/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
Parameters
Parameter | Type | Description |
---|---|---|
|
| SSO token from https://vsee.atlassian.net/wiki/spaces/VD/pages/14942243/User+API#POST-%2Fusers%2Fsso 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]
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 }