API reference
Buying
List your orders
/v1/ordersThings you've bought, newest first.
Query
status"paid" | "shipped" | "delivered" | "completed" | "refunded" | "cancelled"limitintegerdefault 25- How many to return, 1 to 100. Default 25.
offsetintegerdefault 0- How many to skip, for the next page.
curl https://api.resell.store/v1/orders \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "list",
"data": [
{
"object": "order",
"id": "a71c…",
"status": "shipped",
"item": 170,
"shipping": 18,
"total": 188,
"delivery": "tracked",
"tracking_number": null,
"offer": "5b0f…",
"listing": {
"id": "8d1e6c2a-…",
"title": "Yellow Le Creuset dutch oven, 5.5 qt",
"price": 185,
"status": "live",
"photo": "https://files.resell.store/…",
"url": "https://maya.resell.store/yellow-le-creuset-dutch-oven-5-5-qt"
},
"shop": {
"slug": "maya",
"name": "Maya's closet"
},
"ship_to": {
"name": "Jess Park",
"address": "12 Elm St, Portland, OR 97201",
"country": "United States"
},
"paid_at": "2026-10-02T18:30:00.000Z",
"shipped_at": null,
"delivered_at": null,
"completed_at": null
}
],
"total": 1,
"has_more": false
}Get an order
/v1/orders/:idPath
idstringrequired- The id.
curl https://api.resell.store/v1/orders/a71c… \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "order",
"id": "a71c…",
"status": "paid",
"item": 170,
"shipping": 18,
"total": 188,
"delivery": "tracked",
"tracking_number": null,
"offer": "5b0f…",
"listing": {
"id": "8d1e6c2a-…",
"title": "Yellow Le Creuset dutch oven, 5.5 qt",
"price": 185,
"status": "live",
"photo": "https://files.resell.store/…",
"url": "https://maya.resell.store/yellow-le-creuset-dutch-oven-5-5-qt"
},
"shop": {
"slug": "maya",
"name": "Maya's closet"
},
"ship_to": {
"name": "Jess Park",
"address": "12 Elm St, Portland, OR 97201",
"country": "United States"
},
"paid_at": "2026-10-02T18:30:00.000Z",
"shipped_at": null,
"delivered_at": null,
"completed_at": null
}It arrived, all good
/v1/orders/:id/confirmConfirms the item arrived as described. This releases the held money to the seller, so only call it once you have it.
Path
idstringrequired- The id.
curl -X POST https://api.resell.store/v1/orders/a71c…/confirm \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "order",
"id": "a71c…",
"status": "completed",
"item": 170,
"shipping": 18,
"total": 188,
"delivery": "tracked",
"tracking_number": null,
"offer": "5b0f…",
"listing": {
"id": "8d1e6c2a-…",
"title": "Yellow Le Creuset dutch oven, 5.5 qt",
"price": 185,
"status": "live",
"photo": "https://files.resell.store/…",
"url": "https://maya.resell.store/yellow-le-creuset-dutch-oven-5-5-qt"
},
"shop": {
"slug": "maya",
"name": "Maya's closet"
},
"ship_to": {
"name": "Jess Park",
"address": "12 Elm St, Portland, OR 97201",
"country": "United States"
},
"paid_at": "2026-10-02T18:30:00.000Z",
"shipped_at": null,
"delivered_at": null,
"completed_at": null
}Get a checkout link
/v1/checkoutPaying always happens with a person at the wheel: this gives you the checkout page for a listing (at an accepted offer's price, if you have one) to open in a browser, where the buyer pays with PayPal. Nothing is charged by this call.
Body
listingstringrequired- The listing id.
curl https://api.resell.store/v1/checkout \
-H "Authorization: Bearer $RESELL_KEY" \
-d listing="8d1e6c2a-…"{
"object": "checkout_link",
"listing": "8d1e6c2a-…",
"price": 185,
"url": "https://resell.store/checkout/8d1e6c2a-…"
}Cancel an order that hasn't shipped
/v1/orders/:id/cancelOnce the ship-by date (3 days after paying) has passed without it shipping, the buyer can call it off and gets everything back.
Path
idstringrequired- The id.
curl -X POST https://api.resell.store/v1/orders/a71c…/cancel \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "problem",
"order": "a71c…",
"order_status": "cancelled",
"refunded": 188,
"problem": null
}Get the problem on an order
/v1/orders/:id/problemThe latest problem reported on an order, with everything both sides said. problem is null if there's never been one.
Path
idstringrequired- The id.
curl https://api.resell.store/v1/orders/a71c…/problem \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "problem",
"order": "a71c…",
"order_status": "shipped",
"refunded": 0,
"problem": {
"id": "d3f0…",
"status": "open",
"source": "buyer",
"reason": "damaged",
"details": "The lid arrived chipped.",
"refund_offered": null,
"escalated_at": null,
"resolved_at": null,
"created_at": "2026-10-05T10:00:00.000Z",
"events": [
{
"side": "buyer",
"kind": "opened",
"body": "The lid arrived chipped.",
"amount": null,
"created_at": "2026-10-05T10:00:00.000Z"
}
]
}
}Report a problem
/v1/orders/:id/problemFor an order that's shipped. The seller is told, and the held money isn't released until it's sorted.
Path
idstringrequired- The id.
Body
reason"not_arrived" | "not_as_described" | "damaged" | "other"requireddetailsstringrequired- What's wrong, in the buyer's words. The seller reads this.
curl https://api.resell.store/v1/orders/a71c…/problem \
-H "Authorization: Bearer $RESELL_KEY" \
-d reason=damaged \
-d details="The lid arrived chipped."{
"object": "problem",
"order": "a71c…",
"order_status": "shipped",
"refunded": 0,
"problem": {
"id": "d3f0…",
"status": "open",
"source": "buyer",
"reason": "damaged",
"details": "The lid arrived chipped.",
"refund_offered": null,
"escalated_at": null,
"resolved_at": null,
"created_at": "2026-10-05T10:00:00.000Z",
"events": [
{
"side": "buyer",
"kind": "opened",
"body": "The lid arrived chipped.",
"amount": null,
"created_at": "2026-10-05T10:00:00.000Z"
}
]
}
}Answer a refund offer
/v1/orders/:id/problem/answerTake the part refund the seller offered (the rest goes to them and the order is done), or turn it down.
Path
idstringrequired- The id.
Body
acceptbooleanrequired
curl https://api.resell.store/v1/orders/a71c…/problem/answer \
-H "Authorization: Bearer $RESELL_KEY" \
-d accept=true{
"object": "problem",
"order": "a71c…",
"order_status": "completed",
"refunded": 40,
"problem": {
"id": "d3f0…",
"status": "open",
"source": "buyer",
"reason": "damaged",
"details": "The lid arrived chipped.",
"refund_offered": null,
"escalated_at": null,
"resolved_at": null,
"created_at": "2026-10-05T10:00:00.000Z",
"events": [
{
"side": "buyer",
"kind": "opened",
"body": "The lid arrived chipped.",
"amount": null,
"created_at": "2026-10-05T10:00:00.000Z"
}
]
}
}Say a problem is sorted
/v1/orders/:id/problem/closeCloses the problem without a refund. The order goes back to its usual timer and the seller is paid as normal.
Path
idstringrequired- The id.
curl -X POST https://api.resell.store/v1/orders/a71c…/problem/close \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "problem",
"order": "a71c…",
"order_status": "shipped",
"refunded": 0,
"problem": {
"id": "d3f0…",
"status": "closed",
"source": "buyer",
"reason": "damaged",
"details": "The lid arrived chipped.",
"refund_offered": null,
"escalated_at": null,
"resolved_at": null,
"created_at": "2026-10-05T10:00:00.000Z",
"events": [
{
"side": "buyer",
"kind": "opened",
"body": "The lid arrived chipped.",
"amount": null,
"created_at": "2026-10-05T10:00:00.000Z"
}
]
}
}Reply about a problem
/v1/orders/:id/problem/replyPath
idstringrequired- The id.
Body
bodystringrequired
curl https://api.resell.store/v1/orders/a71c…/problem/reply \
-H "Authorization: Bearer $RESELL_KEY" \
-d body="Could you send a photo?"{
"object": "problem",
"order": "a71c…",
"order_status": "shipped",
"refunded": 0,
"problem": {
"id": "d3f0…",
"status": "open",
"source": "buyer",
"reason": "damaged",
"details": "The lid arrived chipped.",
"refund_offered": null,
"escalated_at": null,
"resolved_at": null,
"created_at": "2026-10-05T10:00:00.000Z",
"events": [
{
"side": "buyer",
"kind": "opened",
"body": "The lid arrived chipped.",
"amount": null,
"created_at": "2026-10-05T10:00:00.000Z"
}
]
}
}Ask resell.store to step in
/v1/orders/:id/problem/escalateWe read both sides and decide. The money stays held until then.
Path
idstringrequired- The id.
Body
notestring
curl https://api.resell.store/v1/orders/a71c…/problem/escalate \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "problem",
"order": "a71c…",
"order_status": "shipped",
"refunded": 0,
"problem": {
"id": "d3f0…",
"status": "escalated",
"source": "buyer",
"reason": "damaged",
"details": "The lid arrived chipped.",
"refund_offered": null,
"escalated_at": null,
"resolved_at": null,
"created_at": "2026-10-05T10:00:00.000Z",
"events": [
{
"side": "buyer",
"kind": "opened",
"body": "The lid arrived chipped.",
"amount": null,
"created_at": "2026-10-05T10:00:00.000Z"
}
]
}
}Review an order
/v1/orders/:id/reviewOnce an order is done (the buyer said it's all good, or the check window closed), the buyer can give it 1 to 5 stars and a few words. One review per order. Set public to false to send it only to the seller.
Path
idstringrequired- The id.
Body
ratingintegerrequired- 1 to 5 stars.
bodystring- A few words, up to 1,000 characters. Optional.
publicboolean- Show it on the shop and the listing. Default true.
curl https://api.resell.store/v1/orders/a71c…/review \
-H "Authorization: Bearer $RESELL_KEY" \
-d rating=5 \
-d body="Exactly like the photos, and packed with a little note." \
-d public=true{
"object": "review",
"id": "5b2e…",
"rating": 5,
"body": "Exactly like the photos, and packed with a little note.",
"from": "Priya",
"created_at": "2026-10-05T10:00:00.000Z",
"reply": null,
"listing": {
"id": "8d1e6c2a-…",
"title": "Linen wrap dress",
"url": "https://maya.resell.store/linen-wrap-dress"
},
"shop": {
"slug": "maya",
"name": "Maya's closet"
},
"order": "a71c…",
"public": true,
"hidden": false
}Get your review of an order
/v1/orders/:id/reviewThe review the buyer left on an order, with the seller's reply. 404 if there isn't one yet.
Path
idstringrequired- The id.
curl https://api.resell.store/v1/orders/a71c…/review \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "review",
"id": "5b2e…",
"rating": 5,
"body": "Exactly like the photos, and packed with a little note.",
"from": "Priya",
"created_at": "2026-10-05T10:00:00.000Z",
"reply": {
"body": "Thank you, Priya! Enjoy it.",
"created_at": "2026-10-05T12:00:00.000Z"
},
"listing": {
"id": "8d1e6c2a-…",
"title": "Linen wrap dress",
"url": "https://maya.resell.store/linen-wrap-dress"
},
"shop": {
"slug": "maya",
"name": "Maya's closet"
},
"order": "a71c…",
"public": true,
"hidden": false
}