3 Ways to Automatically Copy Your Garmin Training Data to Other Fitness Sites

With the rise of connected devices that automatically upload your rides and runs upon completion to Garmin Connect, there’s been a corresponding rise in usage of 3rd party sites that synchronize that data to other training log platforms such as Strava and Training Peaks.  These middle-man sites operate by copying your activity data automatically upon detection of a new activity being uploaded, to the final destination of your choice.

It is in some ways ironic that with increased connectivity has come more complexity in getting files where you want them.  That’s largely due to the fact that Garmin has been less than entirely easy when it comes to getting data where end users plan to analyze it.  While Garmin Connect does have an API available, that API isn’t well documented, nor supported at all, and hasn’t been updated in years.

Thus most of these 3rd party applications have had to spend a bit of time reverse engineering how things work.  Sometimes that works well, but other times that’s caused some ripples between Garmin and 3rd party apps – such as with CopyMySports earlier this year being throttled from an activity polling standpoint.

Ultimately though, these solutions do offer users a great way to quickly and seamlessly get data from Garmin Connect to 3rd party sites.  With that, let’s run through the three I’m aware of today.  Oh, and all of these are free.


We’ll start off with Tapiriik from the very beginning, which takes you here, to their landing page to select which services you want to connect to.

In my case, I’ll start with Garmin Connect first:

Once I’ve done that, you’ll see how ‘Garmin Connect’ is shown on the upper half with ‘Connected’ next to it, while the others are down below indicating they aren’t connected to yet.

So next I’ll choose Training Peaks, and complete the same thing:

Once that’s complete, you’ll see both listed on the upper half.  You’ll also see the option to ‘Synchronize now’, as well as ‘Automatic Synchronization’ below it.

In my case, I went with ‘Automatic Synchronization’, which costs $2 per year.  Otherwise, you can just press the ‘now’ button and it does it for free.

After I paid my two bucks via PayPal, I was back on the landing page and able to configure settings.  In this page I can choose which accounts sync where.  Sorta like being a traffic cop.

In my case, I didn’t want to sync from Training Peaks to Garmin Connect, so I unchecked that option:

Then, I let it do it’s thing for the initial synchronization.  Because I have a couple of activities in Garmin Connect (uhh…thousands), this took a bit of time.  I simply went to bed.  It sorta worked out better that way.

With that, it finishes some time later (just insert some montage music).  And, magically, all the activities in my Garmin Connect account show up in Training Peaks (an account I tend to use for random testing and thus doesn’t have all my activities in it):

Once it completed, you’ll see how frequent it synchronizes.  This is a bit different than CopyMySports which does polling at an undefined frequency.  In this case, Tapiriik has a defined 60-minute interval.

The next day I went out for a run, and let the Garmin FR620 automatically upload the run like normal to Garmin Connect via WiFi when I got back to the house.  For fun, I timed to see how long it would take to show-up in Training Peaks.  In my case, about 10 minutes and 9 seconds.  But why 10 minutes?  Well, that’s just when it happened the next sync would occur – which is every 60 minutes.  So it was mostly just pure dumb luck it was on the shorter side rather than the longer side.

The long pole in the tent here is pretty much the polling process to pickup the activity from the source service (i.e. Garmin Connect).  The creation of the activity in the destination service (i.e. Training Peaks) takes mere seconds.

At this point, the activity is ready to use as normal for analysis/logging within Training Peaks.   Note that for Training Peaks you’ll need to be either a Premium or Coached member for sync to work, which, I think is a fair business move.

Of course, Tapiriik supports other services as well (like Strava), I just happened to use Training Peaks as my example.  Overall it works quite well, and is the most ‘known’ in terms of having a simple countdown clock until sync.  While I wish the synchronization were more frequent, I suspect that’s purely a case of not ticking off Garmin with too many requests.

Plus, for free, it’s hard to beat.


CopyMySports has been around quite a long time, though under their previous name of ‘GarminSync’, which they changed mid-summer.  The application is largely aimed at copying data from Garmin Connect to Strava, but it also copies data to RunKeeper as well.

To setup CopyMySports you’ll start with their home page.  This is where you can setup the sync process to either Strava or RunKeeper (the two services they support today).  Down the road they’ve noted they plan to add support for Training Peaks.

