Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

There is no universal “vitals API.” To retrieve measurements, first identify the system that holds them, then use its authorized API: clinical systems commonly expose FHIR Observation resources, while wearable and consumer-health platforms provide their own user-scoped data types and endpoints. The authentication, consent, available measurements, and response schema differ by provider. Treat this as authorized API retrieval—not as scraping a website or bypassing access controls.

Choose the source before choosing the endpoint

Start by identifying where the measurements originate and who is allowed to authorize access. A patient’s electronic health record (EHR), a wearable ecosystem, and an intermediary health platform are separate sources, even when they contain measurements with similar names.

  • EHR or clinical record: Check whether the health system offers a FHIR server, which FHIR version and profiles it supports, and whether the relevant resources are enabled for your application. A patient-chart API may exist, but availability and approval can vary by health system. Epic, for example, lists a patient-chart vital-sign API in its Epic on FHIR specifications.
  • Wearable or consumer-health platform: Use that platform’s own API, account authorization, data types, and scopes. Do not assume that it uses FHIR or returns the same measurements as an EHR.
  • Intermediary platform: Confirm which upstream sources it connects to, what authorization it requires, and whether it returns source-level records, a consolidated stream, or both.

Before building against any route, confirm the current API version, required access approval, supported measurements and devices, historical range, search behavior, pagination, and applicable rate or access limits in the provider’s documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Authorize the user and application

Use the provider’s approved authorization flow and obtain only the permissions needed for the feature. A token is not a substitute for patient or user authorization, and an endpoint that works for a developer account may not be available to every user or production application.

#1 Best Overall
Fitness Tracker with Step/Distance/Calories Counter for Women Men
  • 【All-day Activity Tracker】: ENGERWALL IP68 Waterproof fitness tracker can record and track your daily steps, calories burned, exercise distance and time. It can also monitor your Body Temp, Heart Rate, Blood Oxygen and Blood Pressure. IP68 waterproof ensures that you don't need to take it off for daily hand washing and swimming, but don't soak it in water for a long time or wear it for hot baths, saunas.
  • 【Slim and simple band design】The design concept of this tracker’s band is slim and unique, offering a comfortable and lightweight wearing experience. Suitable for men, women and the elderly.
  • 【Heart Rate Monitor and Sleep Tracker】: Smart tracker can detect heart rate, blood pressure, blood oxygen, and body temperature in daily life. Monitor your sleep and analyze your sleep quality through Fall Sleep, Deep Sleep, Light Sleep, REM Sleep. You can view daily, weekly, and monthly data in the APP "Runmefit" to help you better understand your health status and lead a healthy lifestyle. [IMPORTANT] The blood pressure measurement feature must be downloaded and enabled within the app.
  • 【Call and message notifications】: You can receive text messages and SNS notifications (including Facebook, Twitter, WhatsApp and Instagram) directly on your wrist. When your phone's Bluetooth is turned on, if you receive a message, the watch will vibrate to remind you and you can view the specific message. This function is very practical whether in work or life.
  • 【Working Time】: Smart Fitness Watch is the best partner at work, you can set it on the mobile APP ‘Runmefit’: up to 5 sets of alarms, you don’t have to worry about being late for appointments or forgetting important things. You can set drinking Water Reminders and Sedentary Reminders to establish a healthy way of working.

For FHIR R4, the vital-sign quick start shows requests with a bearer token and says an unauthorized request receives HTTP 401. Google Health API examples also use an Authorization: Bearer header; its data-type documentation lists scopes for particular operations. The exact approval and token lifecycle are provider-specific, so follow the current documentation rather than hard-coding a demo flow. See the FHIR R4 vital-sign profiles and Google Health API vitals guide.

Keep tokens out of source control, browser code, logs, and error messages. Store them using your application’s secret-management approach, request the narrowest suitable scopes, and handle refresh, expiry, revocation, and renewed consent according to the provider’s rules.

Query clinical measurements with FHIR R4

FHIR represents a vital measurement as an Observation. A common FHIR R4 search requests observations for a patient in the vital-sign category:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
GET [base]/Observation?patient=[id]&category=vital-signs
Authorization: Bearer [server-specific-token]

A date-bounded search adds date parameters; a code-targeted search can request a particular measurement. For example, the FHIR vital-sign guide uses 8867-4 for heart rate and permits a comma-separated list of codes. Exact search syntax, date modifiers, profiles, and pagination depend on the server’s published implementation.

Rank #2
Xiaomi Mi Smart Band 10 (2025) Global Version - 1.72" AMOLED Display | 21 Days Battery Life | Touchscreen, Multi-Sport Tracker, Activity Tracker, Heart Rate Monitor | BT5.4 - (Midnight Black)
  • Stunning images, smooth touch: Immerse yourself in brilliant clarity with the large 1.72-inch AMOLED display.Vacuum filling sealing technology enables symmetrical 2.0mm ultra-thin bezels, expanding screen-to-body ratio from 66% to 73%. Enjoy incredibly smooth and seamless interaction with crisp, color-accurate images, right on your wrist.
  • Fast charging, longer adventures: Say goodbye to daily charging hassles! Enjoy an exceptional 21 days of battery life on a single charge. And when you need more power, it only takes an hour to fully recharge the device with fast charging. Freedom without limits!
  • Revolutionize your swimming and training sessions: The Xiaomi smartwatch is equipped with a new high-precision electronic compass that tracks swimming direction like never before, delivering unparalleled accuracy for pool sessions. Plus, gain detailed insights through professional analysis of your workouts to optimize each session.
  • Master your nighttime recovery: Discover the secrets of your sleep with comprehensive and enhanced sleep monitoring. Get comprehensive insights into your sleep stages and quality, helping you wake up refreshed and optimize your well-being.
  • 1500 nits HBM brightness,Glanceable in any light:25% brighter than before, the display achieves a remarkable 1500 nits HBM brightness, making every message readable even in direct sunlight.

cURL example

curl --get "$FHIR_BASE/Observation" 
  --header "Authorization: Bearer $FHIR_TOKEN" 
  --header "Accept: application/fhir+json" 
  --data-urlencode "patient=$PATIENT_ID" 
  --data-urlencode "category=vital-signs" 
  --data-urlencode "date=ge2026-01-01"

Set FHIR_BASE, FHIR_TOKEN, and PATIENT_ID from your approved environment. Do not copy a demonstration host or patient identifier into production. The date shown is an example lower bound, not a provider-defined default.

Python example

import os
import requests

base = os.environ["FHIR_BASE"].rstrip("/")
token = os.environ["FHIR_TOKEN"]
patient_id = os.environ["PATIENT_ID"]

response = requests.get(
    f"{base}/Observation",
    headers={
        "Authorization": f"Bearer {token}",
        "Accept": "application/fhir+json",
    },
    params={
        "patient": patient_id,
        "category": "vital-signs",
        "date": "ge2026-01-01",
    },
    timeout=30,
)
response.raise_for_status()
bundle = response.json()

for entry in bundle.get("entry", []):
    observation = entry.get("resource", {})
    print(observation.get("id"), observation.get("effectiveDateTime"), observation.get("code"))

This parses the Bundle envelope and prints selected fields; it does not convert units, validate clinical meaning, or follow subsequent pages. Implement the server’s pagination links and response profile before treating the first response as a complete history.

Node.js example

