curl --request POST \
--url https://api-v2.watchcollect.com/v2/market/brands/rolex/official-vs-market \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api-v2.watchcollect.com/v2/market/brands/rolex/official-vs-market', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-v2.watchcollect.com/v2/market/brands/rolex/official-vs-market"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"brand": "<string>",
"total": 123,
"calculation_version": "official-vs-market.v2",
"official_price_basis": "net_eur_ex_vat",
"official_prices_are_stale": true,
"items": [
{
"brand": "<string>",
"official": {
"reference": "<string>",
"reference_normalized": "<string>",
"status": "available",
"configuration_count": 123,
"collection": "<string>",
"model": "<string>",
"market_reference": "<string>",
"official_url": "<string>",
"official_image_url": "<string>",
"price": {
"amount_minor": 123,
"currency": "<string>"
},
"locale": "<string>",
"scraped_at_ms": 123,
"configuration_key": "<string>",
"configuration_label": "<string>",
"dial": "<string>",
"bezel": "<string>",
"bracelet": "<string>"
},
"market_listing_count": 123,
"mapping_status": "none",
"row_id": "<string>",
"market_average": {
"amount_minor": 123,
"currency": "<string>"
},
"market_profit_amount": {
"amount_minor": 123,
"currency": "<string>"
},
"market_profit_percent": 123,
"effective_sale_price": {
"amount_minor": 123,
"currency": "<string>"
},
"profit_amount": {
"amount_minor": 123,
"currency": "<string>"
},
"profit_percent": 123,
"sample_media_asset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sample_media_url": "<string>",
"applied_mapping_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"effective_filter": {}
}
],
"official_snapshot_at_ms": 123
}{
"error": {
"code": "invalid_payload",
"message": "event is required",
"request_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7001"
}
}{
"error": {
"code": "invalid_payload",
"message": "event is required",
"request_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7001"
}
}{
"error": {
"code": "invalid_payload",
"message": "event is required",
"request_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7001"
}
}{
"error": {
"code": "invalid_payload",
"message": "event is required",
"request_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7001"
}
}Compare official Rolex list prices with market averages
Returns official Rolex reference/configuration prices joined with market averages from projected listings. No external Rolex calls are made in the API request path.
curl --request POST \
--url https://api-v2.watchcollect.com/v2/market/brands/rolex/official-vs-market \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api-v2.watchcollect.com/v2/market/brands/rolex/official-vs-market', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-v2.watchcollect.com/v2/market/brands/rolex/official-vs-market"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"brand": "<string>",
"total": 123,
"calculation_version": "official-vs-market.v2",
"official_price_basis": "net_eur_ex_vat",
"official_prices_are_stale": true,
"items": [
{
"brand": "<string>",
"official": {
"reference": "<string>",
"reference_normalized": "<string>",
"status": "available",
"configuration_count": 123,
"collection": "<string>",
"model": "<string>",
"market_reference": "<string>",
"official_url": "<string>",
"official_image_url": "<string>",
"price": {
"amount_minor": 123,
"currency": "<string>"
},
"locale": "<string>",
"scraped_at_ms": 123,
"configuration_key": "<string>",
"configuration_label": "<string>",
"dial": "<string>",
"bezel": "<string>",
"bracelet": "<string>"
},
"market_listing_count": 123,
"mapping_status": "none",
"row_id": "<string>",
"market_average": {
"amount_minor": 123,
"currency": "<string>"
},
"market_profit_amount": {
"amount_minor": 123,
"currency": "<string>"
},
"market_profit_percent": 123,
"effective_sale_price": {
"amount_minor": 123,
"currency": "<string>"
},
"profit_amount": {
"amount_minor": 123,
"currency": "<string>"
},
"profit_percent": 123,
"sample_media_asset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sample_media_url": "<string>",
"applied_mapping_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"effective_filter": {}
}
],
"official_snapshot_at_ms": 123
}{
"error": {
"code": "invalid_payload",
"message": "event is required",
"request_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7001"
}
}{
"error": {
"code": "invalid_payload",
"message": "event is required",
"request_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7001"
}
}{
"error": {
"code": "invalid_payload",
"message": "event is required",
"request_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7001"
}
}{
"error": {
"code": "invalid_payload",
"message": "event is required",
"request_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7001"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Optional official references to return. If omitted, the endpoint returns the complete active official catalog for the brand.
10000Show child attributes
Show child attributes
Saved view filters are combined with calculator filters and per-reference brand/reference filters.
Flexible market filter grammar. Documented fields are typed; additional fields are tolerated for forward-compatible frontend experiments and ignored until implemented.
Show child attributes
Show child attributes
profit_desc, profit_asc, uplift_desc, uplift_asc, profit-desc, profit-asc, uplift-desc, uplift-asc 3"EUR"
Optional explicit response cap. If omitted, the complete active official catalog is returned.
1 <= x <= 10000Response
Official Rolex prices joined with market aggregates.
"official-vs-market.v2"
net_eur_ex_vat Show child attributes
Show child attributes