Skip to content

List Endpoints

Search and filter FHIR endpoints with pagination.

Request

GET /api/v1/endpoints

Query Parameters

ParameterTypeDefaultDescription
querystringKeyword search across organization name
vendorstringExact match on vendor ID (e.g., epic, cerner)
statestringTwo-letter state code, uppercase (e.g., WI, CA)
fhirVersionstringFHIR version: DSTU2, STU3, R4, R4B, R5
accessstringAccess type: patient or provider
pagenumber1Page number (1-based, max 1000)
limitnumber25Results 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

FieldTypeDescription
idstringUnique endpoint identifier (SHA-256 hash)
urlstringFHIR base URL
vendorNamestringEHR vendor display name
vendorIdstringVendor identifier for filtering
organizationNamestring | nullHealthcare organization name
npistring | nullNational Provider Identifier (when published by the vendor)
tenantIdstring | nullVendor-specific tenant/practice identifier parsed from the endpoint URL
fhirVersionstringDSTU2, STU3, R4, R4B, R5, or UNKNOWN
accessstring[]Audience: ["patient"], ["provider"], ["patient", "provider"], or [] (unknown). Backfilled from SMART capabilities where available.
citystring | nullCity (when available)
statestring | nullTwo-letter state code
zipCodestring | nullZIP code
statusstringlisted (published by vendor), verified (probed successfully), unresponsive (probe failed — DNS/timeout), or removed
lastUpdatedstringISO 8601 timestamp of last data refresh

Error Codes

StatusCodeWhen
400VALIDATION_ERRORInvalid parameters (unknown param, page < 1, limit > 100)

Built by Luxera Software