Free tool · FIT Toolkit

Convert FIT, GPX, and TCX files in your browser.

Convert FIT to GPX, GPX to FIT, TCX to GPX, or any other combination - plus JSON and CSV for analysis. Drop any Garmin, Wahoo, Coros, or Polar activity file and download the format you actually need. Free FIT file converter, no signup, no upload - the file decodes in your browser using the official Garmin SDK and the conversion runs locally on your device.

Save your training to a real log

Free · no signup · your file stays on your device

file
.fit
file
.gpx
file
.tcx
One-click conversion

How it works

  1. 1

    Drop your file

    FIT from your head unit, GPX from a route, TCX from an export - all good.

  2. 2

    Pick a target format

    GPX for sharing, TCX for the old guard, JSON or CSV for analysis, FIT to keep full fidelity.

  3. 3

    Download instantly

    Conversion runs in your browser. Nothing uploaded, nothing logged, nothing waiting in a queue.

What you get

  • FIT decoding via the official Garmin FIT SDK
  • Round-trip safe FIT re-encoding without losing fields
  • JSON export with every message and field for analysis
  • CSV export of the record stream for spreadsheets and Python
  • Distance and duration preview before you download
  • Works offline - file stays on your device, no signup required

FAQ

How do I convert a FIT file to GPX online?

Drop the FIT file into the converter, pick GPX as the target format, and download. The conversion runs entirely in your browser. Routes, elevation, timestamps, heart rate, and cadence carry through. Power gets written into the Garmin TrackPoint extension. The whole process takes about a second and the file never leaves your device.

How do I convert GPX to FIT?

Drop the GPX into the converter and pick FIT as the target. The output is an activity-typed FIT with each GPX trackpoint as a record message, timestamps preserved, and elevation carried through. If you want a navigable course FIT (with turn prompts) instead of an activity FIT, use our [GPX to FIT Course Converter](/tools/gpx-to-fit-course) - that tool detects turns and writes course_point waypoints.

Does my file get uploaded anywhere?

No. The converter uses the official Garmin JavaScript FIT SDK and the browser's native XML parser, both of which run entirely in your browser. The bytes never leave your machine, nothing is logged, no analytics ping carries any file content. The only network call the page makes is to load the page itself; after that, you can disconnect the wifi and the converter still works.

What is the difference between FIT, GPX, and TCX?

FIT is Garmin's binary activity format - small files, rich metadata, holds power and laps and device info, but you cannot open it in a text editor. GPX is the universal XML route format - readable in any text editor, holds trackpoints and elevation, but lacks first-class slots for power and lap structure. TCX is Garmin's older XML format - heavier than GPX but with native HR/cadence/power and lap data. Use FIT for full fidelity, GPX to share with anyone, TCX for legacy platforms that demand it.

What data gets dropped going from FIT to GPX?

GPX has no first-class slot for power or lap structure. The converter writes power into the Garmin TrackPoint extension (which most platforms read), and HR/cadence into the standard GPX extensions. Lap boundaries are written as waypoints. Device info, session totals, and FIT-specific event messages do not have GPX equivalents and are dropped. If you need full preservation, keep the FIT or convert to TCX instead.

Why convert to JSON or CSV?

For analysis outside the standard training platforms. JSON gives you the entire decoded FIT as a nested object - every message, every field, every record - which is the format you want for custom scripts or for diffing two files. CSV exports just the per-second record stream (time, lat, lon, elevation, HR, power, cadence, speed) which is what spreadsheets and Python pandas want. Use JSON for full structure, CSV for time-series work.

Will Strava and Garmin Connect accept the converted FIT?

Yes - the output is a fully valid FIT re-encoded via the official Garmin SDK with correct CRC and headers. Strava treats it like any other upload. If the original file was already in Strava and you are re-uploading the converted version, you will hit duplicate detection - either delete the original first or shift the start time using our [FIT Time Adjuster](/tools/fit-time-adjuster).

Can I batch convert multiple files at once?

One file at a time today. If you need to merge two or more files into a single activity, use our [FIT Combiner](/tools/fit-combiner). For true batch workflows (a folder of files all converted), drop a note via the waitlist and we will prioritise.

Save your training to a real log

Convert once, then keep every ride and run analyzed in one place. Domestique reads the data for you.

Join the waitlist