Chrono24 API
The Chrono24 API returns luxury-watch marketplace data as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary search endpoint returns listings with id, title, price, currency, URL, image and availability, plus an aggregate with low, high and total results, and you can browse and pull a detail. It is built for watch-price intelligence, resale tools and luxury-market analytics that need Chrono24 data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/chrono24/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "rolex submariner"
}
}{
"ok": true,
"meta": {
"api": "chrono24",
"endpoint": "search",
"mode": "live",
"latency_ms": 3791.4,
"record_count": 60,
"bytes": 704319,
"cache_hit": false,
"completeness_pct": 100,
"stop_reason": "limit_reached",
"method": "ssr_ld_json",
"pagination": {
"page": 1,
"has_more": true,
"next_page": 2
}
},
"data": {
"listings": [
{
"listing_id": "45866799",
"title": "Rolex Submariner Blue dial Watch Only 126619LB Preowned Automatic",
"price": 35995,
"currency": null,
"url": "https://www.chrono24.com/rolex/submariner--blue-dial-watch-only-126619lb-preowned-automatic--id45866799.htm",
"image": "https://img.chrono24.com/images/uhren/45866799-wf1w31ys5tgzxgj66evq9oiz-ExtraLarge.jpg",
"availability": "InStock"
},
{
"listing_id": "36274032",
"title": "Rolex Submariner Date",
"price": 9800,
"currency": null,
"url": "https://www.chrono24.com/rolex/submariner-date--id36274032.htm",
"image": "https://img.chrono24.com/images/uhren/36274032-azv1bbbez4wn1a61u4igbj0j-ExtraLarge.jpg",
"availability": "InStock"
},
{
"listing_id": "46166872",
"title": "Rolex Submariner Full set",
"price": 13800,
"currency": null,
"url": "https://www.chrono24.com/rolex/submariner--id46166872.htm",
"image": "https://img.chrono24.com/images/uhren/46166872-i7k05wa1equ3obexl5n3w74a-ExtraLarge.jpg",
"availability": "InStock"
}
],
"aggregate": {
"low_price": "7592",
"high_price": "312700",
"currency": "USD",
"offer_count_on_page": "60",
"total_results": 663832
}
}
}What the Chrono24 API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Chrono24 by free-text keyword (brand + model + reference, e.g. 'rolex submariner', 'omega speedmaster 3861'). Optional filters: price_min/price_max, condition (new/used), movement, year, sort. Paginated (~60/page). Returns listing cards with title, price, currency, condition availability, image and url. | Pricing teams call search to search Chrono24 by free-text keyword (brand + model + reference, e.g. | query, page, price_min, price_max, condition, ... |
| browse | Browse all listings for a brand (e.g. brand='rolex') or a brand+model (brand='omega', model='speedmaster'). Same filters and paginated card shape as search — the catalog-discovery surface for a whole brand or model family. | Marketplace operators call browse to get browse all listings for a brand (e.g. | brand, model, page, price_min, price_max, ... |
| detail | Full watch listing by `url` OR `listing_id`: brand, model, reference number, price, currency, condition (+ condition text), year, movement, case material, case diameter, crystal, strap material, dial, gender, jewels, power reserve, scope of delivery, seller location, delivery estimate, description and all images. | Catalog enrichment teams call detail to get full watch listing by `url` OR `listing_id`. | url, listing_id |
Call search from your stack
curl -X POST https://api.reefapi.com/chrono24/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"rolex submariner"}'import requests
r = requests.post(
"https://api.reefapi.com/chrono24/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "rolex submariner"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/chrono24/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "rolex submariner"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.chrono24.search with {"query":"rolex submariner"}.Who uses this API and why
- Watch-price tools call search to track the market range for a reference across dealers.
- Resale and investment products use the aggregate low/high to value a specific model.
- Luxury-market analysts use browse to monitor supply and pricing for a brand or collection.
Questions developers ask before integrating
What is the Chrono24 API?
Chrono24 API is a ReefAPI endpoint group for chrono24 It returns live JSON through POST requests under /chrono24/v1.
Is the Chrono24 API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Chrono24 calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Chrono24 login or account?
No login to Chrono24 is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Chrono24 data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Chrono24 API use?
Chrono24 actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Chrono24 from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call chrono24 actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Chrono24 API a Chrono24 scraper?
It is the managed alternative to a DIY Chrono24 scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same chrono24 back as clean JSON.
Why does my Chrono24 scraper keep getting blocked?
Most Chrono24 scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.