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
| Name | Type | Required | Description |
|---|---|---|---|
patient_id | string | Required | Unique identifier of the patient |
provider_id | string | Required | Unique identifier of the provider |
start_time | ISO 8601 | Required | Appointment start time in ISO 8601 format |
duration_minutes | integer | Required | Appointment duration in minutes |
type | string | Required | Appointment type (e.g., "consultation", "follow-up") |
notes | string | Optional | Optional 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"
}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
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Appointment ID (path parameter) |
new_start_time | ISO 8601 | Required | New appointment start time |
new_duration_minutes | integer | Optional | New duration if different from original |
reason | string | Optional | Reason 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"
}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
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Appointment ID (path parameter) |
reason_code | string | Optional | Cancellation reason code (e.g., "patient_request", "provider_unavailable") |
notify | boolean | Optional | Whether 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
}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
| Name | Type | Required | Description |
|---|---|---|---|
patient_id | string | Required | Unique identifier of the patient |
payer_id | string | Required | Insurance payer identifier |
member_id | string | Required | Patient insurance member ID |
date_of_service | ISO 8601 | Required | Date of the planned service |
service_codes | string[] | Optional | CPT 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"
}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
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Prescription 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"
}
}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
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Active call ID (path parameter) |
target_agent_id | string | Optional | Specific agent to route to (optional, uses round-robin if omitted) |
priority | string | Optional | Transfer priority: "normal", "urgent", or "emergency" |
context_summary | string | Optional | Additional 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"
}Official SDKs
Get started quickly with our client libraries.
Ready to integrate?
Sign up for a free trial to get your API keys, or talk to our team about enterprise needs.