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_KEY

If the key is missing or invalid, the API returns a 401 Unauthorized response.


Rate Limits & Quotas

LimitValue
Requests per second50
Requests per day1,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/

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_KEY

Response

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:

FieldTypeNullableDescription
concept_idintegerNoUnique identifier for the concept
concept_namestringNoHuman-readable name of the concept
concept_codestringNoVocabulary-specific code (e.g., LOINC code)
pref_ucum_unitstringYesPreferred unit of measure in UCUM format
lookup_type_concept_idintegerYesLookup type concept identifier
vocabulary_idstringNoSource vocabulary (e.g., LOINC, SNOMED)
vocabulary_concept_idintegerNoUnique identifier for the vocabulary itself
concept_class_idstringNoConcept classification (e.g., Lab Test)
domain_idstringNoDomain of the concept (e.g., Measurement)
standard_conceptstringNoStandard concept indicator (e.g., S for standard)
start_dtutcstringNoUTC timestamp when the concept became valid
end_dtutcstringNoUTC timestamp when the concept expires
created_dtutcstringNoUTC timestamp when the entry was created
updated_dtutcstringYesUTC timestamp of the last update, if any

Status Codes

Status CodeMeaning
200 OKRequest succeeded
401 UnauthorizedAPI key is missing or invalid
429 Too Many RequestsRate limit exceeded
500 Internal Server ErrorUnexpected server-side error
502 Bad GatewayUpstream reference service is unavailable

POST /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/json

Request 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:

FieldTypeRequiredDescription
headerobjectYesRequest metadata (see below)
sexstringYes"male" or "female"
agefloatYesAge in years (0–120)

header object:

FieldTypeRequiredDescription
event_idstringYesA unique identifier for this request event (UUID recommended)
event_asof_dtutcstring (ISO 8601)YesThe 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:

FieldTypeDescription
event_idstringEchoed from the request
event_asof_dtutcstring (ISO 8601)Echoed from the request
scoring_versionstringVersion of the scoring model used (e.g., "4.3.0")

Each entry in predictor_statistics:

FieldTypeNullableDescription
namestringNoThe name of the predictor
observation_codesstring[]YesAssociated LOINC or other observation codes
meanfloatNoPopulation mean for this predictor given the provided sex and age
optimal_minfloatNoLower bound of the optimal range
optimal_maxfloatNoUpper bound of the optimal range
absolute_minfloatNoThe 1st percentile of biomarker values, i.e. < 1% of the population has a biomarker value lower than this
absolute_maxfloatNoThe 99th percentile of biomarker values, i.e. < 1% of the population has a biomarker value higher than this
quest_lab_rangestringYesQuest 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_minfloatYesQuest lab reference range minimum, if applicable
quest_lab_maxfloatYesQuest lab reference range maximum, if applicable

Status Codes

Status CodeMeaning
200 OKRequest succeeded
400 Bad RequestInvalid input data
401 UnauthorizedAPI key is missing or invalid
422 Unprocessable EntityRequest body failed validation
429 Too Many RequestsRate limit exceeded
500 Internal Server ErrorUnexpected server-side error
502 Bad GatewayUpstream 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/

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_KEY

Response

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:

FieldTypeDescription
top_disease_predictorsobject[]Array of health domains with their ranked predictors

Each entry in top_disease_predictors:

FieldTypeDescription
diseasestringName of the health domain (e.g., "MACE3", "Mortality")
predictorsobject[]Ranked list of top predictors for this disease

Each entry in predictors:

FieldTypeNullableDescription
observation_codesstring[]NoAssociated LOINC or other observation codes for this predictor
rankintegerNoRank among all predictors for this health domain (1 = most important)
strengthfloatNoRelative importance score of this predictor

Status Codes

Status CodeMeaning
200 OKRequest succeeded
401 UnauthorizedAPI key is missing or invalid
429 Too Many RequestsRate limit exceeded
500 Internal Server ErrorUnexpected server-side error
502 Bad GatewayUpstream 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/

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/

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/

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: