Health Data Types
Ian Whiffin
Posted: 1st September 2021
Revised: 16th December 2021

After a recent question was posted on Discord wanted to identify the various Data_types within iOS Health, I wanted to help out, but found that I couldn't find the definition of lots of the data_types in use.

This led me to do some digging to see what I could find and results in what I think is the most comprehensive list available.

I'll pause here to say that this article IS NOT going to go into detail about how the various databases interact with each other and how the quantities and samples and units etc all work. If you want that as an article, I can for sure do it, but this is intended as a quick reference to the specific datatypes.

There are some items missing; I believe these are either deprecated and/or for applications and peripherals that I don't have. So if you recognize any that I am missing, please let me know!

When I started this research, I had already created some test data on my device and had managed to match them to several of the known codes. Simple ones like Steps and Distance etc. But there was still a lot missing. Through a couple of hours of playing around, I settled on the following process which made things much easier.

The important database is \private\var\mobile\Library\Health\Client\HealthApp.sqlite. Note; this doesn't contain any health data of the user. This is just the database that contains the information used by the app such as the data types and news articles etc.

Within this database are 3 tables of note;

The ZCODERAW field here is the data_type from the Samples table of the HealthDB_Secure database.

This table acts as a joiner basically. The Z_1DATATYPES correlates with the Z_PK from the ZDATATYPE table.

The Z_4FEEDITEMS correlates to the Z_PK of the ZFEEDITEM table.


This table contains everything that may show up on the feed. From the Articles, Hightlights, Data items etc.

As mentioned, the Z_PK of this table relates to the ZFEEDITEMS of the Z_1FEEDITEMS table.

It's setup like this because each datatype can have multiple entries in the FEEDITEM table. To demonstrate this, lets take a look at DataType 63.

We see here in the ZDATATYPE table that ZCODERAW value 63 has a Z_PK of 7.
 
We see here that datatype 7 has 5 feed items
 
