List Vitals Scans
const url = 'https://api.upvio.com/v1/businesses/example/vitals/scans?limit=10&offset=0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.upvio.com/v1/businesses/example/vitals/scans?limit=10&offset=0' \ --header 'Authorization: Bearer <token>'Returns a list of vitals scans for a business. The scans are returned sorted by creation date, with the most recent scans appearing first.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The ID of the Business.
Query Parameters
Section titled “Query Parameters”The maximum number of scans to return.
The number of scans to skip before starting to collect the result set.
Filter by Patient ID.
Filter by Vitals Link ID.
Responses
Section titled “Responses”List of Vitals Scans
object
object
Unique identifier across the platform.
Time when the resource was created (ISO 8601 format).
Time when the resource was last updated (ISO 8601 format).
Unique identifier across the platform.
The ID of the vitals link used for this scan.
The status of the vitals scan.
The results of a Vitals Scan. Only present when status is SUCCEEDED.
object
Metric values from the scan. Only metrics listed in includedMetrics will be present.
object
Heart rate in beats per minute (BPM).
Heart rate variability in milliseconds (ms).
Breathing rate in breaths per minute (b/min).
Stress index on a 0–10 scale (modified Baevsky method). Higher values indicate more stress.
Parasympathetic activity as a percentage (0–100).
Cardiac workload (rate-pressure product) in mmHg/s.
Diastolic blood pressure in mmHg.
Systolic blood pressure in mmHg.
Body Mass Index (BMI) in kg/m².
Overall wellness score on a 0–100 scale. Higher values indicate better wellness.
Vascular age in years.
10-year atherosclerotic cardiovascular disease (ASCVD) risk as a percentage (0–100).
10-year risk of a hard cardiovascular event as a percentage (0–100).
Framingham cardiovascular risk score in points: the sum of the points assigned to each risk factor under the Framingham general cardiovascular disease point system. Higher totals indicate higher risk.
Probability of developing hypertension within 4 years, as a percentage (0–100).
Probability of developing diabetes within 8 years, as a percentage (0–100).
Fatty liver disease (NAFLD) risk category: 0 = Low, 1 = Moderate, 2 = High.
Waist-to-height ratio (WHtR), unitless.
Body fat as a percentage of body weight (0–100).
Body roundness index (BRI), unitless.
A Body Shape Index (ABSI), unitless.
Conicity index (CI), unitless, ranging from 1.00 to about 1.73.
Basal metabolic rate in kcal/day.
Total daily energy expenditure (TDEE) in kcal/day.
The metrics included in this scan.
When the scan was started.
Pre-filled patient health profile data for the scan. Only present when provided during scan creation.
object
Patient gender.
ISO 3166-1 alpha-2 country code.
Patient age in years.
Date of birth in YYYY-MM-DD format.
Patient race/ethnicity.
Patient height in cm.
Patient weight in kg.
Waist circumference in cm.
Neck circumference in cm.
Hip circumference in cm.
Patient smoking status.
Patient diabetes status.
Hypertension treatment status.
Patient physical activity level.
Chronic medication status.
Total cholesterol level in mg/dL.
HDL cholesterol level in mg/dL.
LDL cholesterol level in mg/dL.
Family history of diabetes.
Parental history of hypertension.
Whether patient has history of high glucose.
Whether patient has history of hypertension.
Whether patient eats vegetables and fruit daily.
Fasting glucose level in mg/dL.
Triglyceride level in mg/dL.
ID of the new scan that retried this one.
HTTPS URL to redirect to when the scan completes successfully.
HTTPS URL to redirect to when the scan fails.
HTTPS URL to redirect to when the scan is aborted.
When true, the patient app skips the post-scan results screen and redirects immediately to successReturnUrl. When skipResultsScreen is true, successReturnUrl is guaranteed to be non-null (enforced at scan creation).
object
Controls whether the patient app renders its header during this scan.
How the identity behind the scan was established. EMAIL = verified patient session, API = created via the business API, NONE = no email verification.
Arbitrary string key/value pairs attached to the scan. Up to 10 keys; each key up to 40 characters and each value up to 500 characters. Always present; an empty object when none are set.
object
Why the scan failed. Only present when status is FAILED.
object
Why the scan failed. timeout: the measurement ran past the maximum scan time while its progress was stalled below the completion threshold. results_processing_timeout: the measurement finished but its results were not processed in time. no_measurement_results: the measurement finished but produced no results. other: the measurement failed for any other reason.
How long the scan ran before failing, in milliseconds. Only present when failureReason is timeout or results_processing_timeout.
Total time the scan made no progress, in milliseconds. Only present when failureReason is timeout or results_processing_timeout.
Measurement progress when the scan failed, as a percentage (0–100). Only present when failureReason is timeout or results_processing_timeout.
Maximum scan time allowed before the scan could time out, in milliseconds. Only present when failureReason is timeout or results_processing_timeout.
Maximum time without progress allowed before the scan could time out, in milliseconds. Only present when failureReason is timeout or results_processing_timeout.
object
Total number of scans matching the filter criteria.
Example
{ "data": [ { "status": "PENDING", "includedMetrics": [ "A_BODY_SHAPE_INDEX" ], "inputData": { "gender": "male", "smokingStatus": "never", "diabetesStatus": "none", "hypertensionTreatment": "notNeeded", "activityLevel": "inactive", "chronicMedicationStatus": "none", "familyDiabetesHistory": "none", "parentalHypertensionHistory": "none" }, "settings": { "headerVisibility": "hidden" }, "verificationMethod": "EMAIL", "failureInfo": { "failureReason": "timeout" } } ]}A query parameter failed validation.
object
object
The specific error that occurred.
Human-readable description of the error.
Example
{ "error": { "code": 400, "type": "BadRequestError", "title": "limit cannot exceed 50" }}The API key is missing or invalid, or the Business cannot be accessed with it.
object
object
The specific error that occurred.
Human-readable description of the error.
Example
{ "error": { "code": 403, "type": "UnauthorizedError", "title": "Invalid API token" }}The Business does not exist.
object
object
The specific error that occurred.
Human-readable description of the error.
Example
{ "error": { "code": 404, "type": "BusinessNotFoundError", "title": "Business not found" }}