Skip to main content

Video calls

Ovok's video-call API connects an FHIR Appointment to a LiveKit room. Your application creates the appointment, tells participants when the call is ready, and requests a join token for each person who enters the room.

The API separates those steps. Creating an appointment does not send email or grant Patient access. Starting a call creates the access grant and queues a real-time notification. Join-access endpoints then issue the room URL and token.

Typical workflow​

  1. Create an appointment with at least one Practitioner participant. Ovok resolves each participant by email within the project; an address without a Practitioner account is looked up as a Patient and a Patient account is created when needed.
  2. Send invitation emails with the mail API if your workflow uses email. The appointment endpoint does not send them automatically.
  3. When the Practitioner starts the call, send the active-call notification. This creates or replaces the appointment's access CommunicationRequest and queues an event for participants who are not already in the room.
  4. Request join access for each signed-in participant, or have a Practitioner request guest access for someone without an Ovok account.
  5. If appointment details change, update the appointment and send an update email separately. The cancellation mail endpoint sends a cancellation message; it does not cancel the FHIR Appointment.

Routes​

All routes require a bearer token. The caller's project comes from that token.

OperationMethodPathDetails
Create appointmentPOST/video-call/livekit/appointmentAppointments
Update appointmentPUT/video-call/livekit/appointment/:appointmentIdAppointments
List my appointmentsGET/video-call/livekit/appointmentAppointments
Create guest accessPOST/video-call/livekit/guest-access/:appointmentIdJoin access
Create signed-in user accessPOST/video-call/livekit/user-access/:appointmentIdJoin access
Read my access grantGET/video-call/livekit/access-permission/:appointmentIdJoin access
Notify participants that the call is activePOST/video-call/livekit/notification/active-call/:appointmentIdNotifications and email
Send invitation emailPOST/video-call/livekit/mail/inviteNotifications and email
Send appointment update emailPOST/video-call/livekit/mail/updateNotifications and email
Send cancellation emailPOST/video-call/livekit/mail/cancelNotifications and email

Path note: these controller routes are currently unversioned. Use the paths shown above; do not add /v1.

Authorization at a glance​

Route groupWho can call it
Create, update, active-call notification, and mailPractitioner, project admin, super admin, or a user with the System Owner access policy.
List appointmentsAny signed-in user with a profile. Results are limited to appointments that include that user's profile.
Guest accessA signed-in Practitioner. This route checks the caller's profile type directly.
Signed-in user accessPractitioner or Patient. A Patient must have an access grant for the appointment. RelatedPerson is refused.
Read access grantSigned-in user whose profile is one of the grant's recipients.

Before you integrate​

Pages in this section​

  • Appointments — create, update, and list video-call appointments.
  • Join access — issue room access for a guest or a signed-in Practitioner or Patient.
  • Notifications and email — grant access when a call starts and message participants.