File Inspector & Converter
Upload a GPX, TCX, or FIT activity file to inspect its track data, then convert the track to GPX or TCX.
Your file never leaves your device.
Parsing, trimming, merging, and exporting all happen locally in your browser with JavaScript. GPXFIT never uploads your GPS coordinates to a server.
Drop a GPX, TCX, or FIT file here or click to browse
GPX, TCX, or FIT — processed locally, never uploaded
Converting GPX to FIT
If that's what you came for: this tool can't do it. It reads FIT and writes GPX and TCX, so FIT to GPX works and GPX to FIT doesn't. Rather than leave you clicking around to find that out, here's why, and what usually solves the underlying problem.
FIT is a binary format. Data messages refer back to a definition record that describes their fields and types, and one definition can cover many messages that follow it, which is part of why the files stay small. The header declares the size of the data after it, and a CRC covers the file. Decoding means following those rules as they were written down, which is what Garmin's SDK does. Encoding means getting them right for every message type the receiving device expects, and a file whose declared sizes or CRC don't line up can be rejected without much explanation.
So it isn't a checkbox waiting to be enabled, and there's no date on it. FIT file repair is the page that tracks the FIT writing work, and it will say so when that changes.
What to do instead
You want a route on your Garmin. You probably don't need FIT for this. Garmin Connect imports a GPX or TCX file as a course and syncs it to the watch, which is the normal path for a route you downloaded from Komoot, Strava or a race organiser.
You want to upload an activity to Strava. Strava accepts a conforming GPX file directly. It needs timestamps to treat one as an activity and rejects a GPX without them. This page reports the start and end times it could read, so you can tell whether the file carries timestamps at all. It doesn't yet report what share of the points carry one, and a partly timed track can still be refused.
You need heart rate or laps to survive the conversion. Keep the original file. Converting here won't preserve them in either format: the parsers read position, elevation and time, and the TCX export wraps those in a single generated lap with no heart rate, cadence or power in it. TCX is the better choice for lap structure in general, just not from this tool today.
You genuinely need a .fit file. Other converters do this. Some upload your file and convert it on their server, some do the whole thing in your browser, and the difference matters for a file that says where you live, so check which one you're using. Worth checking first whether the device or platform you're feeding actually requires FIT: Strava, Garmin Connect and Komoot all take GPX.
GPX, TCX and FIT, and what each one keeps
GPX is plain XML holding position, elevation and time. Nearly everything reads it, and everything else is either missing or tucked into extension fields that many tools ignore.
TCXis Garmin's XML format. Same track data, plus places for laps, heart rate and calories that Garmin Connect and Strava both understand. Larger files, narrower support. A TCX exported from this page fills in the track and one generated lap, not the sensor fields, because the parsers here don't read them in the first place.
FITis Garmin's compact binary format; many watches and bike computers record to it natively. It can carry per-record sensor streams, sessions, laps, device info, and sport type. You can't read it in a text editor, which is why a corrupted one is so annoying to diagnose.
GPXFIT's FIT-to-GPX export keeps position, elevation and time, and drops the sensor, session, lap, device, and sport-type fields listed above. If any of those fields matter to you, keep the original FIT file rather than converting it.
Where the file goes
Nowhere. Detection, decoding and export all run in this tab. An activity file marks where you live, where you work and when you leave the house, so this isn't a badge worth taking on trust: open your browser's Network tab, drop a file in, and check that nothing carrying it leaves your machine.
Frequently asked questions
- Can this tool read FIT files?
- Yes. FIT decoding uses Garmin's official FIT JavaScript SDK, running locally in your browser. You can inspect metadata and export the GPS track as GPX or TCX. Writing or repairing FIT files isn't supported yet.
- Can I convert GPX to FIT?
- No. This tool reads FIT and writes GPX and TCX, so FIT to GPX works and GPX to FIT does not. For getting a route onto a Garmin device, FIT isn't required: Garmin Connect imports a conforming GPX or TCX file as a course and syncs it to the watch.
- What's the difference between GPX, TCX, and FIT?
- GPX is a simple, widely-supported XML format for GPS tracks. TCX is Garmin's XML format that also carries lap and heart-rate data. FIT is Garmin's compact binary format; many watches and bike computers record to it natively.
- Why is writing a FIT file harder than reading one?
- A FIT file is binary. Data messages refer back to a definition record describing their fields, one definition can cover many messages that follow, the header declares the size of the data after it, and a CRC covers the whole file. Decoding means following those rules as written; encoding means getting them right for every message type the receiving device expects, and a file whose declared sizes or CRC don't line up can be rejected without much explanation.
- Which format should I upload to Strava?
- Strava accepts conforming FIT, GPX and TCX files. Keeping the original FIT file preserves the fields it was recorded with, since many devices record natively in FIT. GPX is broadly compatible, and it needs timestamps in the file to be accepted as an activity.
- Does converting to TCX keep my heart rate and laps?
- No. The parsers here read position, elevation and time only, and the TCX export wraps them in one generated lap with no heart rate, cadence or power. If those streams matter, keep the original FIT file rather than converting it.