Skip to content

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"
);
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();

Built by Luxera Software