POST
/
v2
/
market
/
listings
/
search
Search projected market listings
curl --request POST \
  --url https://api-v2.watchcollect.com/v2/market/listings/search \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{}'
{
  "items": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "classified_watch_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "classification_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "watch_index": 123,
      "full_set_status": [],
      "sender": {
        "contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "phone_number": "<string>",
        "lid": "<string>",
        "display_name": "<string>",
        "country_prefix": "<string>"
      },
      "source": {
        "canonical_message_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "message_timestamp_ms": 123,
        "group_ids": [
          "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        ],
        "group_names": [
          "<string>"
        ],
        "occurrence_count": 123,
        "first_seen_at_ms": 123,
        "last_seen_at_ms": 123,
        "has_media": true,
        "is_duplicate": true,
        "is_hidden": true,
        "is_revoked": true,
        "message_text": "<string>",
        "media_asset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "media_url": "<string>"
      },
      "created_at_ms": 123,
      "updated_at_ms": 123,
      "brand": "<string>",
      "model": "<string>",
      "reference": "<string>",
      "year": 123,
      "price": {
        "amount_minor": 123,
        "currency": "<string>"
      },
      "display_price": {
        "amount_minor": 123,
        "currency": "<string>"
      },
      "price_eur_minor": 123,
      "dial_type": "<string>",
      "variant": "<string>",
      "price_indicator": {
        "comparable_count": 123,
        "median_price_eur_minor": 123,
        "delta_eur_minor": 123,
        "delta_percent": 123
      },
      "extraction_context": {
        "candidate_id": "<string>",
        "raw_text": "<string>",
        "source_lines": [
          123
        ],
        "source_line_start": 123,
        "source_line_end": 123,
        "intent": "<string>",
        "confidence": 123,
        "field_sources": {},
        "inherited_context": {},
        "global_context": {
          "intent": "<string>",
          "currency": "<string>",
          "location": "<string>",
          "price_type": "<string>",
          "availability": "<string>",
          "trade_allowed": true,
          "default_condition": "<string>",
          "default_set": "<string>"
        },
        "warnings": [
          "<string>"
        ]
      }
    }
  ],
  "has_more": true,
  "next_cursor": "<string>",
  "summary": {
    "total": 123,
    "by_side": {
      "for_sale": 42,
      "want_to_buy": 7
    },
    "min_price_eur_minor": 123,
    "max_price_eur_minor": 123,
    "avg_price_eur_minor": 123,
    "median_price_eur_minor": 123,
    "latest_timestamp_ms": 123
  },
  "facets": {
    "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
    }
  },
  "effective_filter": {}
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
view_id
string<uuid>

Saved view filters are combined with request filters using AND semantics.

filters
object

Flexible market filter grammar. Documented fields are typed; additional fields are tolerated for forward-compatible frontend experiments and ignored until implemented.

sort
object[]

The current implementation applies the first sort item and falls back to newest listing activity.

page_size
integer
default:50
Required range: 1 <= x <= 200
cursor
string
display_currency
string
Required string length: 3
Example:

"USD"

include
enum<string>[]
Available options:
summary,
facets

Response

Cursor page of market listings.

items
object[]
required
has_more
boolean
required
next_cursor
string | null
summary
object
facets
object
effective_filter
object

Server-normalized effective filter envelope returned for debugging saved-view and request filter composition.