How often fitness API documentation changes under us
History read through Nov 5, 2026 (main at 8fb512e) · 982 rows in the dataset · every figure recomputed from it at each build
28
source changes under this site's quotes, counted once per host per commit, on 21 hosts
635 of 7,984
evidence rows replaced because their source changed
10%
of evidence rows written by Oct 22, 2026 had their source change within 14 days
5 days
median age of an evidence row when its source changed
Method
Pages on this site that are written from vendor sources keep an evidence file: one row per fact, with the claim, the source URL and a verbatim quote. A weekly workflow re-reads every URL and fails when a quote is no longer on its page, and a person then re-reads the source and fixes the page.
This study replays the git history of those files, 20 commits from Oct 17, 2026 to Nov 5, 2026, and follows every row from the commit that wrote it to the commit after which its file no longer held it. A row ends one of five ways: its quote changed, its URL changed, both changed, its claim was reworded over the same quote, or it was removed.
Why a row ended comes only from the message of the commit that ended it. Each explanation is a sentence copied from that message, and the generator fails if the sentence is not there or if a commit that mentions source drift has none. Source changed means the message says the vendor's page changed. Our change means this site changed the quote or URL while the source stood still. Unreachable means the page stopped answering. Where the message also says whether a fact or only the wording moved, that is recorded; otherwise the kind is left blank.
A source change is counted once per host per commit, so one vendor redesign that touched 300 rows counts once, and the row counts are given beside it.
Source changes by commit
676 of the 7,984 rows ended in the period: 635 because their source changed, 23 because this site changed a quote or URL, 16 because a source stopped answering, and 2 for a reason the commit message does not give. The other 7,308 were still in place at the end of the history.
Each bar is one commit that recorded source changes, dated by its merge; its length is the number of hosts the commit names.
| Date | Commit | Hosts | Rows replaced |
|---|---|---|---|
| Oct 22, 2026 | 2979aee | 1 | 300 |
| Oct 23, 2026 | fad6ea2 | 7 | 30 |
| Oct 28, 2026 | 560d0d2 | 7 | 119 |
| Oct 31, 2026 | af070f5 | 1 | 121 |
| Nov 2, 2026 | b92bce2 | 5 | 24 |
| Nov 5, 2026 | 177ebfb | 6 | 36 |
| Nov 5, 2026 | 36be64d | 1 | 5 |
Hosts whose sources changed
The 21 hosts with at least one source change, by number of changes, with how many of their evidence rows were written in the period and how many were replaced.
| Host | Source changes | Rows replaced | Rows written |
|---|---|---|---|
developer.garmin.com | 2 | 304 | 559 |
docs.tryterra.co | 2 | 21 | 260 |
raw.githubusercontent.com/the-momentum | 2 | 16 | 38 |
sahha.ai | 2 | 16 | 166 |
www.thryve.health | 2 | 9 | 117 |
raw.githubusercontent.com/tryterra | 2 | 4 | 18 |
support.coros.com | 2 | 4 | 85 |
cloud.ouraring.com | 1 | 121 | 328 |
tryterra.co | 1 | 64 | 270 |
openwearables.io | 1 | 40 | 131 |
developers.google.com | 1 | 9 | 82 |
raw.githubusercontent.com/sency-ai | 1 | 7 | 104 |
docs.thryve.health | 1 | 5 | 74 |
developer.withings.com | 1 | 4 | 146 |
raw.githubusercontent.com/ultralytics | 1 | 3 | 66 |
docs.wodify.com | 1 | 2 | 50 |
www.cliniko.com | 1 | 2 | 11 |
ringconn.com | 1 | 1 | 3 |
tryrook.io | 1 | 1 | 190 |
validic.com | 1 | 1 | 39 |
www.ultrahuman.com | 1 | 1 | 2 |
Fact or wording
Where the commit message says what kind of change it was, 20 of the 28 source changes were changes of fact, 4 were wording only and 1 were both; 3 do not say.
| Date | Commit | Host | Kind | Rows |
|---|---|---|---|---|
| Oct 22, 2026 | 2979aee | developer.garmin.com | fact | 300 |
| Oct 23, 2026 | fad6ea2 | developer.withings.com | fact | 4 |
| Oct 23, 2026 | fad6ea2 | raw.githubusercontent.com/sency-ai | fact | 7 |
| Oct 23, 2026 | fad6ea2 | raw.githubusercontent.com/tryterra | fact | 2 |
| Oct 23, 2026 | fad6ea2 | ringconn.com | fact | 1 |
| Oct 23, 2026 | fad6ea2 | sahha.ai | fact | 11 |
| Oct 23, 2026 | fad6ea2 | support.coros.com | fact | 2 |
| Oct 23, 2026 | fad6ea2 | www.thryve.health | fact | 3 |
| Oct 28, 2026 | 560d0d2 | openwearables.io | fact | 40 |
| Oct 28, 2026 | 560d0d2 | raw.githubusercontent.com/the-momentum | fact | 1 |
| Oct 28, 2026 | 560d0d2 | raw.githubusercontent.com/tryterra | fact | 2 |
| Oct 28, 2026 | 560d0d2 | sahha.ai | fact | 5 |
| Oct 28, 2026 | 560d0d2 | tryterra.co | wording | 64 |
| Oct 28, 2026 | 560d0d2 | validic.com | fact | 1 |
| Oct 28, 2026 | 560d0d2 | www.thryve.health | not stated | 6 |
| Oct 31, 2026 | af070f5 | cloud.ouraring.com | not stated | 121 |
| Nov 2, 2026 | b92bce2 | docs.thryve.health | fact | 5 |
| Nov 2, 2026 | b92bce2 | docs.wodify.com | fact | 2 |
| Nov 2, 2026 | b92bce2 | raw.githubusercontent.com/the-momentum | fact | 15 |
| Nov 2, 2026 | b92bce2 | tryrook.io | not stated | 1 |
| Nov 2, 2026 | b92bce2 | www.ultrahuman.com | wording | 1 |
| Nov 5, 2026 | 177ebfb | developer.garmin.com | wording | 4 |
| Nov 5, 2026 | 177ebfb | developers.google.com | mixed | 9 |
| Nov 5, 2026 | 177ebfb | docs.tryterra.co | fact | 16 |
| Nov 5, 2026 | 36be64d | docs.tryterra.co | fact | 5 |
| Nov 5, 2026 | 177ebfb | raw.githubusercontent.com/ultralytics | wording | 3 |
| Nov 5, 2026 | 177ebfb | support.coros.com | fact | 2 |
| Nov 5, 2026 | 177ebfb | www.cliniko.com | fact | 2 |
What this method cannot see
- It sees only committed changes. A page that changed and changed back between two reads, a page no evidence row quotes, and a change the quote check did not catch are all invisible here.
- Dates are merge dates on main. A row written in a branch days before it merged carries the merge date, which makes rows look younger than they are.
- The history is short: 20 commits over Oct 17, 2026 to Nov 5, 2026. The 14-day share counts only rows written at least 14 days before the end of the history, so rows written later do not dilute it.
- Kind of change is recorded only where the commit message states it: 3 of the 28 source changes have no stated kind.
- One large change weighs heavily on the row figures: the two largest account for 421 of the 635 replaced rows, which is why the count of source changes is given beside them.
Download the data
The rows behind every figure on this page, CC BY 4.0: fitness-api-docs-drift-2026.json, fitness-api-docs-drift-2026.csv and the dataset card that describes every column. All of this site’s datasets are on the open datasets page.
How to cite
Quote a figure with the date its data was read and link this page; each headline figure has its own anchor, such as https://aifitnessapi.com/research/docs-drift#drift-events.
AIFitnessAPI. "How often fitness API documentation changes under us." Data as of 2026-11-05. https://aifitnessapi.com/research/docs-drift
@misc{aifitnessapi-research-docs-drift,
author = {{AIFitnessAPI}},
title = {How often fitness API documentation changes under us},
year = {2026},
url = {https://aifitnessapi.com/research/docs-drift},
urldate = {2026-11-05},
note = {Data as of 2026-11-05}
}More citable counts about this site and the ecosystem it tracks are on the press page.
Frequently asked questions
How was documentation drift measured on this site?
By replaying the git history of the site's evidence files: 7,984 quoted source rows across 20 commits, each followed to the commit that replaced or removed it. Why it ended is taken only from that commit's message, as a sentence copied from it.
Does a changed quote mean the vendor changed a fact?
Not always. Of the 28 source changes, the commit messages call 20 changes of fact, 4 wording only and 1 a mix of both, and do not say for 3.
Which documentation hosts changed most often?
developer.garmin.com, docs.tryterra.co, raw.githubusercontent.com/the-momentum, sahha.ai, www.thryve.health, raw.githubusercontent.com/tryterra and support.coros.com, with 2 source changes each in the period. By rows, the largest were developer.garmin.com (300 rows on Oct 22, 2026) and cloud.ouraring.com (121 rows on Oct 31, 2026).
Were some quotes changed by this site rather than by the vendor?
Yes: 23 rows ended because this site changed the quote or URL (for example pinning a locale or lengthening a short quote), 16 rows because a source stopped answering, and 2 rows without a stated reason. None of these count as drift.