SelfSync

FIT reference

The FIT file format, message by message

Every activity recorded by a Garmin, Wahoo, Coros, Suunto or Polar device ends up in a .fit file. Here is what it contains: 125 messages and 1849 fields, each one explained.

What is a FIT file?

FIT (Flexible and Interoperable Data Transfer) is a compact binary format designed by Garmin to store and exchange sport, fitness and health data. Watches, bike computers, smart trainers and scales write it; platforms like Garmin Connect, Strava, TrainingPeaks or Zwift read it.

A FIT file is a sequence of messages. Each message has a type (session, lap, record…) and a set of fields holding the values. A file only stores the fields a device actually measured, so two files of the same type rarely contain exactly the same fields.

Activity files
Start with a file ID, then hold one session per sport, laps, one record per second and events, and end with an activity.
Timestamps
Seconds since December 31, 1989 00:00 UTC, the FIT epoch. Decoders turn them into regular dates.
Positions
Latitudes and longitudes are stored as semicircles: multiply by 180 / 2^31 to get degrees.
Developer fields
Apps can add their own fields, declared by developer data ID and field description messages.

All the messages

Activity

  • Activity9 fields

    The activity message wraps up a whole activity file.

  • ClimbPro8 fields

    Climb messages are written when the ClimbPro feature detects that the user is approaching, starting or completing a climb of the course or route being followed.

  • Event44 fields

    Event messages record everything that happens at a given moment of an activity: the timer starting and stopping, laps, alerts (heart rate, speed, power…), gear changes, rider position changes, radar threats, dive alerts and so on.

  • Jump11 fields

    Jump messages describe each jump detected during a mountain biking, BMX or skiing activity.

  • Lap146 fields

    A lap message summarizes a portion of a session: a lap triggered manually with the lap button, an automatic lap (every kilometer or mile for instance), or an interval of a structured workout.

  • Length24 fields

    A length message describes one length of a pool swimming session, either active (swum) or idle (rest).

  • Record85 fields

    Record messages are the time series of an activity: the device writes one every second (or using smart recording, when something changes), with everything it measures at that moment: GPS position, altitude, heart rate, speed, cadence, power, temperature and so on.

  • Session177 fields

    A session message summarizes a period of a single sport within an activity.

  • Set12 fields

    Set messages describe the sets of a strength training activity: the exercise performed, the number of repetitions, the weight lifted and the duration, as well as the rest periods between sets.

  • Split128 fields

    Split messages divide an activity into meaningful parts beyond laps: ski runs and lifts, climbing routes, dive ascents and descents, intervals of a workout, transitions… The splitType field tells what kind of split it is.

  • Split summary97 fields

    A split summary message aggregates all the splits of a given type in an activity.

  • Time in zone18 fields

    Time in zone messages tell how long was spent in each heart rate, speed, cadence and power zone during a session or a lap, along with the zone boundaries and thresholds used for the computation.

  • Weather alert7 fields

    Weather alert messages store the severe weather alerts (storm, flood, heat…) received from the phone during an activity.

  • Weather conditions17 fields

    Weather conditions messages store the current conditions and the forecasts received from the phone during an activity: temperature, wind, humidity, precipitation probability…

Courses, segments and workouts

  • Course5 fields

    The course message describes a course file: a route to follow, made of record messages for the track and course point messages for the turns and points of interest along the way.

  • Course point9 fields

    Course point messages are the points of interest of a course: turns, summits, water points, food, danger, first aid, segment starts… The device alerts the user when approaching them.

  • Exercise title5 fields

    Exercise title messages give a custom name to the exercises of a strength workout.

  • Goal14 fields

    Goal messages describe the targets set by the user: a number of steps per day, a distance or a duration per week, a number of activities per month and so on.

  • Schedule10 fields

    Schedule messages plan workouts and courses on a calendar.

  • Segment file10 fields

    Segment file messages list the segments available on the device, with the leaders to race on each of them.

  • Segment ID10 fields

    The segment ID message identifies a segment: a portion of road or trail that users race against each other or against their own best time.

  • Segment lap98 fields

    A segment lap message holds the statistics of a segment raced during an activity, like a lap message but for the portion of the activity covering the segment.

  • Segment leaderboard entry8 fields

    Segment leaderboard entry messages describe the leaders of a segment that the user can race against: their personal best, the overall leader, a connection…

  • Segment point8 fields

    Segment point messages form the track of a segment.

  • Workout10 fields

    The workout message describes a structured workout: its name, sport and number of steps.

  • Workout session8 fields

    Workout session messages split a multisport workout into sessions, each one with its own sport and its own range of steps.

  • Workout step59 fields

    A workout step message describes one step of a structured workout: how long it lasts (time, distance, calories, heart rate, open…), what to target (pace, heart rate, power, cadence zones or custom ranges), its intensity, and how to repeat previous steps.

