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 15 Next »

User Object

Type

Value

Meaning

Description

100

Admin

Admin user

110

Cronjob

For system use

140

System

For system use

150

Common Admin

Admin user

160

API

For system use

200

Member

A registered patient

300

Company

400

Provider

Provider: Physician or CSR

600

Guest

Guest one-time user

700

Phone Bridge

User joined by dial-in

500

Kiosk

deprecated

Subtype

Value

Meaning

Description

480

Paramedic

Remote Medic

482

Doctor

Licensed Service Provider

484

Nurse

Remote Medic

486

SNF Nurse

deprecated

470

CSR

Customer Service Representative

460

Medical Assistant

Medical Assistant

GET /users

Filter Parameters

Parameter

Type

Description

id

int|int[]|string

E.g:

123 or “1234,1235" or [1234, 1235]

full_name

String

Full text search (minimum 3 chars)

email

String

Like search (minimum 3 chars)

q

String

Search keyword (minimum 3 chars)

full_name like q or email like q

ex_filter

String

all or my-patient

all: filter by assigned rooms

my-patient: filter by own visits

is_hidden

Boolean

[RPM][New] Hide/Unhide patient from patient list

is_admin

Boolean

status

int|int[]|string

Status, e.g:

20 or “10,20" or [10, 20]

type

int|int[]|string

User type, e.g:

400 or “200,600" or [200, 600]

role

string|string[]

Role, e.g:

"clinic_admin" or "clinic_admin,scheduler" or ["clinic_admin", "scheduler"]

room_code

account_code

group

Clinic group

subtype

Provider sub type

Other Parameters

Parameter

Type

Description

sort

string|object

E.g:

“full_name.asc" or {full_name: "asc"}

start

int

Offset

limit

int

Page size

fields

string|string[]

E.g:

"username,full_name" or ["username", "full_name"]

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

first_name

String

Required

last_name

String

Required

dob

String

Optional

YYYY-MM-DD format

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
            }
        }
    }
}

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

String

SSO token from https://vsee.atlassian.net/wiki/spaces/VD/pages/14942243/User+API#POST-%2Fusers%2Fsso API response

next

String

URL path to redirect the user to after login

one_time_token

String

1 - invalidate the sso_token after login. This is optional for additional security.

disable_navigation

String

1 - disable all email communication

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
}

  • No labels