Smart trainer database JSON and CSV API

Static files, CORS enabled, no key. Fields are read from the files we actually serve.

These are plain static files. There is no key, no sign-up and no rate limit beyond ordinary good manners: cache what you fetch and please do not poll more than once a day, because the files only change when we re-check the data.

  • Licence: CC BY 4.0. Credit SmartBikeWiki and link to https://smartbikewiki.com/database/.
  • CORS: every file under /data/ is served with Access-Control-Allow-Origin: *, so you can call it straight from browser JavaScript.
  • Update cadence: Rebuilt whenever a model is re-checked; each record carries its own checked date. Prices change often, so treat price fields as the value on the checked date.
  • Versioning: files are overwritten in place. The checked date below tells you which version you have.
  • Related: embeds, charts and downloads and the press and media kit.

Endpoints

GET /data/trainer-database.json

One object per model with claimed specs, store price in the store's own currency, connectivity, source links and the findings named independent reviewers published. We ran no tests; nothing here is a score.

Full URL: https://smartbikewiki.com/data/trainer-database.json. Format: application/json. 23 records. Last checked 2026-11-02. Described on https://smartbikewiki.com/database/.

const res = await fetch("https://smartbikewiki.com/data/trainer-database.json");
const data = await res.json();
console.log(Array.isArray(data) ? data.length : Object.keys(data));
Fields (26)
Top-level fields of /data/trainer-database.json, read from the served file
FieldTypeExampleFilled
idstringwahoo-kickr-v623 of 23
brandstringWahoo23 of 23
modelstringKICKR (2022, WiFi)23 of 23
typestringsmart-trainer23 of 23
statusstringcurrent23 of 23
claimedPowerAccuracystring (nullable)±1%20 of 23
maxPowerWnumber (nullable)220020 of 23
maxPowerNotestring (nullable)Stated as sprint stability up to 2,200 W9 of 23
maxSimulatedGradientPctnumber (nullable)2019 of 23
minSimulatedGradientPctnumber (nullable)-108 of 23
flywheelstring (nullable)16 lb (as stated by Wahoo)12 of 23
noiseClaimstring (nullable)57.8 dB (Tacx figure, as quoted by Zwift Insider)3 of 23
weightstring (nullable)47 lb / 22 kg15 of 23
maxRiderWeightstring (nullable)250 lb / 113 kg12 of 23
connectivitystring (nullable)ANT+, ANT+ FE-C, WiFi, Bluetooth, Direct Connect17 of 23
pricenumber (nullable)1049.9914 of 23
priceCurrencystring (nullable)USD19 of 23
priceNotestringUS regular price $1,049.99 at Mike's Bikes and Marblehead...23 of 23
specSourcestring (nullable)https://www.wahoofitness.com/devices/indoor-cycling/bike-...20 of 23
priceSourcestring (nullable)https://mikesbikes.com/collections/trainers/products/waho...19 of 23
publishedFindingsarray[{"reviewer":"BikeRadar","reviewedModel":"Wahoo KICKR V6"...23 of 23
checkedstring2026-11-0123 of 23
sourcesarray["https://www.wahoofitness.com/devices/indoor-cycling/bik...23 of 23
priceTypestring (nullable)list10 of 23
priceStorestring (nullable)US retailers (Mike's Bikes, Marblehead Cycle)10 of 23
priceLocalnumber (nullable)11254 of 23

Empty or null means the source did not state it, not that the answer is zero. Money is in the source's own currency and is never converted. Dates are ISO 8601.

GET /data/trainer-database.csv

The main spec and price columns as a flat file, plus a count of published findings per model.

Full URL: https://smartbikewiki.com/data/trainer-database.csv. Format: text/csv. 23 rows. Last checked 2026-11-02. Described on https://smartbikewiki.com/database/.

const res = await fetch("https://smartbikewiki.com/data/trainer-database.csv");
const rows = (await res.text()).trim().split(/
?
/);
console.log(rows.length - 1, "rows");
Columns (17)
CSV columns of /data/trainer-database.csv, read from the served file
Column
id
brand
model
type
claimedPowerAccuracy
maxPowerW
maxSimulatedGradientPct
weight
connectivity
price
priceCurrency
priceLocal
priceNote
specSource
priceSource
checked
publishedFindings

Empty or null means the source did not state it, not that the answer is zero. Money is in the source's own currency and is never converted. Dates are ISO 8601.

How to credit

A visible mention with a link is enough, for example: "Data: SmartBikeWiki (smartbikewiki.com), CC BY 4.0." The citation below is ready to copy.

Cite this

Data version 2026-11-02. Stable address: https://smartbikewiki.com/database/. Free to reuse under CC BY 4.0 with a link back.