Logo Running Workout Running Workout
Documentation

Writing a training session to a Garmin watch via API

Contrary to what you will often read, Garmin does expose an official API that can write structured workouts to a user's account. It exists, it is documented, and it is closed by default. Here is exactly what it allows, and what the alternatives are when you cannot get access.

Last updated: 2026-08-24

Three routes, only one of them official

Getting a workout onto a Garmin watch without typing it in by hand always comes down to one of three approaches. They are not equivalent, neither in reliability nor in what they require of you.

Route What it requires Reliability
Official Training API Approval in the Garmin Developer Program. The user grants access on a Garmin screen and never hands over a password. Stable: it is a public contract Garmin maintains.
FIT file Generating a FIT binary, then copying it to the watch over USB or pushing it through a third-party platform. Reliable but manual: nothing syncs on its own.
Garmin Connect private endpoints The user's Garmin username and password, stored by whichever tool uses them. Fragile: these addresses are not public and can change without notice.

The third route is by far the most common in community projects, because it requires no permission from anyone. It is also the one that exposes the user most, and the one that breaks the day Garmin changes its website.

What the Training API actually does

Version 2 of Garmin's Training API covers two distinct actions that are easy to confuse: creating a workout in the account library, and placing it on a calendar date. A workout created without being scheduled stays available but never shows up on the day.

Create, then schedule

Creation accepts a complete structured workout: a sequence of steps typed as warm-up, interval, recovery or cool-down, with nested repeat blocks. Each step carries an end condition and, optionally, a target.

Three sports, three vocabularies

Running, cycling and pool swimming do not accept the same targets. Cycling thinks in absolute watts, swimming in pace zones and pool length, running in pace or percentage of maximal aerobic speed. A workout that mixes the vocabularies is rejected — or worse, accepted with its target silently dropped.

A common trap: a badly declared heart-rate target is accepted by the API and lands on the watch as an open step with no instruction. The workout exists, but it steers nothing.

What it does not do

The official API is not a skeleton key. Several limits are structural and worth knowing before you build on it.

These limits explain why some tools deliberately take another route. They do not make it a bad API: they make it a partner API, with the usual trade-offs.

Why so many tools go around it

The community projects you find publicly almost all rely on a library that mimics the Garmin Connect app signing in. It works, it is simple to install, and it asks for your Garmin username and password.

That choice carries a cost rarely weighed at install time: your credentials leave Garmin's control, the tokens obtained expire quickly, and the tool stops working the day Garmin changes an internal address. Several of these projects state themselves that they are not meant for commercial use.

A simple test before installing anything: if the tool asks for your Garmin password, it is not using the official API. With the official route, you grant access on a Garmin screen and revoke it from your Garmin account.

How Running Workout does it

Running Workout is approved in the Garmin Developer Program and writes through the official Training API. In practice that changes three things for the athlete.

The service also exposes these capabilities to an AI assistant through a remote server, so a workout can be described in plain language and turn up on your wrist. That is what the connection guide covers.

Frequently asked questions

Does Garmin really have a public API for writing workouts?

Yes. The Training API is part of the Garmin Developer Program and can create and then schedule structured workouts on the account of a user who has authorised it. It is documented and maintained. What is not public is access: you have to be approved as a partner.

Can I use it for my own personal training?

Not directly. The programme is aimed at services, not individuals. For personal use you still have the FIT file copied over USB, a third-party bridge, or an already-approved service that exposes the capability.

Is a tool that asks for my Garmin password dangerous?

Not necessarily malicious, but it takes you outside the intended framework: your credentials are stored somewhere other than Garmin, you cannot revoke access from your Garmin account, and you depend on internal addresses that can change. Authorising on a Garmin screen avoids all three problems.

Does a workout written via the API reach the watch automatically?

Yes, as soon as it is scheduled on a date: it downloads to the watch at the next sync, exactly like a workout built in Garmin Connect. A workout created without a date simply stays in the account library.

Can swimming and cycling workouts be written, or only running?

All three. Each sport has its own targets: watts and cadence for cycling, pace zones and pool length for swimming, pace or percentage of maximal aerobic speed for running. Each vocabulary has to be respected, or the target disappears silently.

Let your assistant write your sessions

Running Workout connects Claude, ChatGPT or Gemini to your Garmin account through the official API. Nothing to install, and no Garmin password to hand over.

See the connection guide