const base = process.env.FHIR_BASE.replace(//$/, '');
const token = process.env.FHIR_TOKEN;
const patientId = process.env.PATIENT_ID;
const q = new URLSearchParams({
  patient: patientId,
  category: 'vital-signs',
  date: 'ge2026-01-01'
});

const res = await fetch(`${base}/Observation?${q}`, {
  headers: {
    Authorization: `Bearer ${token}`,
    Accept: 'application/fhir+json'
  }
});
if (!res.ok) throw new Error(`FHIR request failed: ${res.status}`);
const bundle = await res.json();
for (const entry of bundle.entry ?? []) {
  const observation = entry.resource ?? {};
  console.log(observation.id, observation.effectiveDateTime, observation.code);
}

Use a Node.js runtime that supports the built-in fetch API, or provide an equivalent HTTP client in your application. In production, add bounded retries for transient failures where appropriate, respect server throttling, and avoid retrying authorization errors as if they were temporary.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Query a consumer-health API using its own data types

A consumer-health endpoint is not a FHIR search just because it returns heart rate or oxygen saturation. The Google Health API guide shows paths such as /v4/users/me/dataTypes/heart-rate/dataPoints and /v4/users/me/dataTypes/oxygen-saturation/dataPoints, queried with a time range and bearer authorization. Its operations and scopes vary by data type; check the live documentation for current types, permissions, and supported devices.

Rank #3
Fitbit Google Air - Screenless Activity Tracker - Obsidian
  • Google Fitbit Air is the unbelievably comfortable, exceptionally smart way to transform your health[1]; and Google Health brings together effortless tracking and adaptive coaching to help make the most of your everyday[2]
  • Unlock more with Google Health Premium: With a premium membership, get personalized coaching that’s built with Gemini and adapts to your life[2]; get a 3-month trial at no cost to you[5] (Google Health Premium subscription sold separately)
  • Comfortable fit - One Size Tracker (130-210 mm): The lightweight, micro-adjustable fit sits comfortably and quietly, so you can wear Google Fitbit Air through work, play, and sleep; advanced sensors and new algorithms power more accurate, precise health tracking, 24/7[1]
  • Designed for every occasion: With no screen to distract you or disrupt your style, your tracker moves seamlessly from bracelet to workout band to sleep band, and you can change looks in seconds – just press the pebble in, click, and go
  • Long battery life: Google Fitbit Air’s battery lasts up to a week, and fast charging gets you one day of battery life in just five minutes[6,7]
GET [provider API base]/v4/users/me/dataTypes/heart-rate/dataPoints?startTime=[start]&endTime=[end]
Authorization: Bearer [provider-specific-token]

This path illustrates the shape documented for Google Health API; it is not a general endpoint for other platforms, and the provider’s documented base URL and exact time parameter format must be used. The Google guide’s sample heart-rate record includes a physical timestamp, beats-per-minute value, motion context, sensor location, and recording method. Preserve those fields when they are returned rather than reducing the record to a number.

That guide also describes list results that may contain overlapping source intervals and a reconcile operation for a consolidated stream. This behavior is specific to that API; do not expect a FHIR server or another wearable provider to reconcile sources the same way.

Interpret codes, values, units, and blood-pressure panels

In FHIR, the measurement code identifies what was observed; the quantity and unit identify how its value is expressed. The FHIR R4 vital-sign guide lists these common code and unit conventions:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Measurement LOINC code FHIR representation detail
Heart rate 8867-4 Quantity in /min
Respiratory rate 9279-1 Quantity in /min
Oxygen saturation 2708-6 Quantity in percent; pulse-oximetry code 59408-5 may also appear
Body temperature 8310-5 Celsius or Fahrenheit; site and device may be supplied as additional observations
Blood-pressure panel 85354-9 Panel with systolic 8480-6 and diastolic 8462-4 components; one or both may be present
Body weight 29463-7 Read the returned quantity and unit
Body mass index (BMI) 39156-5 Read the returned quantity and unit

Blood pressure is especially easy to mishandle. Do not assume one ordinary scalar observation contains both values: the panel can carry systolic and diastolic components, and a panel may have only one of them. Parse its components explicitly, preserve the original code and value representation, and do not fabricate a missing side.

Rank #4
Fitness Tracker, Activity Trackers with 24/7 Heart Rate Blood Pressure Sleep Monitor, 1.10" AMOLED Touch Screen Step Counter, Waterproof Smart Watch Health Pedometer for Women Men
  • 【1.10 Inch Display & Custom Watch Face】 Fitness trackers with AMOLED HD Touch Color Screen design, an exquisite visual display, provide you with high-quality touch and visual experience, making all incoming calls and message reminders extremely clear, enjoy a wonderful view.
  • 【All-day Activity Tracking】 With app “Keep Heath”, the step counter understand resting heart rate trends and better estimate calorie burn with 24/7 continuous heart-rate, Tune in to your body with breathing rate, heart rate variability and more. You can also set the amount of exercise you want to complete, stay motivated all day long!
  • 【Sleep Tracker】 Fitness watch automatically measures your fall asleep, awake times, light and deep sleep, then review your sleep quality and duration in the App. Please note that the data should be for reference only and does not replace a doctor's advice.
  • 【25 Sports Modes】 Step counter for walking with 25 sports modes to track the corresponding exercise. For example: steps, calories, distance, heart rate, exercise time, etc. Let you exercise more scientifically. With connected GPS, it can record your workout route, and so on.
  • 【IP68 Water resistant Design】Fitness watches for women designed to withstand your variety lifestyle, pedometer watch features a IP68 water resistant, allowing you to wear it with confidence rain or shine, ensuring you stay connected and in control no matter where life takes you.

FHIR observations can also carry status, effective time, terminology coding, and qualifying context. Preserve source data before normalizing it. Retain the source, timestamp, unit, code, measurement site, device, body position, and other context when present; record any conversion or mapping as a separate, auditable step. HL7’s US Vital Signs Implementation Guide describes the intended scope as recording, searching, and retrieving vital signs plus qualifying observations such as body position, laterality, cuff size and location, and device type. The guide is a US-realm implementation guide for FHIR 4.0.1, not a guarantee that every server implements every profile: HL7 FHIR US Vital Signs Implementation Guide.

Plan for gaps, overlapping sources, and local variation

Coverage is not necessarily continuous. The Google Health API guide says minute-level oxygen-saturation data can be sparse because invalid minutes are excluded. Devices and source systems also differ in what they record, and clinical systems may apply local access controls or support only a subset of profiles and search behavior.

  • Treat an absent reading as missing, not as a normal value or evidence that the patient had no change.
  • Keep each reading’s timestamp and source. If multiple devices or systems contribute data, do not silently collapse conflicting values.
  • Check whether time fields represent the measurement time or another event time, and confirm timezone conventions in provider documentation.
  • For a long date range, use the API’s pagination mechanism and verify that all pages are retrieved before declaring the result complete.
  • Do not presume equal historical depth, granularity, or device coverage across APIs; confirm each one for the authorized account and use case.

For a physical blood-pressure device, the API only returns measurements that a supported source has captured and made available. A home upper-arm blood-pressure monitor may produce readings, but the cited standards and API documentation do not establish compatibility for any particular monitor, Google Health API account, Epic installation, or FHIR server. Verify the device-to-platform path separately.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common API failures

Symptom Likely cause What to check
HTTP 401 Missing, expired, or invalid bearer token Confirm the token is present and current, and follow the provider’s token renewal and authorization flow.
HTTP 403 or no access to a resource Required scope, user consent, application approval, or local access may be absent Check the provider’s current scope and approval requirements; request only the permissions needed and obtain authorization through the supported flow.
HTTP 404 or empty search results Wrong base URL or version, unsupported endpoint, patient identifier mismatch, or no matching measurements Verify the server’s published API version and resource availability, confirm the authorized patient context, then test the documented search parameters.
Some observations appear missing Pagination not followed, search filters too narrow, sparse device data, or local implementation limits Inspect response links and provider search behavior, review date and category filters, and treat absent records as missing rather than infer a value.
Unexpected unit or value shape Different unit, profile, code, component layout, or consumer API schema Parse codes and units from each response; handle blood pressure as a panel with components where that representation is used.
Duplicate or conflicting readings Overlapping source records or multiple devices Retain source and timestamps, then apply a documented reconciliation policy. Do not assume another API’s reconciliation behavior.

Log enough request context to diagnose issues—such as endpoint, status, request time, and correlation identifiers if supplied—but redact tokens and unnecessary patient information. For clinical integrations, keep operational logging consistent with the privacy, security, and retention requirements that apply to your deployment.

Best Value
Smart Watch Fitness Tracker with 24/7 Heart Rate, Blood Oxygen Blood Pressure Monitor Sleep Tracker 120 Sports Modes Activity Trackers Step Calorie Counter IP68 Waterproof for Andriod iPhone Women Men
  • 【Superb Visual Experience & Effortless Operation】Diving into the latest 1.58'' ultra high resolution display technology, every interaction on the fitness watch is a visual delight with vibrant colors and crisp clarity. Its always on display clock makes the time conveniently visible. Experience convenience like never before with the intuitive full touch controls and the side button, switch between apps, and customize settings with seamless precision.
  • 【Comprehensive 24/7 Health Monitoring】The fitness watches for women and men packs 24/7 heart rate, 24/7 blood pressure and blood oxygen monitors. You could check those real-time health metrics anytime, anywhere on your wrist and view the data record in the App. The heart rate monitor watch also tracks different sleep stages for light and deep sleep,and the time when you wake up, helps you to get a better understanding of your sleep quality.
  • 【120+ exercise modes & All-Day Activity Tracking】There are more than 120 exercise modes available in the activity trackers and smartwatches, covering almost all daily sports activities you can imagine, gives you new ways to train and advanced metrics for more information about your workout performance. The all-day activity tracking feature monitors your steps, distance, and calories burned all the day, so you can see how much progress you've made towards your fitness goals.
  • 【Messages & Incoming Calls Notification】With this smart watch fitness trackers for iPhone and android phones, you can receive notifications for incoming calls and read messages directly from your wrist without taking out your phone. Never miss a beat, stay in touch with loved ones, and stay informed of important updates wherever you are.
  • 【Essential Assistant for Daily Life】The fitness watches for women and men provide you with more features including drinking water and sedentary reminder, women's menstrual period reminder, breath training, real-time weather display, remote camera shooting, music control,timer, stopwatch, finding phone, alarm clock, making it a considerate life assistant. With the GPS connectivity, you could get a map of your workout route in the app for outdoor activity by connecting to your phone GPS.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server, not a health-data API: it cannot authorize access to an EHR or return structured vital observations. For developer documentation or another page you are entitled to capture, its one-call API returns an image or PDF. For example, capture a public API guide page:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://developers.google.com/health/data-types/vitals -o shot.webp

See the ScreenshotNeo API documentation for request options. Cookie and consent banners, newsletter popups, and chat widgets can be removed before a capture; those steps can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Sign up for ScreenshotNeo’s free plan.

Frequently Asked Questions

Does FHIR guarantee that every health system exposes vital signs?

No. FHIR defines resources and profiles, but each server’s enabled resources, implementation, approval requirements, and access rules must be checked with that health system.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can I combine data from an EHR and a wearable into one number?

Only after defining an explicit reconciliation policy. Preserve each source record and its context; overlapping or different readings are not automatically interchangeable.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.