Skip to content

API Reference

FHIR Directory provides a JSON API for searching public FHIR endpoints from every ONC-certified EHR vendor in the United States.

Base URL

https://fhir-api.luxera.io/api/v1

Response Format

All responses use a consistent JSON envelope:

json
// Success
{
  "success": true,
  "data": { ... },
  "meta": { "total": 1234, "page": 1, "limit": 25 }
}

// Error
{
  "success": false,
  "error": { "code": "VALIDATION_ERROR", "message": "..." }
}

Authentication

See the Rate Limits guide for details on request quotas, API key usage, and how to sign up for elevated limits.

Rate Limits

Requests are rate limited to protect the infrastructure. Exceeding the limit returns 429 Too Many Requests with a Retry-After header. Check the RateLimit-* response headers to monitor your remaining quota. See the Rate Limits guide for details.

Endpoints

MethodPathDescription
GET/api/v1/endpointsSearch and filter FHIR endpoints
GET/api/v1/endpoints/:idGet a single endpoint by ID
GET/api/v1/endpoints/:id/capabilitiesFull CapabilityStatement and SMART configuration for an endpoint
GET/api/v1/vendorsList all EHR vendors with endpoint counts
GET/api/v1/statsDataset statistics (total endpoints, version breakdown)
GET/healthLightweight liveness probe for uptime monitoring

Quick Example

bash
curl "https://fhir-api.luxera.io/api/v1/endpoints?query=Mayo&limit=3"
python
import requests

resp = requests.get("https://fhir-api.luxera.io/api/v1/endpoints", params={
    "query": "Mayo",
    "limit": 3,
})
data = resp.json()
for ep in data["data"]:
    print(f"{ep['organizationName']}{ep['url']}")
typescript
const resp = await fetch(
  "https://fhir-api.luxera.io/api/v1/endpoints?query=Mayo&limit=3"
);
const { data } = await resp.json();
data.forEach((ep: any) => {
  console.log(`${ep.organizationName} — ${ep.url}`);
});

Built by Luxera Software