canonical: https://jentic.com/apis/athenahealth.com/athenahealth

# Athena Health

Access and manage electronic health records including patient demographics, appointments, clinical charts, lab results, and provider information across athenahealth-connected practices. The API supports 38 endpoints covering patient registration, appointment scheduling, medication tracking, vital signs retrieval, and clinical document exchange via CCDA format. OAuth 2.0 client credentials flow ensures secure practice-level access with scoped tokens per practice ID.

## For AI agents

Register patients, schedule appointments, retrieve clinical chart data including medications and lab results, and manage provider records across athenahealth-connected practices.

## Scope

Does not handle medical billing, insurance claims processing, or pharmacy dispensing - use for clinical EHR data access and appointment scheduling only.

## Capabilities

- Search and register patients with full demographic profiles across practice departments
- Schedule, book, and cancel appointments with configurable appointment types and multi-department support
- Retrieve patient clinical charts including medications, medical history, vital signs, and active problems
- Upload and retrieve lab result documents with structured result data
- Export patient health summaries in CCDA format for interoperability
- Query provider availability and open appointment slots across departments
- Track patient analytes and problem lists for longitudinal care management

## Use cases

### AI Agent EHR Integration

AI agents access athenahealth patient records through Jentic to automate clinical workflows. An agent searches for patient data by intent, loads the operation schema, and executes calls to retrieve chart data, lab results, or appointment availability without manual API configuration. Jentic handles OAuth 2.0 token management and practice-level scoping automatically.

Example prompt: Search for a patient by name in practice 195900, retrieve their patient ID, then fetch their current medication list and most recent lab results

### Patient Appointment Management

Query open appointment slots across departments and book patient visits programmatically. The API returns available time slots filtered by department, appointment type, and provider, then accepts booking requests with patient ID and appointment details. Supports multi-department scheduling and cancellation workflows for practices with multiple locations.

Example prompt: Query open appointment slots in department 1 for the next 7 days, then book an appointment for patient ID 12345 at the first available slot

### Clinical Data Exchange

Export patient health summaries in CCDA (Consolidated Clinical Document Architecture) format for interoperability with other health systems. The CCDA endpoint produces standardized XML documents containing patient demographics, medications, allergies, problems, and procedures that can be imported into any EHR supporting the standard.

Example prompt: Retrieve the CCDA document for patient ID 67890 in practice 195900 and parse the medications section

### Lab Results Tracking

Upload structured lab result documents to patient charts and retrieve historical results for clinical review. The API supports creating lab result records with structured data fields and querying existing results by patient. Practices use this to integrate lab information systems directly into the EHR workflow.

Example prompt: Retrieve all lab result documents for patient ID 12345, then create a new lab result entry with hemoglobin A1c value of 6.2%

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /{apivariant}/{practiceid}/patients | Search for patients by demographics |
| POST | /{apivariant}/{practiceid}/patients | Register a new patient |
| GET | /{apivariant}/{practiceid}/appointments/open | Get open appointment slots |
| GET | /{apivariant}/{practiceid}/appointments/booked | Get booked appointments |
| PUT | /{apivariant}/{practiceid}/appointments/{appointmentId}/cancel | Cancel an appointment |
| GET | /{apivariant}/{practiceid}/chart/{patientId}/medications | Get patient medications |
| GET | /{apivariant}/{practiceid}/patients/{patientId}/ccda | Get patient CCDA document |
| POST | /{apivariant}/{practiceid}/patients/{patientId}/documents/labresult | Create a lab result document |

## Key resources

- **Patients** — Search, register, and retrieve patient demographics and clinical documents
- **Appointments** — Query open slots, book, update, and cancel patient appointments
- **Chart** — Access medications, medical history, vitals, analytes, and problems
- **Providers** — List and create provider records within a practice
- **Lab Results** — Upload and retrieve structured lab result documents
- **Departments** — Query department information for a practice

## Why Jentic

- **Setup:** Wiring Athena Health by hand means running its OAuth 2.0 flow, refreshing tokens, and threading the practice id and patient id through every clinical and scheduling path. Through Jentic you install once, import Athena Health from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** Athena Health puts the practice id and patient id in the URL path (/{apivariant}/{practiceid}/chart/{patientId}/medications), so a rule can pin your agent to one practice or patient. You choose the operations it may call, so appointment cancellation is not included unless you add it alongside reads.
- **Credential handling:** Your Athena Health client ID and secret are stored once, encrypted, by your own Jentic One instance and exchanged for practice-scoped access tokens at execution time. Raw client secrets never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'retrieve patient medications', and Jentic returns the matching athenahealth operation with its input schema including the required practice and patient id parameters so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **DrChrono** — Similar EHR API with 310 endpoints covering practice management, billing, and clinical data
- **Epic on FHIR API** — FHIR-native EHR API focused on standardized patient data access via HL7 FHIR resources
- **1upHealth API** — Health data aggregation platform connecting to multiple EHRs and health systems via FHIR

## FAQ

### What authentication does the Athena Health API use?

The Athena Health API uses OAuth 2.0 with the client credentials grant flow. You obtain tokens from the /oauthpreview/token endpoint using your client ID and secret. Through Jentic, these credentials are stored encrypted in your Jentic One instance and agents receive scoped access tokens without handling raw secrets directly.

### Can I retrieve a patient's complete clinical chart with the Athena Health API?

Yes. The API provides separate endpoints under /{apivariant}/{practiceid}/chart/{patientId}/ for medications, medical history, vital signs, analytes, lab results, and active problems. You can also retrieve a consolidated CCDA document from the /patients/{patientId}/ccda endpoint for a full health summary in standard XML format.

### What are the rate limits for the Athena Health API?

The athenahealth API enforces per-practice rate limits. Production access typically allows up to 200 requests per second per practice ID. Sandbox environments have lower thresholds. Rate limit headers are returned with each response to help you manage request pacing.

### How do I book a patient appointment through Jentic?

Search Jentic for 'book patient appointment athenahealth' to discover the open appointment slots endpoint. The agent loads the schema for GET /{apivariant}/{practiceid}/appointments/open to find available slots, then calls PUT /{apivariant}/{practiceid}/appointments/{appointmentId} to book. Install via pip install jentic and use the search-load-execute flow.

### Does the Athena Health API support multi-department scheduling?

Yes. The GET /{apivariant}/{practiceid}/appointments/booked/multipledepartment endpoint retrieves booked appointments across multiple departments in a single request. You can also query open slots filtered by department ID to schedule across locations.

### Can I export patient records in a standard interoperability format?

Yes. The GET /{apivariant}/{practiceid}/patients/{patientId}/ccda endpoint returns a Consolidated Clinical Document Architecture (CCDA) XML document containing demographics, medications, allergies, problems, and procedures. This format is supported by all major EHR systems for data exchange.

### Can I limit what my agent is allowed to do with the Athena Health API?

Yes. Because you run Jentic One yourself, your own rules decide which Athena Health operations and credentials the agent may use. Since the practice id and patient id sit in the URL path, such as /{apivariant}/{practiceid}/chart/{patientId}/medications, you can pin the agent to a single practice or patient. You also choose the exact operations it may call, so a write like appointment cancellation stays off unless you add it alongside read-only chart and appointment lookups.
