Appearance
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/v1Response 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
| Method | Path | Description |
|---|---|---|
GET | /api/v1/endpoints | Search and filter FHIR endpoints |
GET | /api/v1/endpoints/:id | Get a single endpoint by ID |
GET | /api/v1/endpoints/:id/capabilities | Full CapabilityStatement and SMART configuration for an endpoint |
GET | /api/v1/vendors | List all EHR vendors with endpoint counts |
GET | /api/v1/stats | Dataset statistics (total endpoints, version breakdown) |
GET | /health | Lightweight 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}`);
});