Appearance
Filtering
Filter endpoints by vendor, state, FHIR version, and access type. All filters are exact-match and combinable with AND logic.
Filter by vendor
Use the vendor ID from the vendors endpoint:
bash
# Epic Systems
curl "https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic"
# PointClickCare
curl "https://fhir-api.luxera.io/api/v1/endpoints?vendor=pointclickcare-technologies-inc"
# athenahealth
curl "https://fhir-api.luxera.io/api/v1/endpoints?vendor=athenahealth-inc"python
import requests
# Epic Systems
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"vendor": "epic"}
)
# PointClickCare
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"vendor": "pointclickcare-technologies-inc"}
)
# athenahealth
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"vendor": "athenahealth-inc"}
)typescript
// Epic Systems
const epic = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic"
);
// PointClickCare
const pcc = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=pointclickcare-technologies-inc"
);
// athenahealth
const athena = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=athenahealth-inc"
);csharp
using var client = new HttpClient();
// Epic Systems
var epic = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic"
);
// PointClickCare
var pcc = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=pointclickcare-technologies-inc"
);
// athenahealth
var athena = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=athenahealth-inc"
);TIP
Get the full list of vendor IDs with GET /api/v1/vendors. The id field is what you pass to the vendor parameter.
Filter by state
Use two-letter state codes (uppercase):
bash
# California
curl "https://fhir-api.luxera.io/api/v1/endpoints?state=CA"
# Texas
curl "https://fhir-api.luxera.io/api/v1/endpoints?state=TX"python
import requests
# California
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"state": "CA"}
)
# Texas
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"state": "TX"}
)typescript
// California
const ca = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?state=CA"
);
// Texas
const tx = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?state=TX"
);csharp
using var client = new HttpClient();
// California
var ca = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?state=CA"
);
// Texas
var tx = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?state=TX"
);Data coverage
State and location data is inconsistently reported across EHR vendors. Currently only Cerner/Oracle and eClinicalWorks include location in their published endpoint lists. Most other vendors — including Epic, athenahealth, and Practice Fusion — do not publish location data.
When filtering by state, only endpoints with known location data are returned. This means results will be a subset of the actual endpoints in that state.
Filter by FHIR version
bash
# R4 only
curl "https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=R4"
# DSTU2
curl "https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=DSTU2"python
import requests
# R4 only
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"fhirVersion": "R4"}
)
# DSTU2
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"fhirVersion": "DSTU2"}
)typescript
// R4 only
const r4 = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=R4"
);
// DSTU2
const dstu2 = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=DSTU2"
);csharp
using var client = new HttpClient();
// R4 only
var r4 = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=R4"
);
// DSTU2
var dstu2 = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=DSTU2"
);Valid values: DSTU2, STU3, R4, R4B, R5
Filter by access type
bash
# Patient-facing endpoints only
curl "https://fhir-api.luxera.io/api/v1/endpoints?access=patient"
# Provider-facing endpoints only
curl "https://fhir-api.luxera.io/api/v1/endpoints?access=provider"python
import requests
# Patient-facing endpoints only
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"access": "patient"}
)
# Provider-facing endpoints only
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"access": "provider"}
)typescript
// Patient-facing endpoints only
const patient = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?access=patient"
);
// Provider-facing endpoints only
const provider = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?access=provider"
);csharp
using var client = new HttpClient();
// Patient-facing endpoints only
var patient = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?access=patient"
);
// Provider-facing endpoints only
var provider = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?access=provider"
);INFO
Access type is inferred from URL patterns for some vendors (Allscripts, Cerner, Practice Fusion). Most endpoints have unknown access type ([]) until metadata enrichment confirms it.
Combine filters
All filters use AND logic:
bash
# Epic R4 endpoints in Wisconsin
curl "https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic&state=WI&fhirVersion=R4"
# Patient-facing PointClickCare endpoints
curl "https://fhir-api.luxera.io/api/v1/endpoints?vendor=pointclickcare-technologies-inc&access=patient"python
import requests
# Epic R4 endpoints in Wisconsin
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"vendor": "epic", "state": "WI", "fhirVersion": "R4"}
)
# Patient-facing PointClickCare endpoints
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"vendor": "pointclickcare-technologies-inc", "access": "patient"}
)typescript
// Epic R4 endpoints in Wisconsin
const epicWi = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic&state=WI&fhirVersion=R4"
);
// Patient-facing PointClickCare endpoints
const pccPatient = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=pointclickcare-technologies-inc&access=patient"
);csharp
using var client = new HttpClient();
// Epic R4 endpoints in Wisconsin
var epicWi = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic&state=WI&fhirVersion=R4"
);
// Patient-facing PointClickCare endpoints
var pccPatient = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=pointclickcare-technologies-inc&access=patient"
);Combine with search
bash
# Search "Children" within Epic
curl "https://fhir-api.luxera.io/api/v1/endpoints?query=Children&vendor=epic"python
import requests
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"query": "Children", "vendor": "epic"}
)
data = response.json()typescript
const response = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?query=Children&vendor=epic"
);
const data = await response.json();csharp
using var client = new HttpClient();
var response = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?query=Children&vendor=epic"
);
var data = await response.Content.ReadAsStringAsync();