Finally, we can see that all these items are related to Sleep. The one we need is the last one, where the ZCONTENTKINDRAW is "data" (Note that it only says "data" if there is some records under that type. If not, it says "noData".
 
I then wrote a little SQL to help me get to the data I needed quicker...
SELECT ZDATATYPE.ZCODERAW, ZLOCALIZEDTITLE FROM ZDATATYPE
JOIN Z_1FEEDITEMS
ON ZDATATYPE.Z_PK = Z_1FEEDITEMS.Z_1DATATYPES
JOIN ZFEEDITEM
ON Z_1FEEDITEMS. Z_4FEEDITEMS = ZFEEDITEM.Z_PK
WHERE ZCONTENTKINDRAWVALUE LIKE '%data'

Now thats out of the way. Here is the data you've come for...

Red Lines are items that I can find no record of on my devices. Orange Lines are items I have records of, but cannot determine their origin. I believe they are Apple Watch related and research is ongoing.

Data Type Title
0 Body Mass Index
1 Body Fat Percentage
2 Height
3 Weight
4 Lean Body Mass
5 Heart Rate
6  
7 Steps
8 Walking/Running Distance
9 Resting Energy
10 Active Energy
11  
12 Flights Climbed
13 NikeFuel
14 Blood Oxygen
15 Blood Glucose
16 Systolic Blood Pressure
17 Diastolic Blood Presure
18 Blood Alcohol Content
19 Peripheral Perfusion Index
20 Total Fat
21 Polyunsaturated Fat
22 Monounsaturated Fat
23 Saturated Fat
24 Dietary Cholesterol
25 Sodium
26 Carbohydrates
27 Fiber
28 Dietary Sugar
29 Dietary Energy
30 Protein
31 Vitamin A
32 Vitamin B6
33 Vitamin B12
34 Vitamin C
35 Vitamin D
36 Vitamin E
37 Vitamin K
38 Calcium
39 Iron
40 Thiamin
41 Riboflavin
42 Niacin
43 Folate
44 Biotin
45 Pantothenic Acid
46 Phosphorus
47 Iodine
48 Magnesium
49 Zinc
50 Selenium
51 Copper
52 Manganese
53 Chromium
54 Molybdenum
55 Chloride
56 Potassium
57 Number of Times Fallen
58 Electrodermal Activity
59  
60 Inhaler Usage
61 Respiritory Rate
62 Body Temperature
63 Sleep
64  
65  
66  
67  
68  
70 Stand Hours
71 Forced Vital Capacity
72 Forced Expiratory Volume, 1 sec
73 Peak Expiratory Flow Rate
74  
75 Exercise Minutes
76  
77  
78 Caffeine
79 Workouts
80 Blood Pressure
81  
82  
83 Cycling Distance
84  
85  
86  
87 Water
88  
89 UV Index
90 Basal Body Temperature
91 Cervical Mucus Quality
92 Ovulation Test Result
93  
94  
95 Menstruation
96 Spotting
97 Sexual Activity
98  
99 Mindful Minutes
100 Activity
101 Pushes
102  
103  
104  
105  
106  
107  
108  
109  
110 Swimming Distance
111 Swimming Strokes
112  
113 Wheelchair Distance
114 Waist Circumference
115  
116  
117  
118 Resting Heart Rate
119  
120  
121  
122  
123  
124 Cardio Fitness / VO2 max
125 Insulin Delivery
126  
127  
128  
129  
130  
131  
132  
133  
134  
135  
136  
137 Walking Heart Rate Average
138 Downhill Snow Sports Distance
139 Heart Rate Variability
140 High Heart Rate Notifications
141  
142  
143  
144 Electrocardiograms (ECG)
145 Audiogram
146  
147 Low Heart Rate Notifications
148  
149  
150  
151  
152  
153  
154  
155  
156 Irregular Rhythm Notifications
157 Abdominal Cramps
158 Breast Pain
159 Bloating
160 Headache
161 Acne
162 Lower Back Pain
163 Pelvic Pain
164 Mood Changes
165 Constipation
166 Diarrhea
167 Fatigue
168 Nausea
169 Sleep Changes
170 Appetite Changes
171 Hot Flashes
172 Environmental Sound Levels
173 Headphone Audio Levels
174  
175  
176  
177  
178 Noise Notifications
179 Move Minutes
180
181  
182 Double Support Time
183 Six-Minute Walk
184  
185  
186 Stand Minutes
187 Walking Speed
188 Step Length
189 Toothbrushing
190  
191 Pregnancy
192 Lactation
193 Contraceptives
194 Walking Asymmetry
195 Stair Speed: Up
196 Stair Speed: Down
197  
198  
199 Headphone Notifications
200  
201 Rapid, Pounding, or Fluttering Heartbeat
202 Skipped Heartbeat
203 Fever
204 Shortness of Breath
205 Chest Tightness or Pain
206 Fainting
207 Dizziness
208  
209  
210  
211  
212  
213  
214  
215  
216  
217  
218  
219  
220 Vomiting
221 HeartBurn
222 Coughing
223 Wheezing
224 Sore Throat
225 Congestion
226 Runny Nose
227  
228  
229 Vaginal Dryness
230 Night Sweats
231 Chills
232 Hair Loss
233 Dry Skin
234 Bladder Incontinence
235 Memory Lapse
236 Cardio Fitness Notifications
237 Handwashing
238  
239  
240 Body and Muscle Ache
241 Loss of Smell
242 Loss of Taste

I can't post this article without also documenting the Activity Codes which are used when the user creates a Workout or Activity event.

DataType Title
1 American Football
2 Archery
3 Australian Football
4 Badminton
5 Baseball
6 Basketball
7 Bowling
8 Boxing
9 Climbing
10 Cricket
11 Cross Training
12 Curling
13 Cycling
16 Elliptical
17 Equestrian Sports
18 Fencing
19 Fishing
20 Function Strength Training
21 Golf
22 Gymnastics
23 Handball
24 Hiking
25 Hockey
26 Hunting
27 Lacross
28 Martial Arts
29 Mind and Body
31 Paddle Sports
32 Play
33 Preperation and Recovery
34 Racquetball
35 Rowing
36 Rugby
37 Running
38 Sailing
39 Skating Sports
40 Snow Sports
41 Soccer
42 Softball
43 Squash
44 StairStepper
45 Surfing Sports
46 Swimming
47 Table Tennis
48 Tennis
49 Track and Field
50 Traditional Strength Training
51 Volleyball
52 Walking
53 Water Fitness
54 Water Polo
55 Water Sports
56 Wrestling
57 Yoga
58 Barre
59 Core Training
60 Cross Country Skiiing
61 Downhill Skiing
62 Flexibility
63 High Intensity Interval Training
64 Jump Rope
65 Kickboxing
66 Pilates
67 Snowboarding
68 Stairs
69 Step Training
70 Wheelchair Walk Pace
71 Wheelchair Run Pace
72 Tai Chi
73 Mixed Cardio
74 Hand Cycling
3000 Other

Wrapping Up

Hopefully this quick article will help you in the future. I think while a lot of these data types are never going to be evidential (if they are even present!) but at least if you know what they are, you know if you can safely ignore them.

Thanks for reading!

Previous Article
"Upgrade from NULL"
Next Article
"iOS GeoFences"
Search
Social