Reference Data
The Reference Data endpoint provides programmatic access to biomarker reference data used to generate Volo Scores
The Voloridge Health Reference Data endpoint provides programmatic access to biomarker reference data used by the Voloridge Health platform for scoring. Use it to map vocabulary concepts (such as LOINC or SNOMED codes) to their corresponding identifiers, units, and metadata.
Base URL: https://api.voloridgehealth.com/
Authentication
All requests must include a valid API key in the x-api-key request header.
x-api-key: YOUR_API_KEYIf the key is missing or invalid, the API returns a 401 Unauthorized response.
Rate Limits & Quotas
| Limit | Value |
|---|---|
| Requests per second | 50 |
| Requests per day | 1,000 |
Exceeding the rate limit returns a 429 Too Many Requests response. Plan your integration accordingly and consider caching responses where possible.
Endpoints
GET /reference-data/— Retrieve all biomarker concept reference dataPOST /predictor-statistics/— Retrieve predictor statistics for a given sex and ageGET /top-disease-predictors/— Retrieve top ranked predictors for all supported health domains
GET /reference-data/
/reference-data/Retrieves the full list of biomarker reference data entries used by the Voloridge Health platform.
Request
GET /reference-data/ HTTP/1.1
Host: api.voloridgehealth.com
x-api-key: YOUR_API_KEYResponse
Returns a JSON array of reference data entries on success.
Example response:
[
{
"concept_id": 3005168,
"concept_name": "Iron binding capacity.unsaturated [Mass/volume] in Serum or Plasma",
"concept_code": "2501-5",
"pref_ucum_unit": "ug/dL",
"lookup_type_concept_id": null,
"vocabulary_id": "LOINC",
"vocabulary_concept_id": 44819102,
"concept_class_id": "Lab Test",
"domain_id": "Measurement",
"standard_concept": "S",
"start_dtutc": "1970-01-01 00:00:00",
"end_dtutc": "2099-12-31 00:00:00",
"created_dtutc": "2025-11-24 20:55:37.820",
"updated_dtutc": null
}
]Response Schema
Each entry in the response array contains the following fields:
| Field | Type | Nullable | Description |
|---|---|---|---|
concept_id | integer | No | Unique identifier for the concept |
concept_name | string | No | Human-readable name of the concept |
concept_code | string | No | Vocabulary-specific code (e.g., LOINC code) |
pref_ucum_unit | string | Yes | Preferred unit of measure in UCUM format |
lookup_type_concept_id | integer | Yes | Lookup type concept identifier |
vocabulary_id | string | No | Source vocabulary (e.g., LOINC, SNOMED) |
vocabulary_concept_id | integer | No | Unique identifier for the vocabulary itself |
concept_class_id | string | No | Concept classification (e.g., Lab Test) |
domain_id | string | No | Domain of the concept (e.g., Measurement) |
standard_concept | string | No | Standard concept indicator (e.g., S for standard) |
start_dtutc | string | No | UTC timestamp when the concept became valid |
end_dtutc | string | No | UTC timestamp when the concept expires |
created_dtutc | string | No | UTC timestamp when the entry was created |
updated_dtutc | string | Yes | UTC timestamp of the last update, if any |
Status Codes
| Status Code | Meaning |
|---|---|
200 OK | Request succeeded |
401 Unauthorized | API key is missing or invalid |
429 Too Many Requests | Rate limit exceeded |
500 Internal Server Error | Unexpected server-side error |
502 Bad Gateway | Upstream reference service is unavailable |
POST /predictor-statistics/
/predictor-statistics/Retrieves statistical information for all predictors (biomarkers) for a given sex and age. This includes population means, optimal ranges, absolute ranges, and Quest lab reference ranges where available.
Request
POST /predictor-statistics/ HTTP/1.1
Host: api.voloridgehealth.com
x-api-key: YOUR_API_KEY
Content-Type: application/jsonRequest body:
{
"header": {
"event_id": "a1b2c3d4-0000-0000-0000-000000000001",
"event_asof_dtutc": "2026-03-02T20:00:00Z"
},
"sex": "male",
"age": 52.0
}Request Body Schema
Top-level fields:
| Field | Type | Required | Description |
|---|---|---|---|
header | object | Yes | Request metadata (see below) |
sex | string | Yes | "male" or "female" |
age | float | Yes | Age in years (0–120) |
header object:
| Field | Type | Required | Description |
|---|---|---|---|
event_id | string | Yes | A unique identifier for this request event (UUID recommended) |
event_asof_dtutc | string (ISO 8601) | Yes | The as-of datetime for the request (e.g., "2026-03-02T20:00:00Z") |
Response
Returns a JSON object containing a response header and an array of per-predictor statistics.
Example response:
{
"header": {
"event_id": "a1b2c3d4-0000-0000-0000-000000000001",
"event_asof_dtutc": "2026-03-02T20:00:00Z",
"scoring_version": "4.3.0"
},
"predictor_statistics": [
{
"name": "Glucose",
"observation_codes": ["2345-7", "6789-0"],
"mean": 95.4,
"optimal_min": 70.0,
"optimal_max": 99.0,
"absolute_min": 40.0,
"absolute_max": 500.0,
"quest_lab_range": "range",
"quest_lab_min": 70.0,
"quest_lab_max": 99.0
},
{
"name": "BMI",
"observation_codes": ["39156-5"],
"mean": 27.1,
"optimal_min": 18.5,
"optimal_max": 24.9,
"absolute_min": 10.0,
"absolute_max": 80.0,
"quest_lab_range": null,
"quest_lab_min": null,
"quest_lab_max": null
}
]
}Response Schema
header object:
| Field | Type | Description |
|---|---|---|
event_id | string | Echoed from the request |
event_asof_dtutc | string (ISO 8601) | Echoed from the request |
scoring_version | string | Version of the scoring model used (e.g., "4.3.0") |
Each entry in predictor_statistics:
| Field | Type | Nullable | Description |
|---|---|---|---|
name | string | No | The name of the predictor |
observation_codes | string[] | Yes | Associated LOINC or other observation codes |
mean | float | No | Population mean for this predictor given the provided sex and age |
optimal_min | float | No | Lower bound of the optimal range |
optimal_max | float | No | Upper bound of the optimal range |
absolute_min | float | No | The 1st percentile of biomarker values, i.e. < 1% of the population has a biomarker value lower than this |
absolute_max | float | No | The 99th percentile of biomarker values, i.e. < 1% of the population has a biomarker value higher than this |
quest_lab_range | string | Yes | Quest lab reference range type, if applicable. This can be “range”, “GT”, “GTE”, “LT”, “LTE”. GT means Greater Than, GTE means Greater Than or Equal to, the same for LT and LTE for Lesser. GT/E biomarkers only have a quest_lab_min, since everything greater is considered optimal, and LT/E only has a quest_lab_max. The value of “range” will have both a max and min. |
quest_lab_min | float | Yes | Quest lab reference range minimum, if applicable |
quest_lab_max | float | Yes | Quest lab reference range maximum, if applicable |
Status Codes
| Status Code | Meaning |
|---|---|
200 OK | Request succeeded |
400 Bad Request | Invalid input data |
401 Unauthorized | API key is missing or invalid |
422 Unprocessable Entity | Request body failed validation |
429 Too Many Requests | Rate limit exceeded |
500 Internal Server Error | Unexpected server-side error |
502 Bad Gateway | Upstream scoring service is unavailable |
Error Handling
All error responses include a JSON body with a detail field describing the issue.
{
"detail": "Error fetching reference data: Connection timeout"
}GET /top-disease-predictors/
/top-disease-predictors/Retrieves the top ranked predictors (biomarkers/features) for all supported health domains, ranked by their predictive strength. Use this to understand which biomarkers are most impactful for a given health domain in the Voloridge Health scoring model.
Request
GET /top-disease-predictors/ HTTP/1.1
Host: api.voloridgehealth.com
x-api-key: YOUR_API_KEYResponse
Returns a JSON object containing an array of health domains, each with its ranked list of top predictors.
Example response:
{
"top_disease_predictors": [
{
"disease": "MACE3",
"predictors": [
{ "observation_codes": ["8480-6"], "rank": 1, "strength": 10.0 },
{ "observation_codes": ["33959-8"], "rank": 2, "strength": 10.0 }
]
},
{
"disease": "Mortality",
"predictors": [
{ "observation_codes": ["33959-8"], "rank": 1, "strength": 10.0 },
{ "observation_codes": ["10000-8"], "rank": 2, "strength": 9.0 }
]
}
]
}Response Schema
Top-level field:
| Field | Type | Description |
|---|---|---|
top_disease_predictors | object[] | Array of health domains with their ranked predictors |
Each entry in top_disease_predictors:
| Field | Type | Description |
|---|---|---|
disease | string | Name of the health domain (e.g., "MACE3", "Mortality") |
predictors | object[] | Ranked list of top predictors for this disease |
Each entry in predictors:
| Field | Type | Nullable | Description |
|---|---|---|---|
observation_codes | string[] | No | Associated LOINC or other observation codes for this predictor |
rank | integer | No | Rank among all predictors for this health domain (1 = most important) |
strength | float | No | Relative importance score of this predictor |
Status Codes
| Status Code | Meaning |
|---|---|
200 OK | Request succeeded |
401 Unauthorized | API key is missing or invalid |
429 Too Many Requests | Rate limit exceeded |
500 Internal Server Error | Unexpected server-side error |
502 Bad Gateway | Upstream scoring service is unavailable |
Error Handling
All error responses include a JSON body with a detail field describing the issue.
{
"detail": "Error fetching reference data: Connection timeout"
}Code Examples
GET /reference-data/
/reference-data/cURL:
curl -X GET "https://api.voloridgehealth.com/reference-data/" \
-H "x-api-key: YOUR_API_KEY"Python:
import requests
response = requests.get(
"https://api.voloridgehealth.com/reference-data/",
headers={"x-api-key": "YOUR_API_KEY"}
)
response.raise_for_status()
data = response.json()
print(f"Retrieved {len(data)} reference entries.")JavaScript:
const response = await fetch("https://api.voloridgehealth.com/reference-data/", {
headers: { "x-api-key": "YOUR_API_KEY" }
});
if (!response.ok) throw new Error(`API error: ${response.status}`);
const data = await response.json();
console.log(`Retrieved ${data.length} reference entries.`);POST /predictor-statistics/
/predictor-statistics/cURL:
curl -X POST "https://api.voloridgehealth.com/predictor-statistics/" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"header": {
"event_id": "a1b2c3d4-0000-0000-0000-000000000001",
"event_asof_dtutc": "2026-03-02T20:00:00Z"
},
"sex": "male",
"age": 52.0
}'Python:
import requests
payload = {
"header": {
"event_id": "a1b2c3d4-0000-0000-0000-000000000001",
"event_asof_dtutc": "2026-03-02T20:00:00Z"
},
"sex": "male",
"age": 52.0
}
response = requests.post(
"https://api.voloridgehealth.com/predictor-statistics/",
headers={"x-api-key": "YOUR_API_KEY"},
json=payload
)
response.raise_for_status()
data = response.json()
print(f"Scoring version: {data['header']['scoring_version']}")
print(f"Retrieved stats for {len(data['predictor_statistics'])} predictors.")JavaScript:
const response = await fetch("https://api.voloridgehealth.com/predictor-statistics/", {
method: "POST",
headers: {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
header: {
event_id: "a1b2c3d4-0000-0000-0000-000000000001",
event_asof_dtutc: "2026-03-02T20:00:00Z"
},
sex: "male",
age: 52.0
})
});
if (!response.ok) throw new Error(`API error: ${response.status}`);
const data = await response.json();
console.log(`Scoring version: ${data.header.scoring_version}`);
console.log(`Retrieved stats for ${data.predictor_statistics.length} predictors.`);import requests
url = "https://api.voloridgehealth.com/reference-data/"
headers = {"x-api-key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers)
response.raise_for_status()
data = response.json()
print(f"Retrieved {len(data)} reference entries.")JavaScript (fetch)
const response = await fetch("https://api.voloridgehealth.com/reference-data/", {
headers: {
"x-api-key": "YOUR_API_KEY"
}
});
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
const data = await response.json();
console.log(`Retrieved ${data.length} reference entries.`);GET /top-disease-predictors/
/top-disease-predictors/cURL:
curl -X GET "https://api.voloridgehealth.com/top-disease-predictors/" \
-H "x-api-key: YOUR_API_KEY"Python:
import requests
response = requests.get(
"https://api.voloridgehealth.com/top-disease-predictors/",
headers={"x-api-key": "YOUR_API_KEY"}
)
response.raise_for_status()
data = response.json()
for disease in data["top_disease_predictors"]:
print(f"{disease['disease']}: {len(disease['predictors'])} predictors")JavaScript:
const response = await fetch("https://api.voloridgehealth.com/top-disease-predictors/", {
headers: { "x-api-key": "YOUR_API_KEY" }
});
if (!response.ok) throw new Error(`API error: ${response.status}`);
const data = await response.json();
data.top_disease_predictors.forEach(({ disease, predictors }) => {
console.log(`${disease}: ${predictors.length} predictors`);
});Support
For API access, questions, or issues, reach out to the Voloridge Health API support team:
- Email: [email protected]
Updated 9 days ago