Health and monitoring

  • Beat intervals4 fields

    Beat intervals messages store the time between consecutive heartbeats, measured by the optical sensor or a chest strap.

  • Blood pressure12 fields

    Blood pressure messages store the measurements of a blood pressure monitor.

  • Heart rate7 fields

    Heart rate messages store heart rate data recorded by a chest strap while it was not connected to the watch (during swimming for instance), and merged back into the activity afterwards.

  • HRV2 fields

    HRV messages store the times between heartbeats (R-R intervals) recorded during an activity, when heart rate variability logging is enabled.

  • HRV status summary9 fields

    The HRV status summary message holds the nightly heart rate variability status: last night average, weekly average and the personal baseline range they are compared to.

  • HRV value3 fields

    HRV value messages store the heart rate variability measured during the night, every 5 minutes.

  • HSA accelerometer data8 fields

    Raw accelerometer data recorded by the health sensors of the watch, as exposed to Garmin Health SDK applications.

  • HSA Body Battery data6 fields

    Body Battery data recorded by the watch, as exposed to Garmin Health SDK applications.

  • HSA configuration data4 fields

    Configuration of the health data collection, as exposed to Garmin Health SDK applications.

  • HSA event3 fields

    Events of the health data collection, as exposed to Garmin Health SDK applications.

  • HSA gyroscope data8 fields

    Raw gyroscope data recorded by the health sensors of the watch, as exposed to Garmin Health SDK applications.

  • HSA heart rate data5 fields

    Heart rate data recorded by the optical sensor of the watch, as exposed to Garmin Health SDK applications.

  • HSA respiration data4 fields

    Respiration rate data computed by the watch, as exposed to Garmin Health SDK applications.

  • HSA SpO2 data5 fields

    Blood oxygen saturation (SpO2) data measured by the pulse oximeter of the watch, as exposed to Garmin Health SDK applications.

  • HSA step data4 fields

    Step counts recorded by the watch, as exposed to Garmin Health SDK applications.

  • HSA stress data4 fields

    Stress levels computed by the watch, as exposed to Garmin Health SDK applications.

  • HSA wrist temperature data4 fields

    Wrist temperature measured by the watch, as exposed to Garmin Health SDK applications.

  • Max MET data9 fields

    Max MET data messages store the VO2 max estimates computed by the device after a run or a ride.

  • Monitoring33 fields

    Monitoring messages are the all-day activity tracking data: steps, distance, calories, active time, intensity minutes, floors climbed and heart rate, recorded at regular intervals throughout the day, outside of activities.

  • Monitoring heart rate data4 fields

    Monitoring heart rate data messages store the resting heart rate computed daily.

  • Monitoring info7 fields

    The monitoring info message gives the context needed to read the monitoring messages of a file: local time, resting metabolic rate and the factors converting cycles into distance and calories for each activity type.

  • Nap event11 fields

    Nap event messages store the naps detected by the device or entered by the user, with feedback on their timing and duration.

  • Raw BBI7 fields

    Raw beat-to-beat interval (BBI) messages store the time between heartbeats measured by the optical sensor, with a quality indicator and gaps.

  • Respiration rate3 fields

    Respiration rate messages store the breathing rate measured throughout the day and night.

  • Skin temperature overnight6 fields

    Skin temperature overnight messages store how the skin temperature measured during the night deviates from the personal baseline of the user.

  • Sleep assessment15 fields

    The sleep assessment message holds the scores computed after a night of sleep: overall sleep score, and the sub-scores for duration, quality, recovery, deep, light and REM sleep, awakenings and restlessness.

  • Sleep disruption overnight severity3 fields

    The sleep disruption overnight severity message gives the overall level of sleep disruptions detected during the night.

  • Sleep disruption severity period4 fields

    Sleep disruption severity period messages describe the level of sleep disruptions detected during each period of the night.

  • Sleep level3 fields

    Sleep level messages describe the sleep stages of the night, one message each time the stage changes.

  • SpO2 data5 fields

    SpO2 data messages store the blood oxygen saturation readings of the pulse oximeter, during spot checks, at night or all day.

  • Stress level3 fields

    Stress level messages store the stress level computed throughout the day from heart rate variability.

  • Totals11 fields

    Totals messages store the lifetime totals of the device for each sport: time, distance, calories and number of sessions.

  • Weight scale15 fields

    Weight scale messages store the measurements of a smart scale: weight, body fat, body water, muscle and bone mass, BMI and metabolic estimates.

Diving

  • Dive alarm14 fields

    Dive alarm messages describe the alarms configured for scuba diving: a depth to reach, a dive time, or an ascent/descent rate.

  • Dive apnea alarm14 fields

    Dive apnea alarm messages describe the alarms configured for freediving (apnea): a depth to reach, a dive time, or an ascent/descent rate.

  • Dive gas6 fields

    Dive gas messages describe the breathing gases configured for a dive: air, nitrox or trimix, as oxygen and helium percentages.

  • Dive settings38 fields

    The dive settings message holds the configuration of the dive computer for a dive: decompression model and gradient factors, water type, oxygen partial pressure limits, safety stop, rebreather setpoints, alerts and display preferences.

  • Dive summary24 fields

    Dive summary messages hold the statistics of a dive or of a series of dives: depth, bottom time, ascent and descent rates, gas consumption and the oxygen and nitrogen loads.

  • Tank summary6 fields

    Tank summary messages hold the gas consumption of each tank equipped with a wireless pressure transmitter.

  • Tank update4 fields

    Tank update messages store the pressure readings of the wireless tank pressure transmitters during a dive.

Settings and profiles

  • Bike profile33 fields

    Bike profile messages describe the bikes set up on a cycling computer or watch: their sensors, wheel size, weight, crank length, gearing and odometer.

  • Connectivity14 fields

    The connectivity message holds the wireless settings of the device and the connected features enabled with the phone: live tracking, weather, automatic upload, incident detection…

  • Device settings25 fields

    The device settings message holds the system settings of the device: time and date formats, time zone, backlight, activity tracking, move alerts, screens and automatic synchronization.

  • Extended display data concept configuration12 fields

    Extended display data concept configuration messages describe the data concepts (speed, heart rate, power…) shown in each field of the screens of an extended display.

  • Extended display data field configuration7 fields

    Extended display data field configuration messages describe each data field of the screens of an extended display.

  • Extended display screen configuration5 fields

    Extended display screen configuration messages describe the screens of an extended display: a device showing the data of another one, such as a watch mirroring a cycling computer.

  • Heart rate monitor profile6 fields

    Heart rate monitor profile messages describe the heart rate sensors paired with the device.

  • Optical heart rate settings3 fields

    The optical heart rate settings message tells whether the wrist heart rate sensor is enabled.

  • SDM profile9 fields

    Stride-based speed and distance monitor (SDM) profile messages describe the foot pods paired with the device.

  • Training settings5 fields

    The training settings message holds the targets of the training features of the device, such as the virtual partner.

  • User profile28 fields

    The user profile message holds the personal data of the user (gender, age, height, weight, resting and max heart rates, step lengths) and their display preferences (language, units, coordinate format).

  • Watch face settings6 fields

    The watch face settings message describes the watch face selected on the device.

Zones

  • Cadence zone4 fields

    Cadence zone messages define the cadence zones of the user, one message per zone, ordered from the lowest to the highest.

  • Heart rate zone4 fields

    Heart rate zone messages define the heart rate zones of the user, one message per zone, ordered from the lowest to the highest.

  • MET zone5 fields

    MET zone messages define, for each heart rate zone, the calories burned per minute.

  • Power zone4 fields

    Power zone messages define the power zones of the user, one message per zone, ordered from the lowest to the highest.

  • Speed zone4 fields

    Speed zone messages define the speed zones of the user, one message per zone, ordered from the lowest to the highest.

  • Sport4 fields

    The sport message names the sport of a sport settings file, which holds the zones and training settings specific to that sport.

  • Zones target6 fields

    The zones target message holds the thresholds used to compute the heart rate and power zones of the user, and the method used for each.

