https://github.com/fabulator/garmin-api-handler
Unofficial handler for Garmin connect API
https://github.com/fabulator/garmin-api-handler
Last synced: about 1 year ago
JSON representation
Unofficial handler for Garmin connect API
- Host: GitHub
- URL: https://github.com/fabulator/garmin-api-handler
- Owner: fabulator
- License: apache-2.0
- Created: 2018-12-01T19:06:51.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-03-31T16:23:06.000Z (over 1 year ago)
- Last Synced: 2025-04-21T12:56:14.603Z (over 1 year ago)
- Language: TypeScript
- Size: 3.16 MB
- Stars: 12
- Watchers: 4
- Forks: 3
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Garmin API handler
[](https://badge.fury.io/js/garmin-api-handler)
[](https://renovateapp.com/)
[](https://snyk.io/test/github/fabulator/garmin-api-handler)
[](https://codecov.io/gh/fabulator/garmin-api-handler)
[](https://travis-ci.org/fabulator/garmin-api-handler)
This is an unofficial handler for Garmin Connect API. The documentation is bad :)
## How to download fit files, example:
```javascript
const fs = require('fs');
const path = require('path');
const { GarminApi } = require('../dist');
const { DateTime } = require('luxon');
require('cross-fetch/polyfill');
const extract = require('extract-zip')
const api = new GarminApi();
(async () => {
await api.login(LOGIN, PASSWORD);
const activities = await api.getActivities({limit: 1000, startDate: DateTime.fromJSDate(new Date('2020-01-01')).startOf('day'), endDate: DateTime.fromJSDate(new Date('2020-12-31')).endOf('day')});
await Promise.all(activities.map(async (activity) => {
const data = await api.getActivityFile(activity.getId());
const fileName = `files/${activity.getId()}.fit.zip`;
fs.writeFileSync(fileName, Buffer.from(await data.arrayBuffer()));
await extract(path.resolve(__dirname, '..', fileName), { dir: path.resolve(__dirname, '..', 'files') })
fs.rmSync(fileName);
}));
})()
```