Create a Vitals Scan
const url = 'https://api.upvio.com/v1/businesses/example/vitals/scans';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"vitalsLinkId":"example","patientId":"example","inputData":{"gender":"male","countryCode":"example","age":1,"dob":"example","race":"example","height":1,"weight":1,"waistCircumference":1,"neckCircumference":1,"hipCircumference":1,"smokingStatus":"never","diabetesStatus":"none","hypertensionTreatment":"notNeeded","activityLevel":"inactive","chronicMedicationStatus":"none","cholesterol":1,"cholesterolHdl":1,"cholesterolLdl":1,"familyDiabetesHistory":"none","parentalHypertensionHistory":"none","historyOfHighGlucose":true,"historyOfHypertension":true,"vegetableFruitDiet":true,"fastingGlucose":1,"triglyceride":1},"successReturnUrl":"https://example.com","failureReturnUrl":"https://example.com","abortReturnUrl":"https://example.com","skipResultsScreen":true,"settings":{"headerVisibility":"hidden"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.upvio.com/v1/businesses/example/vitals/scans \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "vitalsLinkId": "example", "patientId": "example", "inputData": { "gender": "male", "countryCode": "example", "age": 1, "dob": "example", "race": "example", "height": 1, "weight": 1, "waistCircumference": 1, "neckCircumference": 1, "hipCircumference": 1, "smokingStatus": "never", "diabetesStatus": "none", "hypertensionTreatment": "notNeeded", "activityLevel": "inactive", "chronicMedicationStatus": "none", "cholesterol": 1, "cholesterolHdl": 1, "cholesterolLdl": 1, "familyDiabetesHistory": "none", "parentalHypertensionHistory": "none", "historyOfHighGlucose": true, "historyOfHypertension": true, "vegetableFruitDiet": true, "fastingGlucose": 1, "triglyceride": 1 }, "successReturnUrl": "https://example.com", "failureReturnUrl": "https://example.com", "abortReturnUrl": "https://example.com", "skipResultsScreen": true, "settings": { "headerVisibility": "hidden" } }'Create a new vitals scan for a patient with optional pre-filled input data.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The ID of the Business.
Request Body required
Section titled “Request Body required ”object
The ID of the Vitals Link to create the scan under.
The ID of the Patient this scan is for.
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.
HDL cholesterol level.
LDL cholesterol level.
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.
Triglyceride level.
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. Requires successReturnUrl to be set on this scan.
Per-scan UI/flow customization. All keys are optional; omitted keys fall back to the patient app’s defaults.
object
Controls whether the patient app renders its header during this scan.
Responses
Section titled “ Responses ”Vitals Scan created
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 value.
Parasympathetic activity percentage (%).
Cardiac workload in mmHg/s.
Diastolic blood pressure in mmHg.
Systolic blood pressure in mmHg.
Body Mass Index (BMI) in kg/m².
Overall wellness score.
Vascular age in years.
Atherosclerotic cardiovascular disease risk percentage (%).
Cardiovascular event risk percentage (%).
Cardiovascular risk score.
Hypertension risk value.
Diabetes risk percentage (%).
Fatty liver disease (NAFLD) risk value.
Waist-to-height ratio (WHtR).
Body fat percentage (%).
Body roundness index (BRI).
A Body Shape Index (ABSI).
Conicity index (CI).
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.
HDL cholesterol level.
LDL cholesterol level.
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.
Triglyceride level.
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.
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" } }}Bad request (link expired, disabled, max scans reached, or insufficient credits)
Unauthorized
Vitals link or patient not found