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 V3
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:
Available fields params
|
Response:
{ "data": [ UserObject, UserObject, UserObject, UserObject, UserObject ], "total": 500 }
GET /users/:id V3
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 V3
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" }
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 |
---|---|---|
|
|
|
|
|
|
|
|
YYYY-MM-DD format |
|
|
|
|
|
Max length: 128 character |
|
|
male / female |
|
|
|
|
|
|
|
|
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
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 V3
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 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] V3
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 V3
Retrieve the current user profile
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 V3
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 V3
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
{ "data": true }
POST /tokens/refresh V3
Use refresh token to generate a new access token. New refresh token is also returned for the next 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 V3
System will send reset password email to the email supplied if valid
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 V3
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 V3
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 }