Chrono24 API endpoint
Fetches one Chrono24 dealer/seller's public storefront page: business description, trust badge, average buyer rating and review count, lifetime watches-sold count, and their current listed inventory in the same shape chrono24-search returns. slug is found in a chrono24-search or chrono24-listing result's seller link; there is no separate dealer-discovery endpoint since dealer slugs are not a closed set Chrono24 publishes an index of.
/chrono24/dealerQuery parameters:
slug (required) — the dealer's URL path segment, found in a
chrono24-search or chrono24-listing result's seller link, e.g.
thetimelords. There is no separate dealer-discovery endpoint: dealer
slugs are not a closed set Chrono24 publishes an index of, unlike brand
or model.Notable response behavior:
slug returns 400 before any upstream request is made.slug for a storefront Chrono24 no longer serves returns 404.rating/review_count/watches_sold are 0 when Chrono24 shows no
reviews or sales yet for the dealer.| Field | Filled in, of 12 checked | Values in the sample |
|---|---|---|
| id | 12 | |
| title | 12 | “Rolex GMT-Master II” and 8 other values |
| subtitle | 12 | “126710 126710blnr Batman 2021 box papers” and 11 other values |
| price | 12 | 5,950 to 255,000, median 16,850 |
| currency | 12 | USD in all 12 |
| price_text | 12 | “$16,500” and 11 other values |
| badge | 3 | “Reserved” |
| image_url | 12 | img.chrono24.com |
| url | 12 | chrono24.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Dealer slug from a listing's seller link | thetimelords | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/chrono24/dealer?slug=thetimelords" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "thetimelords",
"name": "Time Lords",
"url": "https://www.chrono24.com/dealer/thetimelords/index.htm",
"description": "The Time Lords we are Jewelry Store/ Watch Dealers In Los Angeles Since 1978",
"seller_badge": "Trusted Seller",
"rating": 4.9,
"review_count": 7,
"watches_sold": 13,
"listings": [
{
"id": "52200001",
"title": "Rolex Daytona",
"subtitle": "2025 full set rose gold box papers",
"price": 52000,
"currency": "USD",
"price_text": "$52,000",
"seller_type": "Time Lords",
"location": "US",
"image_url": "https://img.chrono24.com/images/uhren/52200001-Square.jpg",
"url": "https://www.chrono24.com/rolex/daytona--id52200001.htm"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/chrono24.dealerResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | chrono24.DealerResponse | No | ||||
| data.description | string | No | Description is the dealer's own free-text storefront blurb. | |||
| data.listings | array | No | Listings is the dealer's current inventory shown on their storefront page, in the same shape chrono24-search returns. | |||
| data.listings[].badge | string | No | Badge is a promotional badge Chrono24 shows on the card, e.g. "Popular" or "Promoted". Empty when the card carries none. | |||
| data.listings[].currency | string | No | Currency is the ISO-4217 currency code Price is denominated in. | |||
| data.listings[].id | string | No | ID is Chrono24's numeric listing id, parsed from the URL. | |||
| data.listings[].image_url | string | No | ImageURL is the listing's primary photo. | |||
| data.listings[].location | string | No | Location is the seller's country, e.g. "US". | |||
| data.listings[].price | number | No | Price is the numeric asking price. Zero when Chrono24 shows "Price on request" instead of a number. | |||
| data.listings[].price_text | string | No | PriceText is Chrono24's own formatted price string, kept alongside Price/Currency for a "price on request" or other non-numeric case. | |||
| data.listings[].seller_type | string | No | SellerType is Chrono24's own seller-badge text, e.g. "Private Seller" or a dealer's shop name. | |||
| data.listings[].subtitle | string | No | Subtitle is the listing's own free-text title line, e.g. "36 Rolex Datejust". | |||
| data.listings[].title | string | No | Title is the listing's brand + model line, e.g. "Rolex Datejust". | |||
| data.listings[].url | string | No | URL is the absolute listing-detail page URL, usable as the `path` input to Chrono24Listing. | |||
| data.name | string | No | ||||
| data.rating | number | No | Rating is Chrono24's own average buyer rating out of 5. Zero when the dealer has no reviews yet. | |||
| data.review_count | integer | No | ReviewCount is the number of buyer reviews Rating is based on. | |||
| data.seller_badge | string | No | SellerBadge is Chrono24's own trust badge for the dealer, e.g. "Trusted Seller". Empty when Chrono24 shows none. | |||
| data.slug | string | No | ||||
| data.url | string | No | ||||
| data.watches_sold | integer | No | WatchesSold is Chrono24's own reported lifetime sold-watch count. | |||
| 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?slug=thetimelords" \
-H "x-api-key: $CRAWLORA_API_KEY"