Chrono24 API endpoint
Fetches one page of a Chrono24 dealer/seller's buyer reviews: reviewer name and country, review date, star-rating breakdown (shipping/description/communication), whether the buyer recommends the seller, their free-text comment, and the dealer's own reply when present. slug is the same dealer slug chrono24-dealer takes.
/chrono24/dealer/reviewsQuery parameters:
slug (required) — the dealer's URL path segment, the same param
chrono24-dealer takes, e.g. thetimelords.page (optional) — one-based result page. Defaults to 1.page_size (optional) — reviews per page, 1-50. Defaults to 10.min_stars (optional) — keep only reviews rating the dealer at least
this many stars, 0-5. 0 (default) returns every review.sort (optional) — result order. One of: relevance (default),
newest, with_recommendation, without_recommendation.Notable response behavior:
slug returns 400 before any upstream request is made.slug for a storefront Chrono24 no longer serves returns 404.rating.article/rating.communication/rating.delivery are omitted
when a buyer left no rating for that sub-category.dealer_reply is empty when the dealer left no reply to a given review.total_count reflects the current min_stars filter, not the dealer's
overall review count.| Field | Filled in, of 7 checked | Values in the sample |
|---|---|---|
| author | 7 | |
| country | 7 | |
| date | 7 | |
| rating | 7 | |
| recommends_seller | 7 | true in 7 of 7 |
| comment | 3 | |
| watch_title | 6 | |
| dealer_reply | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Dealer slug from a listing's seller link | thetimelords | |
| page | integer | No | One-based result page Minimum: 1. | ||
| page_size | integer | No | Reviews per page, 1-50 Minimum: 1. Maximum: 50. | ||
| min_stars | integer | No | Keep only reviews rating the dealer at least this many stars, 0-5. 0 returns every review Minimum: 0. Maximum: 5. | ||
| sort | string | No | Result order. One of: relevance, newest, with_recommendation, without_recommendation Allowed values: relevance, newest, with_recommendation, without_recommendation. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/chrono24/dealer/reviews?slug=thetimelords&page=1&sort=relevance" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "thetimelords",
"sort": "relevance",
"page": 1,
"page_size": 10,
"total_count": 7,
"reviews": [
{
"author": "Scott H.",
"country": "US",
"date": "October 27, 2025",
"rating": {
"average": 5,
"article": 5,
"communication": 5,
"delivery": 5
},
"recommends_seller": true,
"comment": "Absolutely perfect transaction. I'd highly recommend this dealer.",
"watch_title": "Rolex Explorer II 2001"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/chrono24.dealerReviewsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | chrono24.ReviewsResponse | No | ||||
| data.page | integer | No | ||||
| data.page_size | integer | No | ||||
| data.reviews | array | No | ||||
| data.reviews[].author | string | No | Author is the reviewer's display name, e.g. "Scott H.". | |||
| data.reviews[].comment | string | No | Comment is the buyer's free-text review, empty when they left a rating with no comment. | |||
| data.reviews[].country | string | No | Country is the reviewer's ISO-3166 country code. | |||
| data.reviews[].date | string | No | Date is Chrono24's own formatted review date. | |||
| data.reviews[].dealer_reply | string | No | DealerReply is the dealer's own reply to this review, when present. | |||
| data.reviews[].delivered | string | No | ||||
| data.reviews[].rating | chrono24.ReviewRating | No | ||||
| data.reviews[].rating.article | integer | No | ||||
| data.reviews[].rating.average | number | No | ||||
| data.reviews[].rating.communication | integer | No | ||||
| data.reviews[].rating.delivery | integer | No | ||||
| data.reviews[].recommends_seller | boolean | No | ||||
| data.reviews[].shipped | string | No | ||||
| data.reviews[].watch_title | string | No | WatchTitle is the purchased watch's listing title, e.g. "Rolex GMT-Master II". | |||
| data.slug | string | No | ||||
| data.sort | string | No | ||||
| data.total_count | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/chrono24/dealer/reviews?slug=thetimelords&page=1&sort=relevance" \
-H "x-api-key: $CRAWLORA_API_KEY"