ONC (g)(10) certified, US Core 6.1.0 compliant FHIR R4B API for third-party app integrations with Air.
The Commure EHR FHIR API is a FHIR R4B server that exposes patient health data from Air to authorized third-party applications. It is compliant with US Core 6.1.0 profiles and the ONC (g)(10) Standardized API certification criteria (§170.315(g)(10)). All responses are returned in application/fhir+json format.
Service Base URL:https://onc.api.staging-ehr.athelas.comFHIR Version: R4B (4.0.1) · US Core Version: 6.1.0 · Content Type:application/fhir+json
The server publishes its SMART App Launch v2.0 discovery document at the well-known path below. This is an unauthenticated GET — no token required.
GET https://onc.api.staging-ehr.athelas.com/.well-known/smart-configuration
The document advertises every authorization/token endpoint, the supported scopes, grant types, client-authentication methods, PKCE methods, and SMART capabilities.
The server’s FHIR CapabilityStatement (the “conformance statement”) lists every supported resource, interaction, search parameter, supported US Core profile, and the SMART security configuration. It is available as an unauthenticated GET and can be exported directly:
GET https://onc.api.staging-ehr.athelas.com/metadataAccept: application/fhir+json
The statement declares fhirVersion: 4.0.1, the application/fhir+json format, the SMART OAuth URIs (via the oauth-uris security extension), and one rest.resource entry per supported resource with its supportedProfile, interactions, and searchParam list.
Applications are registered in AWS Cognito. Self-serve registration is planned for a future release; today, contact Commure (d/b/a Athelas) to register.Provide the following:
Organization name and technical contact
Description of the application and the FHIR resources / scopes needed
Whether the app is patient-facing, provider-facing, or a backend service
Client type:public (no secret, uses PKCE), confidential (has secret), or backend service (private_key_jwt)
Store secrets and private keys securely; never embed them in distributable public clients.
4
Configure SMART discovery
Point your client at the .well-known/smart-configuration document to discover the authorization and token endpoints, then implement the Authorization flow that matches your client type.
5
Test against the sandbox
Use the staging Service Base URL (https://onc.api.staging-ehr.athelas.com) to exercise the authorization flows, scope enforcement, resource reads/searches, and bulk export. No registration, sandbox, or production fees apply.
Once validated, request production access from Commure (d/b/a Athelas). Production access to the certified API capabilities is granted on non-discriminatory terms (see API Terms of Use).
EHR initiates launch via GET /launch/{patient_id}?app_launch_url=<url> (optionally with encounter_id). This redirects to the app’s launch URL with a launch parameter.
App redirects to GET /authorize including the launch parameter in addition to the standard OAuth params.
The rest of the flow follows the standalone flow. The resulting token includes patient and optionally encounter launch context claims.
Include grant_type=refresh_token and refresh_token=<token> in the POST /token body.Note: Refresh tokens are issued only when the offline_access scope is granted. Tokens issued to confidential clients are valid for a minimum of 3 months.
If a granular scope is granted, the server restricts search results to only that category. For example, a token with patient/Condition.rs?category=encounter-diagnosis cannot read problem-list or health-concern conditions.
The Commure EHR FHIR API conforms to the HL7 US Core Implementation Guide STU 6.1.0 on FHIR R4 (4.0.1), supporting the USCDI v3 data set, as required by the ONC §170.315(g)(10) Standardized API certification criterion.
Conformance area
Statement
Implementation Guide
US Core 6.1.0 — http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core (version 6.1.0)
US Core “Must Support” elements are populated when present in the source record; absent data is represented per US Core (omission or a US Core data-absent reason).
Required search parameters
The required US Core search parameters and combination searches are implemented per profile (see Resource Endpoints).
Provenance
US Core Provenance is supported and returned via _revinclude=Provenance:target on any resource search.
Profile declaration
Each returned resource declares its US Core profile in meta.profile.
Terminology / vocabulary standards used to satisfy US Core bindings: LOINC, SNOMED CT, RxNorm, CVX (immunizations), ICD-10-CM, CPT/HCPCS, UCUM (units), and HL7 / FHIR code systems.How to verify conformance: retrieve the live /metadata CapabilityStatement, and run the ONC Inferno (g)(10) test kit against the Service Base URL.
This matrix shows where each USCDI v3 data class (the data set supported by US Core 6.1.0) is available through the API — the conformant US Core profile, the FHIR resource, and the endpoint a client calls to retrieve it. See Resource Endpoints for the full search parameters of each endpoint.
All resource endpoints require a valid Bearer token with the appropriate scope. Searches return a FHIR Bundle of type searchset; single-resource reads return the resource directly.
Date parameters support FHIR comparator prefixes: eq, ne, gt, lt, ge, le.All search endpoints support both GET (query parameters) and POST /_search (form-encoded body) forms.
Required scope:patient/Observation.rs (or a granular category scope)
Granular scopes are enforced. If the token only has patient/Observation.rs?category=vital-signs, results are filtered to vital-signs observations only.
Required scope: valid Bearer token (JWT)Provenance resources are returned inline via _revinclude=Provenance:target on any resource search. They can also be read directly by ID.
Interaction
Endpoint
Read
GET /Provenance/{id}
Note: To include Provenance in a search response, add _revinclude=Provenance:target to any resource search. Provenance entries appear in the Bundle with search.mode = include.
Export data for all patients the client has access to
System Export
GET /$export
System-level export of all resources
All export requests require the Prefer: respond-async header and a valid Bearer token. The server returns 202 Accepted with a Content-Location header pointing to the status endpoint.
These Terms of Use govern access to the Commure EHR FHIR API (the “API”). By registering for or accessing the API, the developer (“you”) agrees to these terms. They are published in accordance with the ONC Health IT Certification Program API Conditions of Certification (45 CFR §170.404).
The API provides read-only access to electronic health information for authorized patients, their personal representatives, and authorized third-party applications, consistent with the scopes granted at authorization.
Access is limited to the data authorized by the patient (or the authorizing user) and the granted SMART scopes. You must not attempt to access data beyond your authorized scope.
There are no fees for application registration, sandbox access, or production use of the certified API capabilities.
Access is provided on non-discriminatory terms consistent with §170.404. Fair-and-reasonable fees under §170.404(a)(4) may apply only to optional value-added services beyond the certified capabilities.
Comply with all applicable laws, including HIPAA and the 21st Century Cures Act information-blocking provisions.
Protect client_secret values, private keys, and tokens. Do not embed secrets in distributable public clients; use PKCE for public clients.
Use TLS 1.2 or higher for all connections; connections below TLS 1.2 are rejected.
Honor the patient’s authorization decisions and granted scopes, and provide a clear privacy notice describing how your application uses and discloses data.
Do not use the API to disrupt, overload, or circumvent the security of the service, and respect published rate limits and acceptable-use expectations.
Commure (d/b/a Athelas) may suspend or revoke access that poses a security risk, violates these terms, or harms patients or the service, consistent with §170.404 permitted exceptions.
These terms and the API may change over time; material changes will be reflected on this page. The API is provided “as is” without warranties except as required by law.
For questions about these terms or API access, contact Commure (d/b/a Athelas) at support@athelas.com.
Where do I find the CapabilityStatement and SMART configuration?
Both are unauthenticated GET endpoints on the Service Base URL: the FHIR CapabilityStatement at /metadata and the SMART discovery document at /.well-known/smart-configuration. Examples of each output are included on this page.
How do I register an application?
Self-serve registration is planned for a future release. Today, contact Commure (d/b/a Athelas) to register — see the Application Registration & Onboarding Guide. There are no registration, sandbox, or production fees.
Which version of US Core and USCDI does the API support?