Skip to main content

tanita-synchro

tests

Copy your Tanita scale measurements from MyTanita to Garmin Connect: weight and full body composition, with the original date and time, as if they came from a Garmin Index scale.

2026-10-08 10:00:02 MyTanita: 12 measurements (2026-09-08 .. 2026-10-08), already in Garmin: 11, to upload: 1
[1/1] 2026-10-08 07:41 70.40 kg ok

Why I built this

My Tanita RD-953 talks only to the My TANITA app. Garmin Connect, where the rest of my training and health data lives, cannot read weight from it, and it does not read weight from Apple Health either. Typing weigh-ins in by hand loses everything except the weight and is easy to forget.

tanita-synchro signs in to your MyTanita account, downloads the measurement export and uploads every measurement Garmin does not have yet. Run it once to bring over your whole history, then let it run on a schedule.

Features

  • Full body composition — weight, BMI, body fat, body water, muscle mass, bone mass, BMR, metabolic age, physique rating and visceral fat rating.
  • Original timestamps — each weigh-in keeps the date and time it was taken.
  • Safe to repeat — measurements already in Garmin are skipped, so you can run it as often as you like; nothing is stored locally.
  • History backfill — --all uploads everything in your MyTanita account.
  • Dry run — --dry-run shows what would be uploaded.
  • Scheduling on macOS — a launchd agent runs the sync twice a day.
  • Your MyTanita password stays in the macOS Keychain (or in environment variables); the Garmin session is cached so MFA is needed only once.

Disclaimer

This is an unofficial tool, not affiliated with or endorsed by Tanita or Garmin. Neither MyTanita nor Garmin Connect offers a public API for this, so tanita-synchro uses the MyTanita website's CSV export and the upload endpoint of Garmin Connect, signing in with your own credentials. Use it only with your own accounts and your own data, at your own risk. Either service can change without notice and break the tool.

Quick start

Requires Python 3.12+. The easiest way is pipx:

pipx install tanita-synchro
tanita-synchro --all --dry-run     # see what would be uploaded
tanita-synchro --all               # upload your whole history

On the first run you are asked for your MyTanita email and password (a dialog on macOS, saved to the Keychain), then for your Garmin email, password and — if your account uses two-step verification — the code Garmin emails you.

Common commands

tanita-synchro                         # the last 30 days (default)
tanita-synchro --since 2026-09-01
tanita-synchro --all                   # the whole MyTanita history
tanita-synchro --dry-run               # show, do not upload
tanita-synchro --timezone Europe/Warsaw

Running on a schedule (macOS)

From a git checkout with its .venv set up (see Contributing):

launchd/install.sh      # runs at 10:00 and 20:00; missed runs happen after wake
tail -f ~/Library/Logs/tanita-synchro.log
launchd/uninstall.sh

Documentation

License

MIT

Metadata

Release files for tanita-synchro 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tanita-synchro 0.1.0
File Size Uploaded
tanita_synchro-0.1.0.tar.gz 18.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tanita-synchro 0.1.0
File Interpreter ABI Platform
tanita_synchro-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.3 kB

Release files / tanita_synchro-0.1.0.tar.gz

Download URL tanita_synchro-0.1.0.tar.gz
Size 18.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9fea35b35324f8e57a97573476025147344573af28ed0c1bda2d6e1343d449ce
BLAKE2b-256 checksum
How to use checksums
2e8169544c05e5ad9e8486772eb95404844d50ebced9815b47ca1cd8694a67db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / tanita_synchro-0.1.0-py3-none-any.whl

Download URL tanita_synchro-0.1.0-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d6970d33e9729c14f6f95b2c84fc6e7c7fd744c0347b719ff5f9e993852100f
BLAKE2b-256 checksum
How to use checksums
7a6880f28f680b1fa5b3ef232f45778c16097ed0d420ce3d4930f7df08f2f91f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page