Exporting from Garmin with Run Gap

Garmin's API will only allow you to export 5 years of your running data. RunGap has found a way around that limitation and can liberate your running history.
It will cost $3.99.

How to export your entire Garmin history using RunGap

  1. Install the RunGap app. (Unfortunately it's only available for iOS)
  2. Open the app. Click the menu in the upper left corner. Then select Accounts & Settings.
  3. Select Garmin Connect. Enter your username and password and click connect.
  4. On the next screen. Disable "Update Activities" and click "Done".
    This will prevent syncing until you've finished updating the configuration.
  5. Select Smashrun and click Connect then login.
    (You'll need to scroll a bit it's about 20 items down the list)
  6. Select Smashrun again. Then enable Use as Destination and for destination activities choose Running (any).
  7. If you've already imported some runs from Garmin to Smashrun...
  8. Select Garmin Connect (again). Then choose Advanced Settings then Skip Activities Before and set the date of your earliest Garmin run on Smashrun.
  9. Enable update activities and click Resychronize. This will trigger the import of all of your activities from Garmin Connect into RunGap and may take some time.
  10. Open the menu and select Share & Export. Then choose Smashrun.
  11. You will need to purchase the Swag Bag upgrade for $3.99 to export your data. (Note: Smashrun is unafilliated with RunGap)
  12. You can also export your entire history to DropBox for safe keeping.

Exporting from Garmin by running code in your browser

Garmin will allow you to export files one at a time from Garmin Connect. All that clicking can be very tedious. Running some code can help make things a lot easier.

How to export your entire Garmin history by runnng code in your browser



		
	var message;
	var maxTotalDownloads = 3000;
	var delay = 2000;	

	var segments = new URL(this.location.href).pathname.split('/');
	var id = segments.pop() || segments.pop();							
	var baseUrl = 'https://connect.garmin.com/modern/proxy/';
	var fileUrl = baseUrl + 'download-service/files/activity/';
	var activityUrl = baseUrl + "activity-service/activity/" + id + '/relative?_=' + Math.random();
	var i = 0;	
	
	message =  "Download started. This will take 10 minutes for every 300 activities downloaded. If the process ";
	message += "takes longer than that you may get logged out. You can prevent this by opening a separate browser ";
	message += "window, going to Garmin Connect and refreshing the page every 5 minutes or so.";
	console.log(message);	
					
	var download = function(){jQuery.getJSON(activityUrl,
		function(d){
			i++;
			id = d.previousActivityId;
			if(id == null){
				console.log("Finished downloading " + i + " activities.");
			}
			else{
				window.location.href = fileUrl + id;						
				if(i % 10 == 0){
					console.log(i + " activities downloaded so far.");
				}
				if(i < maxTotalDownloads){
					setTimeout(download, delay);
				}
				else{
					console.log("Reached maximum of " + i + " activities to download.");
				}
			}
		}
	)};
	download();
  1. Login to the Garmin Connect.
  2. Select Activities > All Activities from the menu to view your recent activities.
  3. Select the runner icon to filter by running activities. (This will also make the "Advanced" button visible)
  4. If you've already exported the last 5 years of data then you only need your older data.
    Click advanced and set the "To" date range to 2019-12-04 (today's date 5 years ago).
  5. Open the 1st activity in the list by clicking on the title.
  6. Press F12 to open the Developer tools window.
    You'll see a window with cache messages, and a lot of yellow and red errors from Garmin's website.
  7. Copy the code above by clicking the Copy button
  8. Paste the code into the Developer Tools window that opened when you pressed F12 in your browser.
  9. Press the Enter key to start running the code. You should see a message
  10. You'll see a message that says Download started. After every 10 activities are downloaded you'll see a message dispaying the count of activities downloaded so far. If you have a lot of activites this process can take a long time, and Garmin may eventually log you out. You can prevent this by opening a new browser window and occasionally navigating around Garmin Connect.
  11. Once you've finished your download just add the files to zip file and email it to: username@smashrunimport.com
    (If you have a ton of files then you may want to break them up into multiples zip files attached to separate emails)

Exporting from Garmin with a GDPR request

Garmin provides a full data export as required by European GDPR law. You can use this process to download your entire running history from Garmin Connect.

How to export your entire Garmin history using a GDPR export request

  1. Go to https://www.garmin.com/en-US/account/datamanagement/exportdata/.
  2. Click to button Request Data Export. You will see a confirmation at the top of the page.
  3. You will eventually receive an email with the subject: Action Required: Download Your Data
    Depending on how old your account is and how much data you have GDPR export requests can take up to 30 days.
  4. Download the data immediately, since the file will be deleted in 3 days.
  5. The export contains a zip file, that contains your activity data in a series of more zip files in the folder: \DI_CONNECT\DI-Connect-Fitness-Uploaded-Files\
  6. You can take these ZIP files and email them to: username@smashrunimport.com and Smashrun will import the runs into your account.