Get the latest projected fair asking-price valuation
curl --request GET \
--url https://api-v2.watchcollect.com/v2/market/listings/{listing_id}/valuation \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-v2.watchcollect.com/v2/market/listings/{listing_id}/valuation', 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/listings/{listing_id}/valuation"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"listing_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "scored",
"as_of_ms": 123,
"currency": "<string>",
"fair_price_minor": 123,
"range": {
"low_minor": 123,
"high_minor": 123,
"target_coverage_bps": 8000
},
"confidence": "high",
"support": {
"effective_sample_size": 1,
"market_observation_count": 1,
"reference_country_count": 1,
"latest_observation_at_ms": 123,
"market_context_as_of_ms": 123
},
"explanations": [
{
"code": "<string>",
"direction": "up"
}
],
"model_version": "<string>",
"calibration_version": "<string>",
"feature_schema_version": 123,
"deal": {
"eligible": true,
"current_ask_minor": 123,
"discount_to_fair_bps": 123,
"conservative_saving_minor": 123,
"threshold": "below_q10",
"position": "below_range"
},
"input_summary": {
"brand": "<string>",
"reference": "<string>",
"year": 123,
"condition": "<string>",
"dial": "<string>",
"full_set": "<string>",
"missing_fields": [
"<string>"
],
"ask_excluded": true,
"market_context_as_of_ms": 123,
"reference_observation_count_7d": 1,
"reference_observation_count_30d": 1,
"reference_country_count_30d": 1
},
"decision_policy_version": "<string>"
}{
"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"
}
}Market — Valuations
Get the latest projected fair asking-price valuation
Reads only the current valuation projection. This query never enqueues scoring or calls the model service. The listing’s current ask is excluded from model input and is used only for the deterministic deal comparison after scoring.
GET
/
v2
/
market
/
listings
/
{listing_id}
/
valuation
Get the latest projected fair asking-price valuation
curl --request GET \
--url https://api-v2.watchcollect.com/v2/market/listings/{listing_id}/valuation \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-v2.watchcollect.com/v2/market/listings/{listing_id}/valuation', 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/listings/{listing_id}/valuation"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"listing_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "scored",
"as_of_ms": 123,
"currency": "<string>",
"fair_price_minor": 123,
"range": {
"low_minor": 123,
"high_minor": 123,
"target_coverage_bps": 8000
},
"confidence": "high",
"support": {
"effective_sample_size": 1,
"market_observation_count": 1,
"reference_country_count": 1,
"latest_observation_at_ms": 123,
"market_context_as_of_ms": 123
},
"explanations": [
{
"code": "<string>",
"direction": "up"
}
],
"model_version": "<string>",
"calibration_version": "<string>",
"feature_schema_version": 123,
"deal": {
"eligible": true,
"current_ask_minor": 123,
"discount_to_fair_bps": 123,
"conservative_saving_minor": 123,
"threshold": "below_q10",
"position": "below_range"
},
"input_summary": {
"brand": "<string>",
"reference": "<string>",
"year": 123,
"condition": "<string>",
"dial": "<string>",
"full_set": "<string>",
"missing_fields": [
"<string>"
],
"ask_excluded": true,
"market_context_as_of_ms": 123,
"reference_observation_count_7d": 1,
"reference_observation_count_30d": 1,
"reference_country_count_30d": 1
},
"decision_policy_version": "<string>"
}{
"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.
Path Parameters
Query Parameters
Required string length:
3Response
Projected valuation state for the visible listing.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Fair-price result returned either from the latest immutable projection (GET) or a fresh explicit v3 calculation (POST). Clients must never present abstained or stale values as current fair prices.
Available options:
scored Required string length:
3Show child attributes
Show child attributes
Available options:
high, medium, low Show child attributes
Show child attributes
Maximum array length:
5Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes