Build with FrontDeskOS

A RESTful API with OAuth 2.0 authentication, real-time webhooks, and SDKs for your favorite languages. Ship integrations in hours, not weeks.

Authentication

OAuth 2.0 with API key fallback. Generate keys from your dashboard and pass them via the Authorization header.

Base URL

All endpoints are served from https://api.frontdeskos.co. Sandbox available at https://sandbox.api.frontdeskos.co.

Rate Limits

Up to 10,000 requests/min on paid plans. Rate limit headers included in every response. Burst-friendly with automatic retry guidance.

API Endpoints

Core endpoints for appointments, insurance, prescriptions, and call management.

Creates a new appointment in the FrontDeskOS system. The endpoint validates provider availability, checks for scheduling conflicts, and sends confirmation notifications to both the patient and provider. Returns the created appointment object with a unique ID for future reference.

Parameters

NameTypeRequiredDescription
patient_idstringRequiredUnique identifier of the patient
provider_idstringRequiredUnique identifier of the provider
start_timeISO 8601RequiredAppointment start time in ISO 8601 format
duration_minutesintegerRequiredAppointment duration in minutes
typestringRequiredAppointment type (e.g., "consultation", "follow-up")
notesstringOptionalOptional notes for the appointment

Response Example

{
  "id": "apt_1a2b3c4d",
  "status": "confirmed",
  "patient_id": "pat_5e6f7g8h",
  "provider_id": "prov_9i0j1k2l",
  "start_time": "2025-03-15T10:00:00Z",
  "end_time": "2025-03-15T10:30:00Z",
  "type": "consultation",
  "created_at": "2025-03-14T18:30:00Z"
}
appointmentsscheduling

Reschedules an existing appointment to a new time slot. Validates provider availability at the requested time, updates the appointment record, and sends rescheduling notifications to all parties. The original appointment ID is preserved for continuity.

Parameters

NameTypeRequiredDescription
idstringRequiredAppointment ID (path parameter)
new_start_timeISO 8601RequiredNew appointment start time
new_duration_minutesintegerOptionalNew duration if different from original
reasonstringOptionalReason for rescheduling

Response Example

{
  "id": "apt_1a2b3c4d",
  "status": "rescheduled",
  "previous_time": "2025-03-15T10:00:00Z",
  "new_start_time": "2025-03-17T14:00:00Z",
  "new_end_time": "2025-03-17T14:30:00Z",
  "rescheduled_at": "2025-03-15T09:00:00Z"
}
appointmentsscheduling

Cancels an existing appointment and frees the time slot for other bookings. An optional reason code can be provided for analytics and reporting. Cancellation notifications are sent to the patient and provider automatically.

Parameters

NameTypeRequiredDescription
idstringRequiredAppointment ID (path parameter)
reason_codestringOptionalCancellation reason code (e.g., "patient_request", "provider_unavailable")
notifybooleanOptionalWhether to send cancellation notifications (default: true)

Response Example

{
  "id": "apt_1a2b3c4d",
  "status": "cancelled",
  "reason_code": "patient_request",
  "cancelled_at": "2025-03-14T20:00:00Z",
  "refund_eligible": true
}
appointments

Performs a real-time insurance eligibility check against the payer database. Returns coverage details including co-pay amounts, deductible status, and covered services. Supports all major insurance providers and returns results within seconds.

Parameters

NameTypeRequiredDescription
patient_idstringRequiredUnique identifier of the patient
payer_idstringRequiredInsurance payer identifier
member_idstringRequiredPatient insurance member ID
date_of_serviceISO 8601RequiredDate of the planned service
service_codesstring[]OptionalCPT or service codes to verify coverage for

Response Example

{
  "eligible": true,
  "payer": "Blue Cross Blue Shield",
  "member_id": "BCB123456789",
  "coverage": {
    "copay": 25,
    "deductible_remaining": 500,
    "coinsurance_pct": 20,
    "in_network": true
  },
  "verified_at": "2025-03-14T18:30:00Z"
}
insuranceverification

Retrieves the current status of a prescription including fill history, refill availability, and the dispensing pharmacy. Useful for patient-facing applications and call center agents who need to provide quick prescription updates during calls.

Parameters

NameTypeRequiredDescription
idstringRequiredPrescription ID (path parameter)

Response Example

{
  "id": "rx_4m5n6o7p",
  "medication": "Lisinopril 10mg",
  "status": "filled",
  "refills_remaining": 3,
  "last_filled": "2025-03-01T12:00:00Z",
  "next_refill_date": "2025-03-29T00:00:00Z",
  "pharmacy": {
    "name": "CVS Pharmacy #1234",
    "phone": "(555) 123-4567"
  }
}
prescriptionspharmacy

Transfers an active AI-handled call to a live human agent. The full conversation context — transcript, sentiment analysis, caller intent, and any data collected during the call — is passed to the receiving agent so they can continue seamlessly without asking the caller to repeat information.

Parameters

NameTypeRequiredDescription
idstringRequiredActive call ID (path parameter)
target_agent_idstringOptionalSpecific agent to route to (optional, uses round-robin if omitted)
prioritystringOptionalTransfer priority: "normal", "urgent", or "emergency"
context_summarystringOptionalAdditional context for the receiving agent

Response Example

{
  "transfer_id": "xfr_8q9r0s1t",
  "call_id": "call_2u3v4w5x",
  "status": "connected",
  "agent": {
    "id": "agt_6y7z8a9b",
    "name": "Sarah Johnson"
  },
  "context_passed": true,
  "transferred_at": "2025-03-14T18:32:15Z"
}
callstransferescalation

Official SDKs

Get started quickly with our client libraries.

PythonNode.jsRuby

Ready to integrate?

Sign up for a free trial to get your API keys, or talk to our team about enterprise needs.

Start free trial