Introduction

Raw health data, unfiltered. Data Logs provide granular, timestamped samples directly from HealthKit and Health Connect—ideal for research, clinical studies, and custom analytics.

Need processed data instead?

Most use cases are better served by Biomarkers—deduplicated, aggregated, and ready to use. Use Data Logs only when you need the raw samples.


Key Features

Raw & Unfiltered

Direct access to granular health samples for research and analysis

Multi-Source

Data from HealthKit, Health Connect, and wearables in one stream

Real-time Streaming

Receive data as it's recorded via webhooks

Research-Grade

Timestamped, source-attributed records for clinical use

Complete Provenance

Know exactly which device and app recorded each sample

Flexible Filtering

Filter by log type, data type, or time range


List of Data Logs

Below are the key data types captured in Data Logs, categorized by their respective health aspects. The logs can be streamed via webhooks for real-time data reception.

Activity Logs

Data TypeUnitDescriptionRequires Wearable
exercise_timeminuteDuration of physical exercise.No
floors_climbedcountNumber of floors climbed.No
stand_timeminuteTime spent standing.No
stepscountTotal steps taken.No

Blood Logs

Data TypeUnitDescriptionRequires Wearable
blood_glucosemg/dLGlucose levels in the blood.Yes
blood_pressure_diastolicmmHgDiastolic blood pressure.Yes
blood_pressure_systolicmmHgSystolic blood pressure.Yes

Body Logs

Data TypeUnitDescriptionRequires Wearable
body_fatpercentPercentage of body fat.Yes
body_mass_indexcountBody Mass Index (BMI).No
lean_body_masskgWeight of lean body mass.Yes
weightkgTotal body weight.No

Device Logs

Data TypeUnitDescriptionRequires Wearable
device_lockbooleanIndicates if the device is locked.No

Energy Logs

Data TypeUnitDescriptionRequires Wearable
active_energy_burnedkcalCalories burned through activity.No
basal_energy_burnedkcalCalories burned at rest.No
time_in_daylightminuteTime spent in natural daylight.No

Exercise Logs

Data TypeUnitDescriptionRequires Wearable
exercisesession*minuteDuration spent doing specified exercise type. See all supported exercise typesNo
exercise_session_bikingminuteDuration spent cycling or bikingNo
exercise_session_runningminuteDuration spent running or joggingNo
exercise_session_walkingminuteDuration spent walking for exerciseNo

Heart Logs

Data TypeUnitDescriptionRequires Wearable
heart_ratebpmBeats per minute.Yes
heart_rate_variabilitymsVariation in intervals between heartbeats.Yes
heart_rate_variability_sdnnmsStandard deviation of NN intervals.Yes
resting_heart_ratebpmHeart rate at rest.Yes
walking_heart_rate_averagebpmAverage heart rate while walking.Yes

Nutrition Logs

Sourced from HealthKit and Health Connect dietary entries. Values are per-record intake amounts as logged in the source app, not daily aggregates.

Data TypeUnitDescriptionRequires Wearable
energy_intakekcalTotal energy consumed from food and beverages.No
water_intakeLVolume of water consumed.No
protein_intakegProtein consumed.No
fat_intakegTotal dietary fat consumed.No
fat_saturated_intakegSaturated fat consumed.No
fat_monounsaturated_intakegMonounsaturated fat consumed.No
fat_polyunsaturated_intakegPolyunsaturated fat consumed.No
fat_trans_intakegTrans fat consumed. Android only.No
cholesterol_intakemgDietary cholesterol consumed.No
carbohydrate_intakegTotal carbohydrates consumed.No
sugar_intakegSugars consumed.No
fiber_intakegDietary fiber consumed.No
vitamin_a_intakeµgVitamin A consumed.No
vitamin_c_intakemgVitamin C consumed.No
vitamin_d_intakeµgVitamin D consumed.No
vitamin_e_intakemgVitamin E consumed.No
vitamin_k_intakeµgVitamin K consumed.No
thiamin_intakemgThiamin (vitamin B1) consumed.No
riboflavin_intakemgRiboflavin (vitamin B2) consumed.No
niacin_intakemgNiacin (vitamin B3) consumed.No
pantothenic_acid_intakemgPantothenic acid (vitamin B5) consumed.No
vitamin_b6_intakemgVitamin B6 consumed.No
biotin_intakeµgBiotin (vitamin B7) consumed.No
folate_intakeµgFolate (vitamin B9) consumed.No
vitamin_b12_intakeµgVitamin B12 consumed.No
calcium_intakemgCalcium consumed.No
iron_intakemgIron consumed.No
magnesium_intakemgMagnesium consumed.No
phosphorus_intakemgPhosphorus consumed.No
potassium_intakemgPotassium consumed.No
sodium_intakemgSodium consumed.No
zinc_intakemgZinc consumed.No
chloride_intakemgChloride consumed.No
copper_intakemgCopper consumed.No
manganese_intakemgManganese consumed.No
chromium_intakeµgChromium consumed.No
molybdenum_intakeµgMolybdenum consumed.No
selenium_intakeµgSelenium consumed.No
iodine_intakeµgIodine consumed.No
caffeine_intakemgCaffeine consumed.No

