# Fitness API Pricing Transparency 2026 (who publishes a price, per vendor)

<!-- Generated by scripts/build-datasets.mjs with fitness-api-pricing-transparency-2026.json and fitness-api-pricing-transparency-2026.csv. Do not edit by hand: the next `npm run datasets` rewrites it. -->

| | |
|---|---|
| Version | 2026.1 |
| Rows | 32 |
| Columns | 12 |
| Publisher | AIFitnessAPI (aifitnessapi.com) |
| License | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) |
| Files | [fitness-api-pricing-transparency-2026.json](https://aifitnessapi.com/datasets/fitness-api-pricing-transparency-2026.json), [fitness-api-pricing-transparency-2026.csv](https://aifitnessapi.com/datasets/fitness-api-pricing-transparency-2026.csv) |
| Generated from | `src/data/researchStudies.ts PRICING_ROWS (generated by scripts/build-research.mjs from ops/research/pricing-transparency.json and the evidence files, then by scripts/build-datasets.mjs)` |
| Sources read on | not applicable: built from this site's own pages, each row linking the page that carries its sourced claim |

## License

CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/): reuse and redistribute, including commercially, with attribution to aifitnessapi.com.

## Source and method

- https://developer.garmin.com/gc-developer-program/overview/
- https://www.strava.com/legal/api
- https://cloud.ouraring.com/v2/static/json/openapi-1.43.json
- https://developer.whoop.com/api-terms-of-use/
- https://www.polar.com/en/legal/polar-api-agreement
- https://developer.withings.com/developer-guide/v3/integration-guide/public-health-data-api/data-api/notifications/notification-overview/
- https://apizone.suunto.com/
- https://www.wahoofitness.com/wahoo-api-agreement
- https://tryterra.co/pricing
- https://www.junction.com/pricing
- https://tryrook.io/pricing/
- https://www.spikeapi.com/pricing
- https://sahha.ai/
- https://www.thryve.health/pricing
- https://openwearables.io/pricing
- https://validic.com/inform-signup/
- https://risk.lexisnexis.com/products/humanapi
- https://docs.metriport.com/medical-api/getting-started/quickstart
- https://www.nutritionix.com/api
- https://developer.edamam.com/food-database-api
- https://spoonacular.com/food-api/pricing
- https://api-ninjas.com/pricing
- https://quickpose.ai/sdk-pricing/
- https://www.sency.ai/pricing-packages
- https://developers.mindbodyonline.com/resources/faqs

One row per vendor named on this site's /pricing pages, classified from the vendor's own lines as the pages' evidence files quote them (ops/sources/evidence/pricing-*.json, re-read weekly by the repository's source-quotes workflow). Rule, applied in order: published-price when the vendor lists a price for any paid developer plan; no-published-price when it names a paid plan or commercial terms without a price; free when it says developer access costs nothing and names no paid plan. line is the vendor's sentence the class rests on and url its page; freeEntry is a line showing a free plan, trial or sandbox; unpricedTier a line naming a paid tier without a price. The generator fails unless each line is a substring of a quote in the named evidence file. The class describes what the vendor's page states on the evidence files' read dates, not what a customer pays. A vendor whose lines state no price either way, or KinesteX, which funds this site, is listed with the reason in excluded and left out of the counts.

## Fields

| Field | Description | JSON types | Null in |
|---|---|---|---|
| `vendor` | The vendor | string | 0 of 32 rows |
| `category` | wearable, aggregator, nutrition, exercise, motion or gym | string | 0 of 32 rows |
| `categoryLabel` | The category's name | string | 0 of 32 rows |
| `class` | published-price, no-published-price or free (see methodology); null when excluded | null, string | 7 of 32 rows |
| `classLabel` | The class's name | null, string | 7 of 32 rows |
| `line` | The vendor's line the class rests on, verbatim from the evidence file | null, string | 7 of 32 rows |
| `url` | The vendor page the line is quoted from | null, string | 7 of 32 rows |
| `evidenceFile` | The evidence file holding the quote | null, string | 7 of 32 rows |
| `freeEntry` | A vendor line showing a free plan, trial or sandbox; null where none is quoted | null, string | 20 of 32 rows |
| `unpricedTier` | A vendor line naming a paid tier without a price; null where none is quoted | null, string | 24 of 32 rows |
| `excluded` | Why the vendor is left out of the counts; null when counted | null, string | 25 of 32 rows |
| `pricingPage` | This site's pricing page for the vendor | string | 0 of 32 rows |

A null means the source does not state the value or it could not be verified. It never means zero, and it is never a guess. In the CSV a null is an empty unquoted field.

## Update cadence

- `src/data/researchStudies.ts` is maintained by hand alongside the pages it feeds; this dataset is regenerated from it with `npm run datasets` in the change that edits it, so it moves when the site's pages move.
- The files are rebuilt by `npm run datasets` (scripts/build-datasets.mjs); a run with no source change writes byte-identical files. The edition stays 2026.1, and a new edition ships under a new file name rather than overwriting this one.

## Cite as

AIFitnessAPI, "Fitness API Pricing Transparency 2026 (who publishes a price, per vendor)," version 2026.1, aifitnessapi.com, https://aifitnessapi.com/datasets/fitness-api-pricing-transparency-2026.json

```bibtex
@misc{aifitnessapi-fitness-api-pricing-transparency-2026,
  author = {{AIFitnessAPI}},
  title = {Fitness API Pricing Transparency 2026 (who publishes a price, per vendor)},
  version = {2026.1},
  year = {2026},
  publisher = {aifitnessapi.com},
  url = {https://aifitnessapi.com/datasets/fitness-api-pricing-transparency-2026.json},
  note = {Dataset, CC BY 4.0}
}
```

Every dataset this site publishes: https://aifitnessapi.com/datasets
