curl --request GET \
--url https://{host}/v1/me/orders \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/me/orders', 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/me/orders",
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/me/orders"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"type": "orders",
"id": "7741",
"attributes": {
"number": "202610100",
"status": "payment_received",
"paid": true,
"reservationLapsed": false,
"subtotal": 1295000,
"shipping": 0,
"serviceCosts": 2500,
"total": 1297500,
"applicationFee": null,
"payoutAmount": null,
"paymentMethod": "card",
"buyerEmail": null,
"buyerPhone": null,
"receiptUrl": "https://api.wristler.eu/v1/me/orders/7741/receipt",
"paymentMethods": null,
"reservedUntil": null,
"notes": "Graag vóór vrijdag",
"coupon": null,
"courier": null,
"trackingNumber": null,
"trackingUrl": null,
"paidAt": "2026-09-21T14:52:40.000000Z",
"shippedAt": null,
"cancelledAt": null,
"deliveredAt": null,
"timeline": [
{
"event": "placed",
"at": "2026-09-21T16:40:02+02:00"
},
{
"event": "awaiting_payment",
"at": "2026-09-21T16:41:15+02:00"
},
{
"event": "paid",
"at": "2026-09-21T16:52:40+02:00"
}
],
"paidOutAt": null,
"createdAt": "2026-09-21T14:40:02.000000Z",
"updatedAt": "2026-09-21T14:52:40.000000Z"
},
"relationships": {
"seller": {
"links": {
"related": "https://api.wristler.eu/v1/me/orders/7741/seller"
}
},
"items": {
"links": {
"related": "https://api.wristler.eu/v1/me/orders/7741/items"
}
},
"addresses": {
"links": {
"related": "https://api.wristler.eu/v1/me/orders/7741/addresses"
}
}
},
"links": {
"self": "https://api.wristler.eu/v1/me/orders/7741"
}
}
],
"meta": {
"page": {
"perPage": 25,
"hasMore": false
}
},
"links": {
"first": "https://api.wristler.eu/v1/me/orders?page%5Blimit%5D=25"
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}List orders
Scope: account:read
The other end of a seller’s book of work: the same orders, read by the person who placed them. Newest first.
What the seller’s side of the transaction says — what we charge them
(applicationFee), what they are paid (payoutAmount, which is subtotal + shipping - applicationFee) and when (paidOutAt) — comes back null here.
It is not a buyer’s business, and a number somebody has to interpret is worse
than no number. So do buyerEmail and buyerPhone, which are the shop’s way to
reach the buyer. notes and coupon are not among those: the buyer wrote them at
the checkout, so both sides read them. receiptUrl is
/v1/me/orders/{id}/receipt.
paymentMethods and reservedUntil are filled in only while there is still
something to pay, and only for the buyer.
timeline is every step the order went through, [{event, at}] in order: placed,
awaiting_payment, paid, shipped, delivered, completed, cancelled, expired
(cancelled because nobody paid in 48 hours), refunded,
and paid_out in the shop’s own timeline only. at is null for a step an order from
before the timeline only knows happened. shippedAt and cancelledAt are those two
moments as attributes. See the account guide, “The timeline”.
The filters are the shop’s: filter[status], filter[updatedSince] and filter[q].
There is no meta.statusCounts here — that is the shop’s tabs.
curl --request GET \
--url https://{host}/v1/me/orders \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/me/orders', 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/me/orders",
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/me/orders"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"type": "orders",
"id": "7741",
"attributes": {
"number": "202610100",
"status": "payment_received",
"paid": true,
"reservationLapsed": false,
"subtotal": 1295000,
"shipping": 0,
"serviceCosts": 2500,
"total": 1297500,
"applicationFee": null,
"payoutAmount": null,
"paymentMethod": "card",
"buyerEmail": null,
"buyerPhone": null,
"receiptUrl": "https://api.wristler.eu/v1/me/orders/7741/receipt",
"paymentMethods": null,
"reservedUntil": null,
"notes": "Graag vóór vrijdag",
"coupon": null,
"courier": null,
"trackingNumber": null,
"trackingUrl": null,
"paidAt": "2026-09-21T14:52:40.000000Z",
"shippedAt": null,
"cancelledAt": null,
"deliveredAt": null,
"timeline": [
{
"event": "placed",
"at": "2026-09-21T16:40:02+02:00"
},
{
"event": "awaiting_payment",
"at": "2026-09-21T16:41:15+02:00"
},
{
"event": "paid",
"at": "2026-09-21T16:52:40+02:00"
}
],
"paidOutAt": null,
"createdAt": "2026-09-21T14:40:02.000000Z",
"updatedAt": "2026-09-21T14:52:40.000000Z"
},
"relationships": {
"seller": {
"links": {
"related": "https://api.wristler.eu/v1/me/orders/7741/seller"
}
},
"items": {
"links": {
"related": "https://api.wristler.eu/v1/me/orders/7741/items"
}
},
"addresses": {
"links": {
"related": "https://api.wristler.eu/v1/me/orders/7741/addresses"
}
}
},
"links": {
"self": "https://api.wristler.eu/v1/me/orders/7741"
}
}
],
"meta": {
"page": {
"perPage": 25,
"hasMore": false
}
},
"links": {
"first": "https://api.wristler.eu/v1/me/orders?page%5Blimit%5D=25"
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}Authorizations
Query Parameters
Related resources to return alongside, comma separated: seller, items,
items.watch, items.watch.cover, addresses. items.watch is the one that
matters — it carries the externalIdentifier you gave the listing, which is how
you recognise your own product. Add items.watch.cover when you are drawing order
rows: one photo per order, rather than a request per row to find it.
There is deliberately no seller.watches: that would return every listing a
seller has, unpaged, in the middle of an order. Nor items.watch.images: a row
draws one photo, and a page of orders carrying every gallery is the payload
problem cover exists to avoid.
seller, items, items.watch, items.watch.cover, addresses Response
A page of orders.