At the bottom of the page you’ll see a little box to type in some text.  In order to setup CopyMySports you’ll basically need to tell the service who you are.  Instead of authorizing your Garmin Connect account like Tapiriik, you’re going to provide it with an ID of one of your activities.  It then uses that to follow your future activities by looking up your username.

To find an ID, simply open up one of your activities in Garmin Connect.  At the top of your browser in the address bar you’ll see the activity ID.  I’ve highlighted it in yellow.  It’s simply the numerical number.

Copy that number down (using copy and paste, or old-school with a pen and paper).  Then, paste/write it in the little box.  A few seconds later it’ll do a quick validation and let you know the account it belongs to, along with a short blurb about the activity. Validate all is well there before continuing on.

There’s a little checkbox above (actually two).  The first one will copy activities marked as private.  For example, by default I mark all my activities as private and only publish those I permit to be shared – thus I don’t want to check that box.  The second checkbox enables you to copy the activity you just typed in the box above.  In my case, I’ve already published that activity to Strava, so I unchecked it after I took the screenshot.

Next, I clicked ‘Connect with Strava’.  This will bring up a page from Strava that has you authorize CopyMySports.  This is similar to (for example) what Twitter does if you authorize an application or service with them.  It allows you to easily revoke access later on.  In my case, I just click ‘Authorize’ and I’m good to go.

Once I’ve done that, it’ll give me this little confirmation page.  Note that in my case I didn’t do a bulk copy of past activities (though I did for Training Peaks with the previous account).  You can do that to Strava though for older activities using the CopyMySports Bulk Copy feature, which will go back and copy all your older stuff over.  In my case, I’ve got tons of wonkiness in my Garmin Connect account (for example, I often have 4-6 versions of the same ride recorded since I use so many devices), so I want to keep my Strava account kinda ‘clean’.

Note, if down the road you ever want to revoke access to CopyMySports, you can do that within the Strava settings and then ‘My Apps’ section:

With that, I went ahead and went out for my run and came back.  Once inside I pressed the ‘Upload’ button on my FR620 and let it upload to Garmin Connect.  Once I confirmed the activity was on Garmin Connect, I was curious to see how long it would take until it showed up on Strava.

In my case, that was 38 minutes.

CopyMySports aims for a synchronization time as little as every 15 minutes.  If you had for example paired your FR220/FR620 or Edge 510/810 to your phone and uploaded upon completion at a park somewhere, it’d potentially be there before you got home.  At worst, if you finished at home it’s there before you’re out of the shower.

As you can see, the solution worked well.  I know they’re working to speed up the synchronization delay, but like everyone else, is a bit limited there by what Garmin will tolerate.


(Update as of August 2014: SyncMetrics is no longer operating.)

Now, SyncMetrics is a bit different in scope than the previous two sites.  It does Garmin Connect to Strava like the others, but it also covers more health-focused sites like Withings, FitBit and iHealth.

With that, let’s get things setup.  To do so, we’ll tap ‘Register’ in the upper right.

That’ll pop-up an account creation page.  Now, I actually like this over the other two sites, as I feel like I have more ‘control’ over the transactions.  Of course, both the other sites have ways to turn things off, but this just makes it simpler in my mind (I know some would disagree).

It’ll send me an account activation e-mail, to validate I’m a real person and didn’t hose up my e-mail address.  I suggest clicking on that link you receive if  you want to have further success in this venture.

Once you do that, you’ll be brought to the below screen.  Which is admittedly a bit confusing (primarily the upper portion).  Just ignore all the upper stuff, and focus on the bottom half, which is all the accounts you can link up.

Next, I clicked on ‘Garmin Connect’ in the list to start that setup.  You’ll then click on the Garmin Connect logo, as it specifies in the ‘Hint’.  I’d suggest a ‘Hint’ of my own however: If I have to have a hint when that’s pretty much the only button/link on the page that’s not clearly a button, perhaps it’s time to create a real button.

Next, we’ll enter your Garmin Connect credentials in.

Once you’ve done that, you’ll be back here, ready to link up another account.  In my case, I’m going to spit this out to MapMyFitness.  So I’ll click MapMyFitness and then click to ‘Authorize’.

