curl --request POST \
--url https://api-v2.watchcollect.com/v2/market/facets/search \
--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/search', 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/search"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"items": [
{
"value": "<string>",
"count": 123
}
],
"has_more": true,
"next_cursor": "<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"
}
}Search paginated market filter options
Searches the full eligible logical listing set in the database before grouping and pagination. Omits only the edited inline facet; saved-view scope, other filters and access remain enforced.
curl --request POST \
--url https://api-v2.watchcollect.com/v2/market/facets/search \
--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/search', 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/search"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"items": [
{
"value": "<string>",
"count": 123
}
],
"has_more": true,
"next_cursor": "<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.
Body
brand, condition, dial_type, variant, full_set_status, country_codes 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 Literal case-insensitive option substring, applied in the database before pagination. Independent of listing text search.
Country calling codes or canonical condition keys matching a translated catalogue label. Combined with query using OR; all active scope filters still apply in the database.
250