DrChrono REST API: Scheduling and Patient Automation
DrChrono's REST API grants small-to-mid practices direct access to scheduling, patient demographics, and limited billing data -- but scattered documentation and inconsistent capability depth create...
DrChrono's REST API grants small-to-mid practices direct access to scheduling, patient demographics, and limited billing data -- but scattered documentation and inconsistent capability depth create confusion. This guide maps exactly what automates, where limitations exist, and how to architect integration workflows. For more on this topic, see our guide on EHR integration for practice operations.
DrChrono's Position in the EHR Market
DrChrono captures approximately 2.3% of the U.S. EHR market, concentrated in independent practices, urgent care, and telehealth operations (MGMA 2024 EHR Survey). Unlike enterprise vendors who restrict third-party access, DrChrono positions its REST API as a competitive differentiator for independent providers seeking workflow automation. However, API maturity varies across modules -- scheduling is strong; clinical documentation access remains read-only and fragmented.
DrChrono REST API: Architecture and Access Model
Authentication and Developer Credentials
DrChrono uses OAuth 2.0 with bearer token authentication. Practice managers or IT teams request API credentials through the DrChrono developer portal, generating a client ID, client secret, and redirect URI. Tokens expire after 3600 seconds (1 hour); implement refresh token logic for sustained integrations. Rate limiting applies at 1,000 requests per minute per API key -- sufficient for most small practices but requires batching for bulk operations.
Rate Limits and Pagination
| Endpoint Category | Requests/Minute | Batch Limit | Pagination |
|---|---|---|---|
| Scheduling | 1,000 | 50 appointments/call | Cursor-based (next_token) |
| Patient Demographics | 1,000 | 100 patients/call | Offset-based |
| Insurance | 500 | 25 records/call | Offset-based |
| Clinical Documents | 300 | 10 documents/call | Cursor-based |
| Billing/Claims | 200 | 5 claims/call | Offset-based |
When building integrations, account for these thresholds. A bulk patient import of 5,000 records requires 50 API calls to the demographics endpoint -- achievable in 4 seconds at full rate but best spread over 5-10 minutes to avoid transient failures.
What DrChrono's API Can Automate
1. Appointment Scheduling (Yes, with Caveats)
Capability: Create, read, update, and cancel appointments via the `/appointments/` endpoint. Query by provider, date range, appointment type, and status.
Real-world uses:
- Sync appointments from external schedulers (Calendly, practice website booking)
- Bulk reschedule when providers block time
- Trigger downstream workflows (send pre-visit questionnaires)
- Query no-show data for retention campaigns
Limitations:
- Cannot programmatically create recurring appointment blocks (e.g., provider templates). Use the UI.
- Appointment type and reason codes are hardcoded in your instance; creating new types requires manual configuration.
- No direct integration with insurance pre-authorization status; you must query separately.
- Availability query doesn't return real-time slot counts -- only existing appointments. Availability logic must live in your integration.
Code example: Create a POST request to `/appointments/` with payload:
2. Patient Demographics and Contact (Yes, Mostly Complete)
Capability: Full CRUD on patient records via `/patients/` endpoint. Fields include:
- Name, date of birth, gender, address, phone, email
- Social security number (read only for compliance)
- Emergency contacts
- Preferred language and communication method
- Custom fields (if configured in your instance)
Real-world uses:
- Bulk import patient rosters from legacy EMRs during migration
- Sync patient contact updates from external CRM platforms
- Trigger engagement workflows when contact info changes
- Export patient lists for HIPAA-compliant population health analysis
Limitations:
- Patient photos/documents cannot be uploaded via API (UI upload only).
- Custom fields supported but must be pre-configured in DrChrono; API cannot create new field definitions.
- No batch delete; each patient deletion requires individual API call (rare use case).
Data integrity note: DrChrono enforces field validation (email format, phone format). Invalid requests return 400 Bad Request. Implement request validation on your side to avoid failed batch imports.
3. Insurance Information (Partial)
Capability: Read insurance records, insurance types, and verification status via `/patient_insurances/` endpoint. Limited write capability.
Real-world uses:
- Query insurance eligibility status before appointments
- Pull insurance cards for prior authorization workflows
- Export insurance data for revenue cycle audits
- Sync insurance changes from patient portals or intake forms
Limitations:
- Cannot write insurance information via API. Insurance must be entered in UI or imported via bulk file upload.
- No real-time eligibility verification (no 270/271 EDI transaction support).
- No direct integration with clearinghouses or third-party insurance verification services.
- Insurance type and plan codes are limited to DrChrono's internal taxonomy.
Workaround: Many practices pair DrChrono API reads with dedicated insurance verification platforms (e.g., VeriFacts, Optum) to achieve real-time eligibility. Cevi's platform bridges this gap via integration adapters.
4. Clinical Documentation (Read-Only, Fragmented)
Capability: Read clinical notes, vital signs, and structured data via `/clinical_documents/`, `/vitals/`, and `/lab_results/` endpoints. Documentation retrieval is available but inconsistent.
Real-world uses:
- Export clinical notes for archival or audit purposes
- Pull vitals and lab results for chronic disease management programs
- Trigger downstream alerts (e.g., "abnormal result notification")
- Feed data into secondary analytics platforms
Limitations:
- Write access is extremely limited. Cannot create or edit clinical notes programmatically. New documentation requires provider entry in UI.
- Unstructured note text returned as plain text; no discrete data extraction (no structured allergies, medications parsed out).
- Lab result imports require manual file upload or ELR integration (separate requirement).
- No access to problem list, medication list, or allergy list as discrete API objects. Must scrape from note text.
Critical gap: DrChrono does not support FHIR R4 natively. You cannot request clinical data in FHIR ClinicalDocument or Observation format. This complicates healthcare data exchange workflows and creates friction with larger health systems requiring FHIR compliance. For more on this topic, see our guide on athenahealth API capabilities.
5. Billing and Claims (Limited)
Capability: Read encounter data, charges, and claim status via `/encounters/` and `/claims/` endpoints.
Real-world uses:
- Monitor claim submission status
- Query daily revenue reports by provider or service code
- Export charge data for accounting system integration
- Track denied claims for follow-up
Limitations:
- Cannot create or modify charges via API. Charges must be posted in the clinical interface.
- No write access to claim submissions. Claim submission requires manual UI action or third-party clearinghouse integration.
- Claim status limited to basic codes (submitted, accepted, paid, denied, pending). Cannot access payer-specific adjudication details.
- No API access to copay/coinsurance collection tracking.
Compliance note: 21st Century Cures Act (2020) mandates EHRs provide API access to structured clinical and claims data at no additional cost. DrChrono's billing API partially satisfies this -- read access is free, but limitations on write and granular status data require workarounds.
DrChrono API Endpoint Reference Table
| Endpoint | HTTP Methods | Capability Level | Rate Limit | Typical Use Case |
|---|---|---|---|---|
| `/appointments/` | GET, POST, PUT, DELETE | High | 1,000/min | Schedule management, no-show tracking |
| `/patients/` | GET, POST, PUT | High | 1,000/min | Roster import, demographic sync |
| `/patient_insurances/` | GET | Partial | 500/min | Insurance eligibility query |
| `/providers/` | GET | Full read | 1,000/min | Provider list, availability |
| `/clinical_documents/` | GET | Low | 300/min | Note export, audit trail |
| `/vitals/` | GET | Low | 300/min | Vital sign export, population health |
| `/lab_results/` | GET | Low | 300/min | Lab result tracking |
| `/encounters/` | GET | Partial | 500/min | Charge capture, revenue reporting |
| `/claims/` | GET | Partial | 200/min | Claim status, denial tracking |
| `/appointments/availability/` | GET | Full read | 1,000/min | Query open slots (with custom logic) |
Common Integration Patterns
Pattern 1: Patient Portal to DrChrono Sync
Patient updates contact or insurance info in your portal. Webhook triggers API call to DrChrono `/patients/` PUT endpoint. Demographics in real-time without manual UI entry.
Best practice: Implement idempotent writes using patient ID as unique key. Retry failed calls with exponential backoff (1s, 2s, 4s).
Pattern 2: External Calendar to DrChrono
Practice wants to sync Calendly or ZoomSchedule appointments to DrChrono. Polling integration queries external calendar every 60 seconds, compares to DrChrono appointments via `/appointments/` GET, and creates missing appointments via POST.
Best practice: Use appointment external ID field to track source system records and prevent duplicates.
Pattern 3: Claim Status Dashboard
Automated job queries `/claims/` endpoint daily, pulls status changes, and publishes to practice's internal revenue dashboard.
Best practice: Store last query timestamp to only fetch updated claims (use `updated_after` parameter if available).
What DrChrono's API Cannot Do
Clinical Data Writes
You cannot programmatically create diagnoses, medications, or problem list entries. EHR liability and compliance concerns restrict clinical documentation to provider UI. Third-party clinical data must be manually reviewed and entered. For more on this topic, see our guide on eClinicalWorks integration approaches.
Real-Time Eligibility Verification
DrChrono offers no 270/271 EDI transaction support. Insurance verification requires external platforms. API returns only stored insurance records.
FHIR Compliance
No native FHIR R4 endpoint. Custom transformation logic required for health systems or payers expecting FHIR-formatted data. This is a significant limitation compared to Epic, Cerner, and newer EHRs.
Advanced Scheduling Rules
No support for double-booking, overbooking algorithms, or provider preference weighting. Complex scheduling logic must live in external systems.
Interoperability with Clearinghouses
No direct API for EDI claim submission or claims management. Your clearinghouse integration lives in the UI layer, not the API.
Building Secure Integrations: Authentication and Data Handling
OAuth 2.0 Token Management
Store client credentials in environment variables or secret management (never in code). Implement token refresh before expiry:
grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET
Rate Limit Handling
Monitor response headers for `X-RateLimit-Remaining` and `X-RateLimit-Reset`. When approaching limits, implement exponential backoff and request queuing.
HIPAA Compliance in API Usage
DrChrono encrypts data in transit (TLS 1.2+) and at rest. Your integration must:
- Log API calls with minimal PII (hash patient IDs, redact full SSNs).
- Implement role-based access control (RBAC) so users access only relevant data.
- Audit all data exports; maintain audit logs for 6 years (CMS requirement).
- Use VPCs or private endpoints if available.
Comparing DrChrono API to Competitors
vs. Epic FHIR
Epic provides complete FHIR R4 endpoints and broader clinical write capability. DrChrono's REST API is simpler but more limited. Epic suits large health systems; DrChrono suits small practices prioritizing scheduling and demographics.
vs. Cerner CareAware
Cerner offers deeper EHI exchange but requires extensive onboarding. DrChrono's API is self-service and faster to implement for basic workflows. For more on this topic, see our guide on FHIR APIs for prior authorization.
vs. Athenahealth Cloud API
Athenhealth's API is more mature and includes real-time eligibility. DrChrono is more transparent about limitations but requires external insurance verification.
Best Practices for DrChrono API Integration
- Map out integration scope first. Not all DrChrono features are API-enabled. Use this guide to identify gaps and plan workarounds before development.
- Test rate limits in staging. Batch sizes matter. Small practices rarely hit limits; multi-location groups do. Simulate peak loads.
- Implement full error handling. DrChrono returns standard HTTP status codes. 400 errors indicate invalid data (fix on your side); 429 errors indicate rate limit (back off); 500 errors indicate service issues (retry with backoff).
- Use webhooks where available. Real-time event triggers (appointment created, claim status updated) reduce polling overhead and improve latency.
- Version your integration code. DrChrono may deprecate endpoints. Pin API versions in your client library and monitor deprecation notices.
- Document custom fields. If your practice uses DrChrono custom fields, document them in your integration spec. Custom field IDs vary per instance.
Getting API Access
DrChrono does not publicly list API documentation. To request credentials:
- Log in to your DrChrono account.
- Handle to Settings > API & Integrations.
- Request API access. DrChrono may require account verification (active subscription, no compliance issues).
- Receive client ID, client secret, and endpoint URL (may be instance-specific).
- Use OAuth 2.0 to authenticate and start making requests.
For enterprise or high-volume integrations, contact DrChrono's business development team. Standard API access is free; high-volume rate limit increases may incur fees.
FAQ Section
Is DrChrono's API truly "open"?
Partially. DrChrono allows third-party integrations without requiring certified integration partners (unlike Epic). However, limited clinical write capability, lack of FHIR support, and scattered documentation mean "open" is relative. For scheduling and demographics automation, yes; for clinical data exchange, no.
Can I automate appointment scheduling end-to-end?
Yes, if your workflow involves transferring appointments from external calendars or bulk rescheduling. However, you cannot programmatically create new appointment types or provider availability blocks. Initial configuration requires UI access. Appointment type codes are fixed and must be known in advance.
Is patient data fully accessible via API?
Demographics, yes. Clinical data, partially (read-only). Billing data, partially (read-only with limitations). Insurance data, read-only with no write capability. No direct access to problem list or medication list as discrete objects -- you must parse clinical notes.
Does DrChrono API support FHIR R4?
No. DrChrono's REST API is proprietary JSON. No FHIR endpoints exist. If your practice needs FHIR-compliant data exchange (e.g., for health information exchange with other systems), you'll need custom transformation logic or a third-party adapter.
How do I get API access and what does it cost?
Request credentials through Settings > API & Integrations in your DrChrono account. Standard API access is included in DrChrono subscription at no additional cost. Rate limits are 1,000 requests/minute for most endpoints. Enterprise practices may negotiate higher limits.
Conclusion
DrChrono's REST API is a practical tool for automating scheduling, patient demographics, and basic revenue reporting in small-to-mid practices. Its self-service access model and straightforward OAuth authentication lower barriers to integration. However, gaps in clinical documentation, insurance verification, and FHIR compliance mean integrations often require supplementary platforms.
Before investing development resources, audit your practice's API needs against this guide. If your workflow is 80% scheduling + demographics + billing reads, DrChrono's API is sufficient. If you need clinical data exchange, real-time eligibility, or FHIR compliance, plan for external integrations or evaluate alternative EHRs.
Cevi's platform bridges many DrChrono API gaps through pre-built connectors for insurance verification, document management, and healthcare data exchange. Learn how to extend DrChrono's capabilities.
See how Cevi compares to Cevi vs Akasa, Cevi vs Infinitus, Cevi vs Zocdoc, Cevi vs Luma Health, Cevi vs Waystar, Cevi vs Cedar, Athenahealth and eClinicalWorks for prior authorization.
Common Questions
Is DrChrono's API truly open for third-party integrations?
DrChrono allows self-service API access without requiring certified integration partners, making it more open than Epic or Cerner. However, limited clinical write capability, no FHIR support, and scattered documentation qualify its openness. Scheduling and demographics automation are fully supported; clinical data exchange and real-time eligibility are not.
Can I automate appointment scheduling completely with the DrChrono API?
You can automate appointment creation, updates, and cancellation for existing appointment types and providers. However, you cannot programmatically create new appointment types, availability blocks, or provider schedules -- these require manual UI configuration. External calendar integration is fully supported via REST.
Is patient demographic and clinical data fully accessible via the API?
Demographics are fully accessible (read/write). Clinical data is read-only and fragmented -- notes export as plain text without structured extraction of diagnoses, medications, or allergies. Insurance data is read-only with no write capability. Billing data is read-only with limited claim adjudication detail.
Does the DrChrono API support FHIR R4 or healthcare interoperability standards?
No. DrChrono's API is proprietary JSON REST, not FHIR-compliant. If your practice requires FHIR data exchange for health information networks or payer integration, you'll need custom transformation logic or third-party adapters to convert DrChrono data to FHIR format.
How do I get DrChrono API access and what are the costs?
Request API credentials through Settings > API & Integrations in your DrChrono account. Standard API access is included in your subscription at no additional cost. Rate limits are 1,000 requests/minute for most endpoints. Enterprise accounts may negotiate higher limits for additional fees.