I also did the same for RunKeeper, just to see how that’d work.

Afterwards, if you were to look at RunKeeper, you’d see the API authorization listed there in your settings:

Once that’s done, I’m presented with options to sync activities to/from Garmin Connect.  The challenge though is that I don’t have much control over what happens after I check that box.

And I checked the same box for RunKeeper.

Now, there’s some limits here:

– I can’t specify if it’s for just newer activities, or also older ones too.  Currently, it pulls only activities after the creation date.
– I can’t specify what to do about private activities, to include, or not to include?  Currently it pulls them.

Once it’s done a sync, you’ll see the activities listed within the window ‘Activities’ tab.  I actually like this a bit, as it’s more of a sync log file, something the other ones lack.  I can see what got processed easily.

After it syncs you’ll see the data on the destination side.  Below, you can see my activities copied over from skiing the past few days (I’ve got duplicate activities since I was uploading from different devices).

I can then click on an activity and see it in its fully glory:

Now, I had some initial teething issues with the SyncMetrics service, but the support folks were able to take care of it.  The interesting aspect to SyncMetrics is that it goes beyond just the sport side and delves into the weight/sleep side a bit, where the other services shy away from that.

So if your goal is getting more health and wellness data moved around, SyncMetrics may be the better choice.


In looking at the solutions  at hand, you can see they vary a bit in implementation, and thus the ‘cleanliness’ of each solution.  Further, some solutions may be faster but less consistent in terms of speed, while others may be slower, but more consistent.  Unfortunately, there is no perfect-instant solution.  But, I think that they do offer quite functional solutions, and ones that ultimately get your data to it’s final destinations jazz-hands free.

Now, the trick here is that all of this depends on an API that’s just barely there.  Garmin deleted the API’s main page late this past summer, though the rest of the API documentation is still published.  In my recent discussions with them, Garmin has seemingly tried to further distance themselves from even having an API at all (outside of their corporate wellness program stuff they announced a few months back).  I’m optimistic however that they’ll re-think any ‘back of the brain’ thoughts about closing things down any (further).  Only because I’d note that the sports technology darling of the world (Strava) tried doing that this past summer, and that didn’t turn out terribly well for them.

Thus, in that vein, here’s a fun fact for you (or for Garmin): That Strava API closing post was shared more than any other post ever in the history of this site – including any individual product review at that point (which are typically the most popular posts here).  As a result, Strava has mostly changed their ways, which is a good thing.

In the meantime, we can all enjoy the free offerings that are out there today, and hopefully down the road certain parties will make it easier to use their devices while still using the bountiful and diverse 3rd party software options built around those devices.

Thanks for reading!

DC Rainmaker :

