curl --request GET \
--url https://{host}/v1/sellers/{sellerId}/watches/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/sellers/{sellerId}/watches/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/v1/sellers/{sellerId}/watches/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}import requests
url = "https://{host}/v1/sellers/{sellerId}/watches/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"type": "watches",
"id": "91827",
"attributes": {
"reference": "116610LN",
"name": "Rolex Submariner Date",
"description": "Full set, bought new in 2019 and worn sparingly.",
"translatedDescription": "Full set, bought new in 2019 and worn sparingly.",
"externalIdentifier": "PIM-10294",
"dealerProductCode": "RLX-116610LN-02",
"price": 1295000,
"shippingCosts": 0,
"priceOnRequest": false,
"applicationFee": 38850,
"box": true,
"warranty": true,
"papers": true,
"status": "available",
"reviewNote": null,
"reserved": false,
"feedManaged": false,
"minimumProposal": 1165500,
"agreedPrice": null,
"favorited": false,
"viewerOrder": null,
"webUrl": "https://wristler.eu/nl/horloges/91827-rolex-submariner-date-116610ln",
"purchasable": true,
"availabilityOnRequest": false,
"productSafety": null,
"manufacturerWarranty": null,
"referencedWatchUuid": null,
"specifications": {
"AVAILABILITY": "READY_TO_SHIP_IN_1_3_DAYS",
"STATE": "PRE_OWNED",
"CONDITION": "VERY_GOOD",
"YEAR_OF_PRODUCTION": "2019",
"CASE_MATERIAL": "STEEL"
},
"specificationLabels": {
"AVAILABILITY": {
"label": "Availability",
"value": "Ready to ship in 1-3 days"
},
"STATE": {
"label": "State",
"value": "Pre-owned"
},
"CONDITION": {
"label": "Condition",
"value": "Very good"
},
"YEAR_OF_PRODUCTION": {
"label": "Year of production",
"value": "2019"
},
"CASE_MATERIAL": {
"label": "Case material",
"value": "Steel"
}
},
"createdAt": "2026-08-04T08:21:00.000000Z",
"updatedAt": "2026-09-19T12:02:11.000000Z"
},
"relationships": {
"seller": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/watches/91827/seller"
}
},
"images": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/watches/91827/images",
"self": "https://api.wristler.eu/v1/sellers/42/watches/91827/relationships/images"
}
},
"watchModel": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/watches/91827/watch-model"
}
}
},
"links": {
"self": "https://api.wristler.eu/v1/sellers/42/watches/91827"
}
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}Show listing
Scope: watches:read
The seller’s own copy, whatever its state. A listing that is not theirs answers
404 even when it is in the public catalogue.
curl --request GET \
--url https://{host}/v1/sellers/{sellerId}/watches/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/sellers/{sellerId}/watches/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/v1/sellers/{sellerId}/watches/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}import requests
url = "https://{host}/v1/sellers/{sellerId}/watches/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"type": "watches",
"id": "91827",
"attributes": {
"reference": "116610LN",
"name": "Rolex Submariner Date",
"description": "Full set, bought new in 2019 and worn sparingly.",
"translatedDescription": "Full set, bought new in 2019 and worn sparingly.",
"externalIdentifier": "PIM-10294",
"dealerProductCode": "RLX-116610LN-02",
"price": 1295000,
"shippingCosts": 0,
"priceOnRequest": false,
"applicationFee": 38850,
"box": true,
"warranty": true,
"papers": true,
"status": "available",
"reviewNote": null,
"reserved": false,
"feedManaged": false,
"minimumProposal": 1165500,
"agreedPrice": null,
"favorited": false,
"viewerOrder": null,
"webUrl": "https://wristler.eu/nl/horloges/91827-rolex-submariner-date-116610ln",
"purchasable": true,
"availabilityOnRequest": false,
"productSafety": null,
"manufacturerWarranty": null,
"referencedWatchUuid": null,
"specifications": {
"AVAILABILITY": "READY_TO_SHIP_IN_1_3_DAYS",
"STATE": "PRE_OWNED",
"CONDITION": "VERY_GOOD",
"YEAR_OF_PRODUCTION": "2019",
"CASE_MATERIAL": "STEEL"
},
"specificationLabels": {
"AVAILABILITY": {
"label": "Availability",
"value": "Ready to ship in 1-3 days"
},
"STATE": {
"label": "State",
"value": "Pre-owned"
},
"CONDITION": {
"label": "Condition",
"value": "Very good"
},
"YEAR_OF_PRODUCTION": {
"label": "Year of production",
"value": "2019"
},
"CASE_MATERIAL": {
"label": "Case material",
"value": "Steel"
}
},
"createdAt": "2026-08-04T08:21:00.000000Z",
"updatedAt": "2026-09-19T12:02:11.000000Z"
},
"relationships": {
"seller": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/watches/91827/seller"
}
},
"images": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/watches/91827/images",
"self": "https://api.wristler.eu/v1/sellers/42/watches/91827/relationships/images"
}
},
"watchModel": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/watches/91827/watch-model"
}
}
},
"links": {
"self": "https://api.wristler.eu/v1/sellers/42/watches/91827"
}
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}Authorizations
Headers
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.
en, nl, de, es, fr, it, pt, fi, pl Query Parameters
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.
seller, watchModel, images, cover, favorite