garmin-run-fetch

Fetch Garmin run activities

Usage no npm install needed!

<script type="module">
  import garminRunFetch from 'https://cdn.skypack.dev/garmin-run-fetch';
</script>

README

Garmin Run Fetch

Retrieves Garmin Connect run activity data.

Performes a one time login with puppeteer for the credentials which are then kept (encrypted) between runs and are updated only if needed.


Install

npm i garmin-run-fetch

Require module:

const garminRunFetch = require('garmin-run-fetch');
const opts = {
    userName,
    password,
    limit,     // optional
    startDate, // optional
    endDate,   // optional
};
const activitiesJson = await garminRunFetch(opts);

Or use command line:

GARMIN_USER_NAME=daniel@gmail.com GARMIN_PASSWORD=123456 npx garmin-run-fetch

// Output activity json to console ...

Params

| param | env var name | desc | default | -- | ------------- | ------------- | -------- | | userName | GARMIN_USER_NAME| Garmin connect user email | - | | password | GARMIN_PASSWORD | Garmin connect user password | - | | limit | GARMIN_LIMIT | (Optional) number of activities to fetch | 20 | | startDate | GARMIN_START_DATE | (Optional) fetch activitiess only older than this value, a UNIX epoch number. | 0 | | endDate | GARMIN_END_DATE | (Optional) fetch activitiess only created before this value, a UNIX epoch number. | Date.now() | | - | DEBUG | (Optional) set as garmin:* for debugging | - |


Notes

  • This module creates a .cred.json file (which is encrypted) with your garmin credentials, this is done for avoiding a login with every run. The file can be deleted in between runs.
  • The login is done with scrapping the Garmin Connect web page by using puppeteer.