Data Logs
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 Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| exercise_time | minute | Duration of physical exercise. | No |
| floors_climbed | count | Number of floors climbed. | No |
| stand_time | minute | Time spent standing. | No |
| steps | count | Total steps taken. | No |
Blood Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| blood_glucose | mg/dL | Glucose levels in the blood. | Yes |
| blood_pressure_diastolic | mmHg | Diastolic blood pressure. | Yes |
| blood_pressure_systolic | mmHg | Systolic blood pressure. | Yes |
Body Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| body_fat | percent | Percentage of body fat. | Yes |
| body_mass_index | count | Body Mass Index (BMI). | No |
| lean_body_mass | kg | Weight of lean body mass. | Yes |
| weight | kg | Total body weight. | No |
Device Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| device_lock | boolean | Indicates if the device is locked. | No |
Energy Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| active_energy_burned | kcal | Calories burned through activity. | No |
| basal_energy_burned | kcal | Calories burned at rest. | No |
| time_in_daylight | minute | Time spent in natural daylight. | No |
Exercise Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| exercise session * | minute | Duration spent doing specified exercise type. See all supported exercise types | No |
| exercise_session_biking | minute | Duration spent cycling or biking | No |
| exercise_session_running | minute | Duration spent running or jogging | No |
| exercise_session_walking | minute | Duration spent walking for exercise | No |
Heart Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| heart_rate | bpm | Beats per minute. | Yes |
| heart_rate_variability | ms | Variation in intervals between heartbeats. | Yes |
| heart_rate_variability_sdnn | ms | Standard deviation of NN intervals. | Yes |
| resting_heart_rate | bpm | Heart rate at rest. | Yes |
| walking_heart_rate_average | bpm | Average 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 Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| energy_intake | kcal | Total energy consumed from food and beverages. | No |
| water_intake | L | Volume of water consumed. | No |
| protein_intake | g | Protein consumed. | No |
| fat_intake | g | Total dietary fat consumed. | No |
| fat_saturated_intake | g | Saturated fat consumed. | No |
| fat_monounsaturated_intake | g | Monounsaturated fat consumed. | No |
| fat_polyunsaturated_intake | g | Polyunsaturated fat consumed. | No |
| fat_trans_intake | g | Trans fat consumed. Android only. | No |
| cholesterol_intake | mg | Dietary cholesterol consumed. | No |
| carbohydrate_intake | g | Total carbohydrates consumed. | No |
| sugar_intake | g | Sugars consumed. | No |
| fiber_intake | g | Dietary fiber consumed. | No |
| vitamin_a_intake | µg | Vitamin A consumed. | No |
| vitamin_c_intake | mg | Vitamin C consumed. | No |
| vitamin_d_intake | µg | Vitamin D consumed. | No |
| vitamin_e_intake | mg | Vitamin E consumed. | No |
| vitamin_k_intake | µg | Vitamin K consumed. | No |
| thiamin_intake | mg | Thiamin (vitamin B1) consumed. | No |
| riboflavin_intake | mg | Riboflavin (vitamin B2) consumed. | No |
| niacin_intake | mg | Niacin (vitamin B3) consumed. | No |
| pantothenic_acid_intake | mg | Pantothenic acid (vitamin B5) consumed. | No |
| vitamin_b6_intake | mg | Vitamin B6 consumed. | No |
| biotin_intake | µg | Biotin (vitamin B7) consumed. | No |
| folate_intake | µg | Folate (vitamin B9) consumed. | No |
| vitamin_b12_intake | µg | Vitamin B12 consumed. | No |
| calcium_intake | mg | Calcium consumed. | No |
| iron_intake | mg | Iron consumed. | No |
| magnesium_intake | mg | Magnesium consumed. | No |
| phosphorus_intake | mg | Phosphorus consumed. | No |
| potassium_intake | mg | Potassium consumed. | No |
| sodium_intake | mg | Sodium consumed. | No |
| zinc_intake | mg | Zinc consumed. | No |
| chloride_intake | mg | Chloride consumed. | No |
| copper_intake | mg | Copper consumed. | No |
| manganese_intake | mg | Manganese consumed. | No |
| chromium_intake | µg | Chromium consumed. | No |
| molybdenum_intake | µg | Molybdenum consumed. | No |
| selenium_intake | µg | Selenium consumed. | No |
| iodine_intake | µg | Iodine consumed. | No |
| caffeine_intake | mg | Caffeine consumed. | No |
Oxygen Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| oxygen_saturation | percent | Percentage of oxygen-saturated hemoglobin. | Yes |
| respiratory_rate | bps | Breaths per second. | Yes |
| vo2_max | ml/kg/min | Maximum rate of oxygen consumption during exercise. | Yes |
Sleep Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| sleep_stage_awake | minute | Duration in awake stage. | Yes |
| sleep_stage_deep | minute | Duration in deep sleep stage. | Yes |
| sleep_stage_in_bed | minute | Duration in bed, not necessarily asleep. | No |
| sleep_stage_light | minute | Duration in light sleep stage. | Yes |
| sleep_stage_rem | minute | Duration in REM sleep stage. | Yes |
| sleep_stage_sleeping | minute | Duration spent asleep/sleeping. | No |
Temperature Logs
| Data Type | Unit | Description | Requires Wearable |
|---|---|---|---|
| basal_body_temperature | degC | Body temperature at rest. | Yes |
| sleeping_wrist_temperature | degC | Temperature measured at the wrist during sleep | Yes |
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
[ { "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": {} } ] }] [
{
"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": {}
}
]
}
]
DataLog
Each entry in the dataLogs array contains:
id UUID Unique identifier for this sample
parentId UUID nullableParent 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
Data Logs are raw samples with full provenance. Biomarkers are processed, deduplicated, and aggregated—ready for most use cases.
Subscribe to Data Log webhooks in the dashboard. Logs are streamed in real-time as they're recorded.
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.
Stream raw health samples as they're recorded
Configure webhook endpoints and select log types
Support
For help with Data Logs, reach out in the Slack community or contact support@sahha.ai .