Appearance
List Endpoints
Search and filter FHIR endpoints with pagination.
Request
GET /api/v1/endpointsQuery Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | — | Keyword search across organization name |
vendor | string | — | Exact match on vendor ID (e.g., epic, cerner) |
state | string | — | Two-letter state code, uppercase (e.g., WI, CA) |
fhirVersion | string | — | FHIR version: DSTU2, STU3, R4, R4B, R5 |
access | string | — | Access type: patient or provider |
page | number | 1 | Page number (1-based, max 1000) |
limit | number | 25 | Results per page (max 100) |
All parameters are optional. Unknown parameters return 400 VALIDATION_ERROR.
Examples
Search by name:
bash
curl "https://fhir-api.luxera.io/api/v1/endpoints?query=Mayo+Clinic"python
import requests
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"query": "Mayo Clinic"}
)
data = response.json()typescript
const response = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?query=Mayo+Clinic"
);
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=Mayo+Clinic"
);
var data = await response.Content.ReadAsStringAsync();Filter by vendor and state:
bash
curl "https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic&state=WI"python
import requests
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"vendor": "epic", "state": "WI"}
)
data = response.json()typescript
const response = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic&state=WI"
);
const data = await response.json();csharp
using var client = new HttpClient();
var response = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?vendor=epic&state=WI"
);
var data = await response.Content.ReadAsStringAsync();Filter by FHIR version:
bash
curl "https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=R4&limit=10"python
import requests
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"fhirVersion": "R4", "limit": 10}
)
data = response.json()typescript
const response = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=R4&limit=10"
);
const data = await response.json();csharp
using var client = new HttpClient();
var response = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?fhirVersion=R4&limit=10"
);
var data = await response.Content.ReadAsStringAsync();Filter by access type:
bash
curl "https://fhir-api.luxera.io/api/v1/endpoints?access=patient&limit=10"python
import requests
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"access": "patient", "limit": 10}
)
data = response.json()typescript
const response = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?access=patient&limit=10"
);
const data = await response.json();csharp
using var client = new HttpClient();
var response = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?access=patient&limit=10"
);
var data = await response.Content.ReadAsStringAsync();Paginate:
bash
curl "https://fhir-api.luxera.io/api/v1/endpoints?page=2&limit=50"python
import requests
response = requests.get(
"https://fhir-api.luxera.io/api/v1/endpoints",
params={"page": 2, "limit": 50}
)
data = response.json()typescript
const response = await fetch(
"https://fhir-api.luxera.io/api/v1/endpoints?page=2&limit=50"
);
const data = await response.json();csharp
using var client = new HttpClient();
var response = await client.GetAsync(
"https://fhir-api.luxera.io/api/v1/endpoints?page=2&limit=50"
);
var data = await response.Content.ReadAsStringAsync();Response
json
{
"success": true,
"data": [
{
"id": "a1b2c3d4e5f6g7h8",
"url": "https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4/",
"vendorName": "Epic Systems",
"vendorId": "epic",
"organizationName": "UW Health",
"npi": "1234567890",
"tenantId": "uw-health-prod",
"fhirVersion": "R4",
"access": ["patient", "provider"],
"city": "Madison",
"state": "WI",
"zipCode": "53792",
"status": "verified",
"lastUpdated": "2026-04-09T03:14:32.584Z"
}
],
"meta": {
"total": 1234,
"page": 1,
"limit": 25
}
}Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique endpoint identifier (SHA-256 hash) |
url | string | FHIR base URL |
vendorName | string | EHR vendor display name |
vendorId | string | Vendor identifier for filtering |
organizationName | string | null | Healthcare organization name |
npi | string | null | National Provider Identifier (when published by the vendor) |
tenantId | string | null | Vendor-specific tenant/practice identifier parsed from the endpoint URL |
fhirVersion | string | DSTU2, STU3, R4, R4B, R5, or UNKNOWN |
access | string[] | Audience: ["patient"], ["provider"], ["patient", "provider"], or [] (unknown). Backfilled from SMART capabilities where available. |
city | string | null | City (when available) |
state | string | null | Two-letter state code |
zipCode | string | null | ZIP code |
status | string | listed (published by vendor), verified (probed successfully), unresponsive (probe failed — DNS/timeout), or removed |
lastUpdated | string | ISO 8601 timestamp of last data refresh |
Error Codes
| Status | Code | When |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid parameters (unknown param, page < 1, limit > 100) |