Retrieve a Vitals Scan
const url = 'https://api.upvio.com/v1/businesses/example/vitals/scans/example';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/example \ --header 'Authorization: Bearer <token>'Retrieve a vitals scan by ID.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The ID of the Business.
The ID of the Vitals Scan.
Responses
Section titled “Responses”A Vitals Scan.
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.
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" } }}The scan ID is malformed.
object
object
The specific error that occurred.
Human-readable description of the error.
Example
{ "error": { "code": 400, "type": "BadRequestError", "title": "Invalid platformId format." }}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 vitals scan does not exist.
object
object
The specific error that occurred.
Human-readable description of the error.
Example
{ "error": { "code": 404, "type": "NotFoundError", "title": "Vitals Scan not found" }}