Sensors and raw data

  • 1D sensor calibration8 fields

    One-dimensional sensor calibration messages hold the calibration used to convert the raw readings of single-axis sensors (barometer) into physical units.

  • 3D sensor calibration10 fields

    Three-dimensional sensor calibration messages hold the calibration used to convert the raw readings of three-axis sensors (accelerometer, gyroscope, magnetometer) into physical units.

  • AAD accelerometer features7 fields

    Automatic activity detection accelerometer features messages store the accelerometer statistics the device uses to detect activities automatically.

  • Accelerometer data13 fields

    Accelerometer data messages store the raw and calibrated samples of the accelerometer of the device, several per second.

  • ANT channel ID6 fields

    ANT channel ID messages identify the ANT sensors connected to the device, so that the raw ANT messages can be attributed.

  • ANT RX7 fields

    ANT RX messages store the raw ANT messages received from the sensors, for debugging or for decoding sensor data not covered by the FIT profile.

  • ANT TX7 fields

    ANT TX messages store the raw ANT messages sent to the sensors, for debugging or for decoding sensor data not covered by the FIT profile.

  • Aviation attitude13 fields

    Aviation attitude messages store the attitude of an aircraft computed by an attitude and heading reference system (AHRS): pitch, roll, accelerations, turn rate and track.

  • Barometer data6 fields

    Barometer data messages store the raw samples of the barometric pressure sensor.

  • Camera event6 fields

    Camera event messages record the actions of an action camera connected to the device: video start, split and end, photos taken…

  • GPS metadata10 fields

    GPS metadata messages store detailed GPS fixes, with sub-second timing, heading and velocity on each axis.

  • Gyroscope data10 fields

    Gyroscope data messages store the raw and calibrated samples of the gyroscope of the device, several per second.

  • Magnetometer data10 fields

    Magnetometer data messages store the raw and calibrated samples of the compass of the device, several per second.

  • NMEA sentence4 fields

    NMEA sentence messages store the raw sentences received from an external GPS or marine device using the NMEA 0183 protocol.

  • OBD-II data10 fields

    OBD-II data messages store the raw readings of the on-board diagnostics port of a vehicle (engine speed, vehicle speed, fuel level…), as parameter IDs (PIDs).

  • Video frame4 fields

    Video frame messages correlate the frames of a video recorded by a camera with the time of the activity.

Video

  • Video4 fields

    The video message references a video associated with the activity, hosted online.

  • Video clip8 fields

    Video clip messages describe the clips of a video associated with the activity, mapping the time of the video to the time of the activity.

  • Video description4 fields

    Video description messages hold the description of the video associated with the activity.

  • Video title4 fields

    Video title messages hold the title of the video associated with the activity.

File and device

  • Battery3 fields

    Battery messages store the charge level of the device over time.

  • Capabilities5 fields

    The capabilities message describes what a device supports: languages, sports, workout features and connected features.

  • Developer data ID6 fields

    Developer data ID messages declare the applications (such as Connect IQ apps and data fields) that added their own developer fields to the file.

  • Device auxiliary battery info6 fields

    Device auxiliary battery info messages describe the additional batteries of a device, such as a battery pack.

  • Device info26 fields

    Device info messages describe every device involved in the recording: the watch or bike computer itself (deviceIndex creator), and each connected sensor (heart rate strap, power meter, foot pod, speed and cadence sensors, radar…).

  • Field capabilities5 fields

    Field capabilities messages tell which fields of a message a device supports for a given file type, and how many values it can store.

  • Field description15 fields

    Field description messages define the developer fields: custom fields added by third party applications to standard messages.

  • File capabilities7 fields

    File capabilities messages tell which file types a device supports, where they are stored and how many of them it can hold.

  • File creator3 fields

    The file creator message tells which software and hardware versions of the device created the file.

  • File ID10 fields

    The file ID message is the first message of every FIT file.

  • Memo glob6 fields

    Memo glob messages store long texts or binary data attached to another message, split into consecutive blocks.

  • Message capabilities8 fields

    Message capabilities messages tell which messages a device supports for a given file type, and how many of them it can store.

  • Pad1 field

    The pad message carries no data.

  • Slave device5 fields

    Slave device messages list the other devices a file applies to, such as the products compatible with a settings file.

  • Software4 fields

    Software messages describe the software (firmware) versions installed on a device.

  • Timestamp correlation8 fields

    The timestamp correlation message links the system time of the device with UTC and local time, so that timestamps recorded in system time can be converted.

  • Training file9 fields

    Training file messages reference the workouts and courses files a training plan relies on, by manufacturer, product, serial number and creation time.

Other

  • Chrono shot data4 fields

    Chrono shot data messages store the speed of each projectile measured by a ballistic chronograph.

  • Chrono shot session9 fields

    The chrono shot session message summarizes a session of a ballistic chronograph: number of shots, projectile and speed statistics.