{"name":"Trova open data","version":"v1","description":"Open, citable running shoe data from Trova (trova.run): published specs for every verified shoe, version lineage, the closest current matches and the Running Shoe Drift Index. Static JSON rebuilt with the site; values are the figures brands and retailers publish, each backed by a cited source.","documentation":"https://trova.run/developers/","updated":"2026-10-06","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","title":"Creative Commons Attribution 4.0 International","scope":"Trova's compilation: the selection, the records, the scores and the files under /data/. Not brand names, trademarks, product images or brand wording."},"attribution":{"text":"Data: Trova (trova.run), CC BY 4.0","html":"<a href=\"https://trova.run/\">Data: Trova</a> (<a href=\"https://creativecommons.org/licenses/by/4.0/\">CC BY 4.0</a>)","requirement":"Credit \"Trova\" with a visible link to https://trova.run/ (or to the Trova page the figure comes from), link the licence, and say if you changed the data."},"usage":{"rateLimit":"None enforced. Files are static and cached at the edge for an hour; poll at most once an hour (data changes at most daily) and cache on your side.","cors":"Access-Control-Allow-Origin: *","stability":"v1 fields are only ever added, never renamed or removed. Breaking changes ship as /data/v2/."},"rules":["Only verified shoes are published: every value has been checked against a cited brand or retailer source.","null means the brand does not publish that spec. Values are never estimated or converted.","Weights are quoted at each brand's reference size (specs.weightBasis)."],"counts":{"shoes":427},"endpoints":[{"id":"index","url":"https://trova.run/data/v1/index.json","format":"application/json","description":"This file."},{"id":"shoes","url":"https://trova.run/data/v1/shoes.json","format":"application/json","description":"All 427 verified shoes.","schema":{"id":"Stable slug, also the path segment of every Trova page about the shoe.","name":"Brand, family and version, e.g. \"Brooks Ghost 17\".","brand / family / version":"Model identity. A line (family) is every version sharing brand + family.","status":"\"current\" (on sale as the latest version) or \"discontinued\".","category":"Trova category: daily, max, tempo, race, trail or recovery.","support":"neutral or stability.","surface":"road or trail.","released":"Release month YYYY-MM as published, or null.","specs.stackHeelMm / specs.stackForefootMm":"Published stack height in millimetres, or null when not published.","specs.dropMm":"Published heel-to-toe drop in millimetres, or null.","specs.weightG":"Published weight in grams at specs.weightBasis (the brand's reference size), or null.","specs.weightBasis":"Reference size the weight is quoted at, e.g. \"men's UK 8.5\". Compare weights only on the same basis.","successorId":"Verified current version of the same line, or null.","successorPending":"true when a newer current version exists but is still being verified.","url / replacementUrl":"Canonical Trova pages for the shoe. Link one when you use its data.","api":"The shoe's detail file.","sourcesCount":"Number of cited sources (brand, retailer, press) behind the record.","lastVerified":"Latest retrieval date (YYYY-MM-DD) of those sources."}},{"id":"shoes-csv","url":"https://trova.run/data/v1/shoes.csv","format":"text/csv","description":"The same records as CSV (RFC 4180, empty cell = not published).","columns":["id","name","brand","family","version","status","category","support","surface","released","stack_heel_mm","stack_forefoot_mm","drop_mm","weight_g","weight_basis","successor_id","url","sources_count","last_verified"]},{"id":"shoe","urlTemplate":"https://trova.run/data/v1/shoes/{id}.json","example":"https://trova.run/data/v1/shoes/adidas-adios-pro.json","format":"application/json","description":"One verified shoe with sources, lineage, successor and top matches. {id} is any id from shoes.json.","schema":{"…":"Every field of the shoes.json record, plus:","sources":"Cited sources: publisher, url, kind (brand | retailer | press | feed), retrieved date and the fields each one backs.","lineage":"Every version of the line, oldest first. Verified versions carry specs and an api URL; unverified ones are named only (verified: false).","successor":"Current version of the line (null if none): verified → id, api and deltas; pending → name and verified: false only.","matches":"Top 3 current shoes from other families on the same surface, ranked by spec similarity (verified shoes only, same ranking as the Trova replacement page): rank, id, similarity (0–100), confidence (0–1) and deltas (match − this shoe, null when either side is unpublished)."}},{"id":"drift-index","url":"https://trova.run/data/v1/drift-index.json","format":"application/json","description":"Running Shoe Drift Index, ranked.","schema":{"rank":"Position, highest drift first.","from / to":"Older and newer of the line's two latest versions, with their heel stack, drop, weight and weight basis.","deltas":"Newer minus older, rounded to 0.1 (stackHeelMm, dropMm, weightG).","score":"Drift score (see formula)."}},{"id":"drift-index-csv","url":"https://trova.run/data/drift-index.csv","format":"text/csv","description":"Running Shoe Drift Index as CSV."}]}
