# VSee Clinic Rooms API Landing: https://developers.vsee.io/api/rooms-api · Spec JSON: https://developers.vsee.io/specs/rooms_api_openapi.json Base URL: https://api.vseepreview.com/api_v3 The VSee Clinic Rooms API allows developers to manage video consultation rooms within the VSee Clinic platform. ## Room Codes Every room has a unique `code` (e.g., `my-room-123`). The room code is used to identify the room in API calls (e.g., `PUT /rooms/{code}`) and to construct the room URL for joining: `https://{account_code}.vsee.me/{room_code}`. When creating a room, you can optionally specify a `code`. If omitted, the system generates one automatically. Room codes must be unique within your clinic. ## Authentication Reading rooms (`GET /rooms`, `GET /rooms/{code}`) requires only the `X-AccountCode` header. Creating, updating, or deleting rooms requires the **Clinic Admin API Token** in the `X-ApiToken` header — not a user session token. ## GET /rooms URL: https://developers.vsee.io/api/rooms-api/get/rooms operationId: listRooms Auth: Account Code Only — Only requires the X-AccountCode header. No token needed. List rooms Retrieve a list of rooms with pagination. This is a public endpoint. **Note:** The Rooms API supports the DataTable API format for server-side pagination and filtering. Parameters: - X-AccountCode (header, string, required) — Account code - page (query, integer, optional) — Page number for pagination - limit (query, integer, optional) — Number of records per page Responses: - 200 — Successful response ```json { "data": [ { "slug": "room1", "name": "Room 1", "domain": "demo.vsee.me", "code": "room1_code", "created": 1427922788, "modified": 1427922788 }, { "slug": "room2", "name": "Room 2", "domain": "demo.vsee.me", "code": "room2_code", "created": 1427922800, "modified": 1427922800 } ] } ``` ## POST /rooms URL: https://developers.vsee.io/api/rooms-api/post/rooms operationId: createRoom Auth: Admin Token — Requires the Clinic Admin API Token from your dashboard (Developers → App → Edit App). Create room Create a new room for video consultations. Parameters: - X-ApiToken (header, string, required) — API token - X-AccountCode (header, string, required) — Account code Request body (application/json): - domain (string, required) — Clinic's domain - code (string, optional) — Room code (optional, should be unique) - slug (string, optional) — Room slug (optional) - name (string, required) — Room's name Example request: ```json { "domain": "vclinic.vsee.me", "code": "b4vjj", "slug": "provider00102", "name": "provider00102 room" } ``` Responses: - 200 — Room created successfully ```json { "data": { "visits": { "walkin": { "enabled": true }, "appointment": { "enabled": false } }, "auth": { "guest": { "type": 600, "log_in": { "enabled": true } } }, "subtitle": "If this is an emergency, please call 911.", "slug": "provider00102", "name": "provider00102 room", "domain": "vclinic.vsee.me", "active": true, "users": "85741", "account_code": "clinic", "provider_ids": [ "85741" ], "public_access_room": true, "modified": 1605728974, "created": 1605728974, "payment": { "consultations": [ { "id": "5fb57ace-4808-4346-ad3c-3348925862c1", "description": "15-min Consultation", "duration": 15, "amount": 0, "group": false, "charge": false, "slots": 1 } ], "currency": "USD" }, "operation_settings": { "is_closed": false, "close_msg": "Service currently not available. Please check back later", "default_timezone": "America/Los_Angeles" }, "id": "171", "code": "b4vjj" } } ``` - 400 — Room already exists ```json { "code": 400, "message": "In domain 'vclinic.vsee.me' slug 'uat2' already exists." } ``` ## GET /rooms/{code} URL: https://developers.vsee.io/api/rooms-api/get/rooms/%7Bcode%7D operationId: getRoom Auth: Account Code Only — Only requires the X-AccountCode header. No token needed. Get room details Retrieve detailed information about a specific room. This is a public endpoint. Parameters: - X-AccountCode (header, string, required) — Account code - code (path, string, required) — Room code Responses: - 200 — Successful response ```json { "data": { "description": "", "specialties": [ { "code": "general_care", "name": "Default", "duration": 15 }, { "code": "primary_care", "name": "Primary Care", "duration": 15 }, { "code": "psychiatry", "name": "Psychiatry", "duration": 30 }, { "code": "dermatology", "name": "Dermatology", "duration": 15 } ], "modified": 1466796316, "created": 1446802721, "payment": { "paymentCurrency": "USD", "consultations": [ { "description": "15-min Consultation", "amount": 0, "duration": 15 }, { "description": "30 min", "amount": 20, "duration": 30 }, { "description": "45 min", "amount": 40, "duration": 45 } ] }, "slug": "room1", "name": "Room 1", "domain": "demo.vsee.me", "code": "room1", "account_code": "DEMO-ACCOUNT", "operation_settings": { "close_message": { "html": "" }, "close_msg": "", "closed_days": [ "saturday" ], "default_timezone": "America/Los_Angeles", "is_closed": false, "is_closed_now": false, "is_open_all_time": false, "is_scheduled_closed": false } } } ``` ## GET /rooms/{code}/providers URL: https://developers.vsee.io/api/rooms-api/get/rooms/%7Bcode%7D/providers operationId: listRoomProviders Auth: Account Code Only — Only requires the X-AccountCode header. No token needed. List room providers Retrieve a list of providers associated with a specific room. This is a public endpoint. Parameters: - X-AccountCode (header, string, required) — Account code - code (path, string, required) — Room code Responses: - 200 — Successful response ```json { "data": [ { "id": "401", "username": "provider-401", "code": "", "subtype": "482", "first_name": "Jarod", "last_name": "Sun 401", "vseeid": "evisitdev+user401", "photo": null, "title": "", "suffix": "", "status": false, "short_bio": false } ] } ``` ## GET /rooms/{code}/providers/{id} URL: https://developers.vsee.io/api/rooms-api/get/rooms/%7Bcode%7D/providers/%7Bid%7D operationId: getRoomProvider Auth: Account Code Only — Only requires the X-AccountCode header. No token needed. Get room provider detail Retrieve detailed information about a specific provider in a room. This is a public endpoint. Parameters: - X-AccountCode (header, string, required) — Account code - code (path, string, required) — Room code - id (path, string, required) — Provider ID Responses: - 200 — Successful response ```json { "data": { "id": "826", "code": "55de45a2ce384a24ad633301ac1f0144", "first_name": "John", "last_name": "Will", "username": "provider1", "vseeid": "conciergedev+user826", "email": "anton+provider1@vsee.com", "active": true, "title": "Dr.", "suffix": "M.D.", "tos": false, "phone": "334 2222211", "subtype": "482", "status": false, "educational_training": "edu and training...", "professional_interests": "interests...", "personal_interests": "some personal hobby", "short_bio": "..." } } ``` ## GET /rooms/{code}/queue URL: https://developers.vsee.io/api/rooms-api/get/rooms/%7Bcode%7D/queue operationId: getRoomQueue Auth: Account Code Only — Only requires the X-AccountCode header. No token needed. Get room queue info Retrieve queue information for a specific room. The waiting time is calculated as average_visit_time * before_me. This is a public endpoint. Parameters: - X-AccountCode (header, string, required) — Account code - code (path, string, required) — Room code Responses: - 200 — Successful response ```json { "data": { "length": 10, "capacity": 100, "average_visit_time": 3600, "before_me": 3 } } ``` ## POST /users/{id}/rooms URL: https://developers.vsee.io/api/rooms-api/post/users/%7Bid%7D/rooms operationId: associateRoomToUser Auth: Admin Token — Requires the Clinic Admin API Token from your dashboard (Developers → App → Edit App). Associate room to user Associate a room with a user. Parameters: - X-ApiToken (header, string, required) — API token - X-AccountCode (header, string, required) — Account code - id (path, string, required) — User ID Request body (application/json): - code (string, required) — Room code - default (boolean, optional) — Set this room as default (optional) Example request: ```json { "code": "b4vjj", "default": false } ``` Responses: - 200 — Room associated successfully ```json { "data": [ { "_id": "171", "slug": "provider00102", "name": "provider00102 room", "domain": "clinic.vseepreview.com", "code": "b4vjj", "active": true, "users": "85741", "account_code": "clinic", "provider_ids": [ "85741" ], "public_access_room": true, "modified": { "sec": 1605728974, "usec": 177000 }, "created": { "sec": 1605728974, "usec": 177000 }, "payment": { "consultations": [ { "id": "5fb57ace-4808-4346-ad3c-3348925862c1", "description": "15-min Consultation", "duration": 15, "amount": 0, "group": false, "charge": false, "slots": 1 } ] }, "default": false } ] } ``` ## DELETE /users/{id}/rooms/{room_code} URL: https://developers.vsee.io/api/rooms-api/delete/users/%7Bid%7D/rooms/%7Broom_code%7D operationId: removeRoomFromUser Auth: Admin Token — Requires the Clinic Admin API Token from your dashboard (Developers → App → Edit App). Remove room from user Remove a room association from a user. Parameters: - X-ApiToken (header, string, required) — API token - X-AccountCode (header, string, required) — Account code - id (path, string, required) — User ID - room_code (path, string, required) — Room code Responses: - 200 — Room removed successfully ```json {} ```