View Comments (325)

  • Hi have you done any posts about which service you use to compile all your data (sport tracks, Stracks, etc) and pros/cons of them? I'm curious to see which services you use on a daily basi and why.

  • For those who give up searching the way of automatic sync to Runtastic: http://syncmytracks.com - the app for android (iOS still missing :( ) that allow to do same that tapiriik but on android platform and with much more available accounts.

    • I had syncmytracks for over the last 6 months and so far no problem to sync. It syncs Adidas micoach, Bryton, Endomondo, Fitbit, Garmin connect, Mapmyfitness, Nike+ NRC, Polar flow, Ride with GPS, RunKeeper, Runtastic,Sports Tracker, Strava,Movescount (Suunto) and Training Peaks. You can export and import or even sync between any of them. Plain simple to use.

  • Tapiriik is great in theory, but I found it a bit hit and miss connecting Connect with Strava. I really wanted to just put my FIT files in Dropbox and have them synced to Strava and Connect, but sync from Dropbox never worked, and the author didn't reply to any emails about it.

  • Has anything come along to replace SyncMetrics? Like many others, I'd love to connect Withings and Garming Connect without having to go through MFP.


  • Any thoughts on transferring Garmin connect with Suunto Movescount? I love Movescount and have been using the Ambit 1/3 for years. But now I'm swapping to a Garmin 5X. I'll miss everyone from the groups on Movescount lol! Ideas?

  • Hi,

    since a lot of weeks the Tapiriik Sync from Garmin Connect to Dropbox doesn't work.
    It's doing some "work" showing this by spinning the button but after stopping this nothing weere moved to Dropbox.

    Sync from Strava to Dropbox works fine.

    Any idea?

    Thx Rainer

    • The sync situation with Garmin Connect activities seems dismal at the moment. Per syncmysports, GC removed the way the sync services were polling our activity .tcx files, though they hint this could be accomplished via direct login. I wish someone would go ahead and do this if they haven’t - I haven’t found one.

      The integrated sync out of Garmin Connect to Strava/etc is not without its annoyances, such as not transferring ride names due to the integrations being instant and thus not allowing time to rename or add notes (notes probably wouldn’t sync anyway) prior to it sending to Strava or other connections like Training Peaks. I previously used Tapiriik to provide a bit of a sync delay to let me rename the ride, but this hasn’t worked for some time now as Tapiriik can’t seem to see new activities in GC until they’ve already moved to other platforms. In addition, Strava has its own issues with creating duplicates in Apple Health after renaming rides that have been synced already with the default names so it would be nice to see a more complete sync solution if it’s technically possible.

      Ideally, I’d love to use GC as my original source data for non-trainer rides (which originate from Zwift/Trainer Road/etc) but the inability to find a reliable sync platform to sync out from GC, much less allow for renames (if this is even included at all in GC .tcx files) before sending out is a real disappointment.

    • It’s pretty annoying. Per copymysports, Garmin messed up exports of the tcx files which is likely the same issue causing Tapiriik to not be able to utilize GC as the source data to sync to other services. I haven’t had a sync out of GC for months, the activities don’t even show up in Tapiriik sync list u til I’ve manually copied them elsewhere, then it will show up as an activity in GC. This is really annoying as I want to use GC as the original source of my activities.

      With the official GC -> Strava connection not syncing over activity names, I’d hoped to introduce a sync delay via Tapiriik to allow me to edit the name. It turns out, this wouldn’t sync anyway for some reason and renaming the Strava ride creates a duplicate in Apple Health.

      Essentially, cross-platform syncing *from* GC in any automated way is not possible currently without official integrations, and at best is irritating that you must then rename the rides in each synced-to service.

      Ideally there would exist an app or service to login to GC to download your TCX and transfer ride data, name, and (if possible?) notes. I’d certainly pay for that service. Currently the situation is grim for those of us with GC as step 1.

  • It may be time for an updated version of this article. Tapiriik seems really flakey (not supporting some newer activity types, no updates on twitter, no copying to Garmin Connect from TrainingPeaks, etc. CopyMySports is gone. FitnessSyncer is ok but cant copy to Garmin connect either. The need for copying to Garmin Connect is to try and circumvent companies which have not yet added integration (i'm looking at you concept2). Thanks!

    • This is a follow-up to my previous comment. After digging around it appears SyncMyTracks is not using FIT files which is likely the cause of the duplicates because that is what everything else is using (looking at the source files). SyncMyTracks only uses GPX and TCX files. I should probably accept that Garmin Connect is really only for Garmin device data and give up trying to get everything else in there. I use TrainingPeaks to analyze a mashup of all my training data but I have one place which wont sync with them. Oh well. That one place is one of those places that gives you money torwards your healthcare for being active, and I think with my new watch they should get enough data, otherwise I will just manually copy over enough when the time comes. Either way, keeping track of all this data is a real pain. I wish there was just one big FIT file dump in the cloud I could put everything then places like Garmin, TrainingPeaks, or wherever coul grab those files regardless of who made them. Garmin calls that a quality control issue of course. Thanks for listening to me rant!

    • Andres, that almost works! I am an android phone person so I tried SyncMyTracks but for whatever reason it's creating duplicates. I'll shoot their support a message and see what they say. Eric over at FitnessSyncer said copying to Garmin was against their terms of service.

  • DC Rainmaker -
    I just bought a NordicTrack S22i cycling trainer. So far I love it....except that I cannot find a way to sync iFit (the software that NordicTrack works with) to Garmin Connect. Do you have any ideas? I didn't see anything above that would work (though those were great tips for other syncs).
    Thanks! - Bo

1 2 3 16

By continuing to browse the site you are agreeing to the use of cookies