MTB DealsThe deals →

Data for agents and developers

Every deal MTB Deals shows is public as one JSON snapshot: 60 European, UK and US shops read every two hours, each deal with the shop's price next to the old one, the real cut against the pre-campaign price, the sizes in stock, a price history and a buy-or-wait verdict. No key, no sign-up, no affiliate links. This page says what the feed holds and where the pages are.

The JSON feed

The OpenAPI description

https://mtbdeals.co/api/deals/openapi.json (OpenAPI 3.1) describes the feed field by field with its closed vocabularies (the shop ids, the categories, the campaign ids, the verdicts and fact codes) and every page URL below. Load it in any OpenAPI tool or hand it to an agent.

The snapshot

A product

The verdicts

signal.v: buy "Buy now", good "Good price", wait "Wait", early "Too early to say". The fact codes in signal.r, the headline first: up, cheaper, ahead, early, nohist, real, scarce, cheapest, used, peak, headroom, low, altAhead, camp-price, noshow, peakdays, late, flat, popular; what each means is in the OpenAPI description and in llms-full.txt.

real.verdict: real (at least 5% under the reference price: a genuine new cut); same (within 5% of it: it cost that already (not a campaign cut, though it can still be a fair price)); up (above it: the price rose since the reference); new (seen for the first time, under two days of history); unknown (no reference price yet).

Pages and share links

Licence

The data and the pages are published under Creative Commons Attribution 4.0 (CC BY 4.0): use them, copy them, build on them, with the attribution “MTB Deals (mtbdeals.co)” and a link back. The code is MIT-licensed (the LICENSE file in the repository).

Terms

Public, read-only, no key, no rate limit. Please cache the feed for five minutes (it changes every two hours at most) and link back to https://mtbdeals.co/ when you show its data. Prices are what the shops showed at the last check; the shop's own page is what counts. No affiliate links, no trackers, nothing is recorded about who reads the feed.