curl --request POST \
--url https://api-v2.watchcollect.com/v2/market/facets \
--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/facets', 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/facets"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"brands": [
{
"value": "<string>",
"count": 123
}
],
"conditions": [
{
"value": "<string>",
"count": 123
}
],
"years": [
{
"value": 123,
"count": 123
}
],
"dial_types": [
{
"value": "<string>",
"count": 123
}
],
"variants": [
{
"value": "<string>",
"count": 123
}
],
"full_set_status": [
{
"value": "<string>",
"count": 123
}
],
"country_codes": [
{
"value": "<string>",
"count": 123
}
],
"groups": [
{
"value": "<string>",
"count": 123
}
],
"price_range": {
"currency": "EUR",
"min_minor": 123,
"max_minor": 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"
}
}Get cross-filtered market facets
Returns facet buckets for the effective listing filter. Each facet omits its own field so the UI can show available alternatives.
curl --request POST \
--url https://api-v2.watchcollect.com/v2/market/facets \
--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/facets', 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/facets"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"brands": [
{
"value": "<string>",
"count": 123
}
],
"conditions": [
{
"value": "<string>",
"count": 123
}
],
"years": [
{
"value": 123,
"count": 123
}
],
"dial_types": [
{
"value": "<string>",
"count": 123
}
],
"variants": [
{
"value": "<string>",
"count": 123
}
],
"full_set_status": [
{
"value": "<string>",
"count": 123
}
],
"country_codes": [
{
"value": "<string>",
"count": 123
}
],
"groups": [
{
"value": "<string>",
"count": 123
}
],
"price_range": {
"currency": "EUR",
"min_minor": 123,
"max_minor": 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"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Reference endpoint only. Case-insensitive substring of the reference code, with spaces removed. Exact references rank first. Does not filter listing/message text or change facet counts.
Saved view filters are combined with request filters using AND semantics.
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
The current implementation applies the first sort item and falls back to newest listing activity.
Show child attributes
Show child attributes
1 <= x <= 2003"USD"
Optional expensive additions. Use extraction_context only on screens that render classification evidence; default listing cards omit it.
summary, facets, extraction_context, filter_options, reference_facets On the summary route, omit price aggregates and return only total and per-side counts for latency-sensitive headers.
counts_only Response
Cross-filtered market facets.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes