Help
Set up liftosaur2garmin, sync workouts, fix problems.
Getting started
What you need
- A Liftosaur premium subscription. The API requires premium. Get it in Liftosaur → Settings → Subscription.
- A Liftosaur API key. Liftosaur → Settings → API Keys. Create a key and copy it.
- A Garmin Connect account. The account your watch syncs to.
Connect your accounts
- Go to Settings in the dashboard.
- Enter your Liftosaur API key.
- Click Connect Garmin and log in. Garmin may ask for a multi-factor code.
Your sync status appears on the Workouts and History pages.
Syncing
Automatic sync
liftosaur2garmin checks for new Liftosaur workouts on a schedule and uploads them to Garmin. You don't need to run anything or open the dashboard.
Note: You must explicitly turn on auto-sync in the dashboard before automatic syncing can run. It is disabled by default.
Manual sync
Go to the Workouts page. Each workout has a Sync button. Click it to upload that workout now.
History
The History page lists every synced workout with timestamps and status.
Instant sync (iOS Shortcuts / Android Tasker)
You can initiate synchronization whenever you want (e.g., when you finish a workout or close your workout tracker app) by sending a POST request to your personal Instant Sync URL shown on the dashboard.
iOS Shortcuts Setup
- Open the Shortcuts app and create a new Shortcut.
- Add a Get Contents of URL action.
- Set the URL to your personal Instant Sync URL.
- Tap the action settings (the expansion arrow) and set the HTTP method to POST.
Android Tasker Setup
- Create a new Tasker task.
- Add a Net → HTTP Request action.
- Set the Method to POST.
- Set the URL to your personal Instant Sync URL.
Handling Failures & Disconnections
If your Garmin Connect account gets disconnected or your credentials are invalid, the request will fail with a 412 Precondition Failed status and a JSON error message.
- iOS Shortcuts: Expand the Get Contents of URL action settings and turn off Fail on Error (so the shortcut doesn't stop). Then add a Show Notification action and set the text to the Contents of URL (the response body). This will alert you with the error message.
- Android Tasker: Tasker stores the response body in
%http_dataand the status code in%http_response_code. Add a Notify action to alert you with%http_dataif%http_response_codeis not202.
Alternative: FlowTrigger is free.
Note: By default, Instant Sync uploads only your latest workout. You can sync multiple workouts (up to a maximum of 5) by appending &limit=N to your URL.
This example will sync the last 3 workouts:http://localhost:8123/api/cron/sync?token=lftsk_slrxgabcdef&limit=3
Exercise mapping
How it works
liftosaur2garmin maps each of your Liftosaur exercises to a Garmin FIT exercise category. Garmin uses these categories to show the Targeted Muscle Map on your watch. "Bench Press (Barbell)" becomes a chest exercise. Without a mapping, exercises show as "Unknown."
550+ mappings are built in. Most exercises are covered from the start.
Adding a mapping
Open the Mappings page. It lists your unmapped exercises and existing mappings.
- Find the exercise in the unmapped list.
- Pick a Garmin category and subcategory from the dropdowns.
- Click Save.
The next sync uses the new mapping. Edit or delete mappings any time.
What you see in Garmin
Open Garmin Connect after a sync. Your workout shows:
| Workout name | Matches your Liftosaur workout title |
| Exercises, sets, reps, weight | In the activity description |
| Calories | Calculated from heart rate data through the Keytel formula |
| Heart rate | Aligned to the workout window |
| Muscle map | Color-coded by volume per muscle, on your watch |
Re-syncing a workout
If you edit a workout in Liftosaur after it synced:
- Go to the History page and click Unsync on that workout.
- Go to the Workouts page and click Sync.
The old Garmin activity stays. Delete it in Garmin Connect if you don't want a duplicate.
Troubleshooting
Upload fails
Garmin rejects uploads when the auth token expires or the API is rate-limited.
- Wait a minute and click Sync again on the Workouts page.
- Go to Settings and click Connect Garmin to re-authenticate.
- Check your Garmin account isn't locked.
Exercises show as "Unknown"
The exercise needs a mapping. Open the Mappings page, find the exercise, assign a category.
Invalid API key
Your Liftosaur API key is wrong or expired. Generate a new one in Liftosaur → Settings → API Keys, then enter it in the dashboard Settings.
Calories look wrong
Calorie accuracy comes from heart rate data and your profile. Go to Settings and check your weight and birth year. The Keytel formula uses both.
No workouts appear
Look at the Workouts page in the dashboard. If empty:
- Double-check your Liftosaur API key in Settings.
- Check your Liftosaur premium subscription is active.
- Make sure the workouts are in your Liftosaur history (templates don't count).
Garmin login gets stuck
Garmin may show a captcha or consent prompt during login. Close the browser tab and try again. If it keeps happening, wait a few minutes and retry.
Still stuck?
Send a message through the Support page. Include what went wrong and what you tried. We also take general questions and feedback there.
FAQ
Will this duplicate my workouts?
No. Syncing a workout a second time skips it. liftosaur2garmin tracks which workouts have been synced.
Can I use this without a Garmin watch?
Yes. The upload goes to Garmin Connect, which works on its own. The web and mobile apps show exercises, calories, and descriptions. The on-watch muscle map needs a watch.
I deleted a workout in Garmin Connect. Can I get it back?
Go to the History page, unsync that workout, then sync it again from the Workouts page.
Why are my workouts not syncing automatically?
By default, auto-sync is disabled. To enable it, go to your dashboard, scroll to the Sync card, and toggle Auto-sync on. Your workouts will then sync automatically on a schedule.
Is there a limit on syncing past workouts?
Yes. The sync tool enforces a hard cap of 100 syncable workouts and only retrieves your 100 most recent workouts. Workouts older than the newest 100 are marked as "Older Workout" on the Workouts page and will not be processed or marked as pending. This prevents the server from scanning every historical workout indefinitely, while still providing a robust history for active users.