Oxygen Logs

Data TypeUnitDescriptionRequires Wearable
oxygen_saturationpercentPercentage of oxygen-saturated hemoglobin.Yes
respiratory_ratebpsBreaths per second.Yes
vo2_maxml/kg/minMaximum rate of oxygen consumption during exercise.Yes

Sleep Logs

Data TypeUnitDescriptionRequires Wearable
sleep_sessionminuteParent record for grouping sleep data.Yes
sleep_stage_awakeminuteDuration in awake stage.Yes
sleep_stage_deepminuteDuration in deep sleep stage.Yes
sleep_stage_in_bedminuteDuration in bed, not necessarily asleep.No
sleep_stage_lightminuteDuration in light sleep stage.Yes
sleep_stage_remminuteDuration in REM sleep stage.Yes
sleep_stage_sleepingminuteDuration spent asleep/sleeping.No

Temperature Logs

Data TypeUnitDescriptionRequires Wearable
basal_body_temperaturedegCBody temperature at rest.Yes
sleeping_wrist_temperaturedegCTemperature measured at the wrist during sleepYes

Browse our comprehensive data dictionary to view all available outputs beyond just data logs.

Output Schema for Data Logs

When you receive data from Data Logs, it comes in a structured format.

logType string

Log category: activity, sleep, heart, body, energy, nutrition, etc.

dataType string

Specific data type (e.g., steps, heart_rate)

externalId string

The identifier for the profile that sent the log

receivedAtUtc datetime

UTC timestamp when the log was received

dataLogs DataLog[]

Array of individual data samples

Example Response
JSON
[
	{
		"logType": "activity",
		"dataType": "steps",
		"externalId": "ext-789",
		"receivedAtUtc": "2023-06-26T12:34:56+00:00",
		"dataLogs": [
			{
				"id": "123e4567-e89b-12d3-a456-426614174003",
				"parentId": null,
				"value": 10000,
				"unit": "count",
				"source": "iPhone X",
				"recordingMethod": "RECORDING_METHOD_AUTOMATICALLY_RECORDED",
				"deviceType": "iPhone13,2",
				"startDateTime": "2023-06-25T00:00:00+00:00",
				"endDateTime": "2023-06-25T23:59:59+00:00",
				"additionalProperties": {}
			}
		]
	}
]
Object

DataLog

Each entry in the dataLogs array contains:

id UUID

Unique identifier for this sample

parentId UUID nullable

Parent record ID for hierarchical data

value float

The recorded measurement value

unit string

Unit of measurement (e.g., count, bpm)

source string

Device or app that recorded the data

recordingMethod string

How the data was captured (automatic, manual, etc.)

deviceType string

Device model identifier

startDateTime datetime

When the measurement started (ISO 8601)

endDateTime datetime

When the measurement ended (ISO 8601)

additionalProperties object

Extra metadata specific to certain log types


FAQ

What's the difference between Data Logs and Biomarkers? +

Data Logs are raw samples with full provenance. Biomarkers are processed, deduplicated, and aggregated—ready for most use cases.

How do I receive Data Logs? +

Subscribe to Data Log webhooks in the dashboard. Logs are streamed in real-time as they're recorded.

Can I filter by data type? +

Yes. Configure your webhook to receive only specific log types (e.g., only sleep or heart data).


Getting Started

Data Logs are delivered exclusively via webhooks for real-time streaming.


Support

For help with Data Logs, reach out in the Slack community or contact support@sahha.ai.

Docs