Ian Whiffin
Posted: 1st September 2021
Revised: 16th December 2021 Tweet #share
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.