Skip to main content
GET
Search catalogue

Authorizations

Authorization
string
header
required

A bearer token obtained through one of the two flows below.

Headers

Accept-Language
enum<string>

The language to answer in: specificationLabels, translatedDescription, facet and label names, the content pages, and every other translated word in the answer. Read on every request, whatever the endpoint. One we do not have falls back to English rather than failing.

Available options:
en,
nl,
de,
es,
fr,
it,
pt,
fi,
pl

Query Parameters

page[after]
string

The cursor from the previous page's links.next. Do not build it yourself, and do not hold on to it: follow the link until there is no next.

page[limit]
integer
default:25

How many to return. Up to 50; more than that is refused rather than quietly trimmed. The same everywhere in this API.

Required range: 1 <= x <= 50
include
enum<string>

Related resources to return alongside. Combine them with commas — include=images,watchModel. Anything else is refused with 400 rather than ignored.

favorite is the viewer's own favorite of this listing, or null. Ask for it when you draw a heart that has to be able to turn itself off: removing a favorite needs its id, and without this a client has to fetch somebody's whole list to find one. favorited is the cheaper read when the heart is all you are drawing.

Available options:
seller,
watchModel,
images,
cover,
favorite
fields[watches]
string

Only these attributes, comma separated. Worth using on a full inventory walk: a listing carries a long description and a gallery, and a sync that only needs prices and stock does not want either.

sort
enum<string>

Leave it off for relevance, which is also where the words themselves are heard: "goedkoopste rolex" is a price sort with a brand filter. A sort you send wins over one the words implied.

year is a specification rather than a column, so only the index can sort by it: it works on a search (filter[q], or a facet filter) and nowhere else. On the plain catalogue list and on a seller's own inventory it is refused with 400 search_only_sort rather than ordering "1998" against "2010" as text. A search sorts by the first field only. updatedAt sorts the plain list; a search does not know it and keeps its own order.

Available options:
price,
-price,
year,
-year,
createdAt,
-createdAt,
updatedAt,
-updatedAt
filter[q]
string

Send it empty to draw a filter panel. filter[q]= with nothing after it is a search with no words: the whole catalogue, ranked, with meta.facets and their counts. Leaving the parameter off entirely, with no facet filter or filter[seller] either, gets the plain cursor-paged list instead, which carries no facets.

Words somebody typed. Parsed for a brand, a model, a size, a price ceiling and a sort before the rest is searched.

filter[reference]
string

The manufacturer's reference.

filter[seller]
string

One business's published listings — the shop page's question. Works alongside a search and alongside the facets, so "everything this shop has under €5,000" is one request. A business's id, not its name: two of them share a name.

filter[brand]
string[]

A facet from a previous answer, sent back. Every key under meta.facets works the same way — filter[attributes.dial][], filter[attributes.case_material][], and so on — and filter[price][min]/[max] take cents. A facet filter on its own makes the request a search, with meta.facets, as filter[q] does.

page[number]
integer
default:1

Which page of a search. Searching is numbered rather than cursored.

Required range: x >= 1
page[size]
integer
default:25

How many per page of a search. Up to 50.

Required range: 1 <= x <= 50

Response

A page of the catalogue.

data
object[]
required
included
object[]

Present when the answer is a page.

meta
object

page when the answer is a page: from, to, perPage and hasMore for a cursor (from and to are cursors, not numbers), or currentPage, from, lastPage, perPage, to and total for numbered pages. Some lists add their own beside it, such as statusCounts, unread or facets.