# VSee Clinic API > REST API for the VSee Clinic telehealth platform — users & authentication, visits/intakes, video rooms, scheduling, payments, insurance, EMR, pharmacy, recordings, and webhooks. Authentication uses custom headers (X-ApiToken, X-AccountCode, X-ApiKey, X-ApiSecret), not Bearer tokens. Staging base URL: https://api.vseepreview.com/api_v3 - Full documentation in one file: https://developers.vsee.io/llms-full.txt - Browse & download raw OpenAPI specs: https://developers.vsee.io/openapi.html ## Guides - [Getting Started](https://developers.vsee.io/guides/getting-started): Environments, onboarding, credentials, CORS, and common mistakes for integrating with the VSee Clinic API. - [Authentication](https://developers.vsee.io/guides/auth-guide): Token types (API key/secret, user token, admin token, account code) and the authentication decision flow for the VSee Clinic API. - [Error Reference](https://developers.vsee.io/guides/error-reference): HTTP status codes and common error scenarios for the VSee Clinic API, and how to resolve them. - [Firewall Configuration](https://developers.vsee.io/guides/firewall-config): Network allowlist and firewall requirements for integrating with the VSee Clinic telehealth platform. ## Use cases - [Patient Dashboard](https://developers.vsee.io/use-cases/patient-dashboard): Log patient in and take them to VSee Clinic's patient dashboard where they can manage appointments, join video calls, and view visit history. - [Video Session](https://developers.vsee.io/use-cases/patient-video-session): Log patient in using SSO, create an intake and walk-in visit, then redirect them directly into a video call with a provider. - [Appointment Scheduling](https://developers.vsee.io/use-cases/appointment-scheduling): Log patient in using SSO, look up the room's consultation, create an intake, find an available time slot, then schedule the appointment. - [eConsult (Async Visit)](https://developers.vsee.io/use-cases/econsult): Log patient in using SSO, create an intake, then create an asynchronous e-consult. - [Guest Invite](https://developers.vsee.io/use-cases/guest-invite): Create a guest invite link to a video call. - [Provider Dashboard](https://developers.vsee.io/use-cases/provider-dashboard): Log a provider into VSee Clinic's provider dashboard for telehealth functionality — manage queue, accept visits, start video calls, view patient records. - [Provider with Room](https://developers.vsee.io/use-cases/provider-dedicated-room): Set up multiple providers with their own dedicated waiting rooms. - [Member SSO](https://developers.vsee.io/use-cases/mobile-sso): Get an SSO token and inject it into your mobile app. - [Browser Call SDK](https://developers.vsee.io/use-cases/browser-call-sdk): Use the VSee Browser Call SDK to embed video calling directly into your app. ## API reference ### VSee Clinic User API — https://developers.vsee.io/api/user-api (12 endpoints) Spec JSON: https://developers.vsee.io/specs/user_api_openapi.json - GET [/users](https://developers.vsee.io/api/user-api/get/users): List users - GET [/users/{id}](https://developers.vsee.io/api/user-api/get/users/%7Bid%7D): Get user by ID - POST [/users/sso](https://developers.vsee.io/api/user-api/post/users/sso): Single Sign On (SSO) - GET [/auth](https://developers.vsee.io/api/user-api/get/auth): SSO redirect login - GET [/me](https://developers.vsee.io/api/user-api/get/me): Get current user profile - POST [/me](https://developers.vsee.io/api/user-api/post/me): Update current user profile - POST [/users/logout](https://developers.vsee.io/api/user-api/post/users/logout): Logout - POST [/tokens/refresh](https://developers.vsee.io/api/user-api/post/tokens/refresh): Refresh access token - POST [/users/reset_password](https://developers.vsee.io/api/user-api/post/users/reset_password): Reset password - POST [/users/alive](https://developers.vsee.io/api/user-api/post/users/alive): Keep alive - POST [/users/activate](https://developers.vsee.io/api/user-api/post/users/activate): Activate user - POST [/users/login](https://developers.vsee.io/api/user-api/post/users/login): Login ### VSee Clinic Visit API — https://developers.vsee.io/api/visit-api (14 endpoints) Spec JSON: https://developers.vsee.io/specs/visit_api_openapi.json - POST [/intakes](https://developers.vsee.io/api/visit-api/post/intakes): Create intake data object - POST [/intakes/{id}](https://developers.vsee.io/api/visit-api/post/intakes/%7Bid%7D): Update intake data object - GET [/intakes/{id}](https://developers.vsee.io/api/visit-api/get/intakes/%7Bid%7D): Get intake data object - POST [/visits/add_walkin](https://developers.vsee.io/api/visit-api/post/visits/add_walkin): Create a walk-in visit - POST [/visits/add_econsult](https://developers.vsee.io/api/visit-api/post/visits/add_econsult): Create an asynchronous e-consult visit - GET [/availability](https://developers.vsee.io/api/visit-api/get/availability): Get provider's available slots - POST [/visits](https://developers.vsee.io/api/visit-api/post/visits): Create an appointment - GET [/visits](https://developers.vsee.io/api/visit-api/get/visits): List visits - GET [/visits/{id}](https://developers.vsee.io/api/visit-api/get/visits/%7Bid%7D): Get visit detail - POST [/visits/{id}](https://developers.vsee.io/api/visit-api/post/visits/%7Bid%7D): Update an appointment - POST [/visits/close](https://developers.vsee.io/api/visit-api/post/visits/close): Close or cancel a visit - POST [/visits/delete](https://developers.vsee.io/api/visit-api/post/visits/delete): Force cancel a visit - GET [/visits/current](https://developers.vsee.io/api/visit-api/get/visits/current): Get current visit in progress - GET [/visits/{id}/exports/visit_summary](https://developers.vsee.io/api/visit-api/get/visits/%7Bid%7D/exports/visit_summary): Export visit summary ### Visit Messages API — https://developers.vsee.io/api/visit-messages-api (2 endpoints) Spec JSON: https://developers.vsee.io/specs/visit_messages_api_openapi.json - GET [/api/visits/{visit_id}/messages](https://developers.vsee.io/api/visit-messages-api/get/api/visits/%7Bvisit_id%7D/messages): Read the conversation - POST [/api/visits/{visit_id}/messages](https://developers.vsee.io/api/visit-messages-api/post/api/visits/%7Bvisit_id%7D/messages): Send a patient message - WEBHOOK [visit.message.created](https://developers.vsee.io/api/visit-messages-api/webhook/visit.message.created): New message on the visit thread ### VSee Clinic Rooms API — https://developers.vsee.io/api/rooms-api (8 endpoints) Spec JSON: https://developers.vsee.io/specs/rooms_api_openapi.json - GET [/rooms](https://developers.vsee.io/api/rooms-api/get/rooms): List rooms - POST [/rooms](https://developers.vsee.io/api/rooms-api/post/rooms): Create room - GET [/rooms/{code}](https://developers.vsee.io/api/rooms-api/get/rooms/%7Bcode%7D): Get room details - GET [/rooms/{code}/providers](https://developers.vsee.io/api/rooms-api/get/rooms/%7Bcode%7D/providers): List room providers - GET [/rooms/{code}/providers/{id}](https://developers.vsee.io/api/rooms-api/get/rooms/%7Bcode%7D/providers/%7Bid%7D): Get room provider detail - GET [/rooms/{code}/queue](https://developers.vsee.io/api/rooms-api/get/rooms/%7Bcode%7D/queue): Get room queue info - POST [/users/{id}/rooms](https://developers.vsee.io/api/rooms-api/post/users/%7Bid%7D/rooms): Associate room to user - DELETE [/users/{id}/rooms/{room_code}](https://developers.vsee.io/api/rooms-api/delete/users/%7Bid%7D/rooms/%7Broom_code%7D): Remove room from user ### Settings API — https://developers.vsee.io/api/settings-api (2 endpoints) Spec JSON: https://developers.vsee.io/specs/settings_api_openapi.json - GET [/settings](https://developers.vsee.io/api/settings-api/get/settings): Get all settings - GET [/settings/{setting_key}](https://developers.vsee.io/api/settings-api/get/settings/%7Bsetting_key%7D): Get specific setting ### EMR API — https://developers.vsee.io/api/emr-api (2 endpoints) Spec JSON: https://developers.vsee.io/specs/emr_api_openapi.json - GET [/users/{id}/emr](https://developers.vsee.io/api/emr-api/get/users/%7Bid%7D/emr): Get user EMR data - POST [/users/{id}/emr/{name}](https://developers.vsee.io/api/emr-api/post/users/%7Bid%7D/emr/%7Bname%7D): Update EMR section ### Pharmacy API — https://developers.vsee.io/api/pharmacy-api (4 endpoints) Spec JSON: https://developers.vsee.io/specs/pharmacy_api_openapi.json - GET [/users/{id}/erx/prescriptions](https://developers.vsee.io/api/pharmacy-api/get/users/%7Bid%7D/erx/prescriptions): Get user prescriptions - GET [/users/{id}/erx/pharmacies](https://developers.vsee.io/api/pharmacy-api/get/users/%7Bid%7D/erx/pharmacies): Get user pharmacies - POST [/users/{id}/erx/pharmacies](https://developers.vsee.io/api/pharmacy-api/post/users/%7Bid%7D/erx/pharmacies): Save pharmacy - DELETE [/users/{id}/erx/pharmacies/{code}](https://developers.vsee.io/api/pharmacy-api/delete/users/%7Bid%7D/erx/pharmacies/%7Bcode%7D): Delete pharmacy ### Payment API — https://developers.vsee.io/api/payment-api (7 endpoints) Spec JSON: https://developers.vsee.io/specs/payment_api_openapi.json - GET [/billing/settings](https://developers.vsee.io/api/payment-api/get/billing/settings): Get payment settings - GET [/billing/sources](https://developers.vsee.io/api/payment-api/get/billing/sources): List payment sources - POST [/billing/sources](https://developers.vsee.io/api/payment-api/post/billing/sources): Add payment source - GET [/billing/sources/{id}](https://developers.vsee.io/api/payment-api/get/billing/sources/%7Bid%7D): Get payment source - PUT [/billing/sources/{id}](https://developers.vsee.io/api/payment-api/put/billing/sources/%7Bid%7D): Set default payment source - DELETE [/billing/sources/{id}](https://developers.vsee.io/api/payment-api/delete/billing/sources/%7Bid%7D): Delete payment source - POST [/billing/invoices/process](https://developers.vsee.io/api/payment-api/post/billing/invoices/process): Process invoice ### Insurance API — https://developers.vsee.io/api/insurance-api (13 endpoints) Spec JSON: https://developers.vsee.io/specs/insurance_api_openapi.json - GET [/users/{user_id}/insurances](https://developers.vsee.io/api/insurance-api/get/users/%7Buser_id%7D/insurances): List insurance cards - POST [/users/{user_id}/insurances/import](https://developers.vsee.io/api/insurance-api/post/users/%7Buser_id%7D/insurances/import): Import insurance cards - POST [/users/{user_id}/insurances/{card_type}](https://developers.vsee.io/api/insurance-api/post/users/%7Buser_id%7D/insurances/%7Bcard_type%7D): Update insurance - GET [/users/{user_id}/insurances/{card_type}](https://developers.vsee.io/api/insurance-api/get/users/%7Buser_id%7D/insurances/%7Bcard_type%7D): Get insurance - DELETE [/users/{user_id}/insurances/{card_type}](https://developers.vsee.io/api/insurance-api/delete/users/%7Buser_id%7D/insurances/%7Bcard_type%7D): Delete insurance - POST [/users/{user_id}/insurances/primary/eligibility/check](https://developers.vsee.io/api/insurance-api/post/users/%7Buser_id%7D/insurances/primary/eligibility/check): Check eligibility - GET [/users/{user_id}/insurances/primary/eligibility](https://developers.vsee.io/api/insurance-api/get/users/%7Buser_id%7D/insurances/primary/eligibility): Get eligibility status - GET [/reports/claims](https://developers.vsee.io/api/insurance-api/get/reports/claims): List claims - GET [/insurances/list/carriers](https://developers.vsee.io/api/insurance-api/get/insurances/list/carriers): List carriers - GET [/insurances/list/insurers](https://developers.vsee.io/api/insurance-api/get/insurances/list/insurers): List insurers - GET [/insurances/list/billing_modifiers](https://developers.vsee.io/api/insurance-api/get/insurances/list/billing_modifiers): List billing modifiers - GET [/insurances/list/dxs](https://developers.vsee.io/api/insurance-api/get/insurances/list/dxs): List diagnoses - GET [/insurances/list/procedures](https://developers.vsee.io/api/insurance-api/get/insurances/list/procedures): List procedures ### Clinic Account API — https://developers.vsee.io/api/clinic-account-api (1 endpoints) Spec JSON: https://developers.vsee.io/specs/clinic_account_api_openapi.json - GET [/accounts/{code}](https://developers.vsee.io/api/clinic-account-api/get/accounts/%7Bcode%7D): Get account details ### Push Notification API — https://developers.vsee.io/api/push-notification-api (8 endpoints) Spec JSON: https://developers.vsee.io/specs/push_notification_api_openapi.json - POST [/endpoints](https://developers.vsee.io/api/push-notification-api/post/endpoints): Register device endpoint - GET [/endpoints](https://developers.vsee.io/api/push-notification-api/get/endpoints): List endpoints - GET [/endpoints/{id}](https://developers.vsee.io/api/push-notification-api/get/endpoints/%7Bid%7D): Get endpoint - DELETE [/endpoints/{id}](https://developers.vsee.io/api/push-notification-api/delete/endpoints/%7Bid%7D): Delete endpoint - GET [/notifications](https://developers.vsee.io/api/push-notification-api/get/notifications): List notifications - PUT [/notifications/{id}](https://developers.vsee.io/api/push-notification-api/put/notifications/%7Bid%7D): Mark notification as read - GET [/notifications/badge](https://developers.vsee.io/api/push-notification-api/get/notifications/badge): Get badge count - POST [/notifications/badge](https://developers.vsee.io/api/push-notification-api/post/notifications/badge): Reset badge count ### File Upload API — https://developers.vsee.io/api/file-upload-api (6 endpoints) Spec JSON: https://developers.vsee.io/specs/file_upload_api_openapi.json - POST [/files](https://developers.vsee.io/api/file-upload-api/post/files): Upload file - GET [/files](https://developers.vsee.io/api/file-upload-api/get/files): List files - GET [/files/{id}](https://developers.vsee.io/api/file-upload-api/get/files/%7Bid%7D): Get file info - POST [/files/{id}](https://developers.vsee.io/api/file-upload-api/post/files/%7Bid%7D): Update file info - DELETE [/files/{id}](https://developers.vsee.io/api/file-upload-api/delete/files/%7Bid%7D): Delete file - GET [/files/view/{id}](https://developers.vsee.io/api/file-upload-api/get/files/view/%7Bid%7D): Download file ### Slot API — https://developers.vsee.io/api/slot-api (4 endpoints) Spec JSON: https://developers.vsee.io/specs/slot_api_openapi.json - GET [/slots](https://developers.vsee.io/api/slot-api/get/slots): List slots - GET [/slots/available](https://developers.vsee.io/api/slot-api/get/slots/available): Get available slots - DELETE [/slots/{id}](https://developers.vsee.io/api/slot-api/delete/slots/%7Bid%7D): Delete slot - DELETE [/slots/groups/{groupId}](https://developers.vsee.io/api/slot-api/delete/slots/groups/%7BgroupId%7D): Delete slot group ### Recordings API — https://developers.vsee.io/api/recordings-api (2 endpoints) Spec JSON: https://developers.vsee.io/specs/recordings_api_openapi.json - GET [/visits](https://developers.vsee.io/api/recordings-api/get/visits): List visits with recordings - GET [/visits/{id}/recordings/{recording_id}](https://developers.vsee.io/api/recordings-api/get/visits/%7Bid%7D/recordings/%7Brecording_id%7D): Get recording ### Survey API — https://developers.vsee.io/api/survey-api (1 endpoints) Spec JSON: https://developers.vsee.io/specs/survey_api_openapi.json - GET [/surveys/{survey_code}/responses](https://developers.vsee.io/api/survey-api/get/surveys/%7Bsurvey_code%7D/responses): Get survey responses ### Health API (Beta) — https://developers.vsee.io/api/health-api (2 endpoints) Spec JSON: https://developers.vsee.io/specs/health_api_openapi.json - POST [/users/{user_id}/devices](https://developers.vsee.io/api/health-api/post/users/%7Buser_id%7D/devices): Register device - POST [/health](https://developers.vsee.io/api/health-api/post/health): Submit health data ### Webhooks — https://developers.vsee.io/api/webhooks (1 endpoints) Spec JSON: https://developers.vsee.io/specs/webhooks_openapi.json - POST [/webhooks/events](https://developers.vsee.io/api/webhooks/post/webhooks/events): Webhook event