fitparse
Python library to parse ANT/Garmin .FIT files
What it is and what it does
fitparse is a Python library for reading ANT/Garmin .FIT files, a binary format used by fitness devices and sports watches to store activity data. It parses the binary structure and exposes records (such as GPS points, heart rate samples, or device metadata) as Python objects with named fields and optional units. The library includes a command-line tool (fitdump) to convert .FIT files to readable or JSON output.
The package has no runtime dependencies and works standalone. However, it is in dormant maintenance: the original author has limited availability and explicitly recommends fitdecode as an alternative. The last release was in 2020, though the repository shows recent commits. High install friction stems from source-only distribution (no wheels). Use this package if you need to parse .FIT files and prefer a minimal-dependency solution, but be aware that bug fixes and new ANT SDK support may be slow or unavailable.
Use it for:
- Extract GPS coordinates and timestamps from Garmin activity files for analysis or mapping.
- Convert .FIT files to JSON or human-readable format via the fitdump command-line tool.
- Parse device metadata (manufacturer, serial number, firmware) from .FIT files.
- Batch process fitness activity files to aggregate metrics across multiple workouts.
- Build a custom data pipeline that reads .FIT files and feeds structured records into a database or analytics tool.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses ANT/Garmin .FIT binary files, extracting structured data like timestamps, coordinates, and device metrics from fitness device recordings.
Yes, if you need to parse .FIT files and can tolerate dormant maintenance. The library is stable for basic use and has no dependencies. However, be aware that the maintainer recommends fitdecode as an alternative and is not actively developing this package. Install friction is high due to source-only distribution. Check whether fitdecode better suits your needs before committing.
Install
fitparse on PyPI
pip
pip install fitparseuv
uv add fitparsepoetry
poetry add fitparseInstalling fitparse
Before you install
High install friction due to source-only distribution. Maintenance is dormant—the maintainer explicitly states limited availability and recommends fitdecode as an alternative. Last release was 2020-09-07, over five years ago. Repository remains active (last commit 2025-01-28) but no new releases are planned.
License in practice
MIT License permits commercial and private use with minimal restrictions. You may use, modify, and distribute the code freely provided you retain the copyright and license notice.
Quickstart
import fitparse
fitfile = fitparse.FitFile("my_activity.fit")
for record in fitfile.get_messages("record"):
for data in record:
print(f"{data.name}: {data.value}")
Requires a valid .FIT file; no network or external service dependencies.
Verify before relying
- Whether the package works reliably with modern Python versions (requires_python is unspecified in metadata).
- Whether fitdecode is a drop-in replacement or requires code changes.
- Current state of open issues and pull requests on the repository.
Package facts
| License | MIT License Copyright (c) 2011-2020, David Cooper <david@dtcooper.com> Copyright (c) 2017-2020, Carey Metcalfe <carey@cmetcalfe.ca> Permission is hereby granted, free of charge, to any person… (full text in the JSON record) (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | dormant — 2,167 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 130,031/month — #11,654 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: fitparse-1.2.0.tar.gz
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
fit-toolReads and writes Garmin FIT files for Activity,…
permissive · top 15,000 on PyPI
fitdecodeParses and decodes FIT files (Garmin's ANT+…
permissive · top 15,000 on PyPI
garmin-fit-sdkDecodes Garmin FIT (Flexible and Interoperable…
unclear · top 15,000 on PyPI
ha-garminPython client for the Garmin Connect API with…
permissive · top 15,000 on PyPI
garminconnectPython wrapper for the Garmin Connect API that…
permissive · top 15,000 on PyPI
garthGarth provides Python access to Garmin Connect…
permissive · top 15,000 on PyPI
streamlit-antd-componentsProvides Ant Design and Mantine UI components…
unclear · top 15,000 on PyPI
lat-lon-parserParses latitude-longitude coordinate strings in…
permissive · top 15,000 on PyPI
python-oxmsgParses Outlook MSG files to extract email…
permissive · top 5,000 on PyPI
formic2Formic implements Apache Ant FileSet and glob…
copyleft · top 5,000 on PyPI