API reference
Sales
List sales
/v1/salesWhat's sold across your shops, newest first: who bought it, where it ships, and what you get once the money's released.
Query
status"paid" | "shipped" | "delivered" | "completed" | "refunded" | "cancelled"paidmeans it's waiting for you to ship.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/sales?status=paid \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "list",
"data": [
{
"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"
},
"buyer": {
"name": "Jess"
},
"ship_to": {
"name": "Jess Park",
"address": "12 Elm St, Portland, OR 97201",
"country": "United States"
},
"payout": {
"provider": "paypal",
"platform_fee": 17,
"paypal_fee": 6.86,
"seller_net": 164.14,
"released_at": null
},
"paid_at": "2026-10-02T18:30:00.000Z",
"shipped_at": null,
"delivered_at": null,
"completed_at": null
}
],
"total": 1,
"has_more": false
}Get a sale
/v1/sales/:idPath
idstringrequired- The id.
curl https://api.resell.store/v1/sales/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"
},
"buyer": {
"name": "Jess"
},
"ship_to": {
"name": "Jess Park",
"address": "12 Elm St, Portland, OR 97201",
"country": "United States"
},
"payout": {
"provider": "paypal",
"platform_fee": 17,
"paypal_fee": 6.86,
"seller_net": 164.14,
"released_at": null
},
"paid_at": "2026-10-02T18:30:00.000Z",
"shipped_at": null,
"delivered_at": null,
"completed_at": null
}Mark shipped
/v1/sales/:id/shipSays it's in the post, with a tracking number if you have one. The buyer gets an email with the tracking link. The money is released when they confirm it arrived.
Path
idstringrequired- The id.
Body
tracking_numberstring
curl https://api.resell.store/v1/sales/a71c…/ship \
-H "Authorization: Bearer $RESELL_KEY" \
-d tracking_number=9400111899223197428490{
"object": "order",
"id": "a71c…",
"status": "shipped",
"item": 170,
"shipping": 18,
"total": 188,
"delivery": "tracked",
"tracking_number": "9400111899223197428490",
"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"
},
"buyer": {
"name": "Jess"
},
"ship_to": {
"name": "Jess Park",
"address": "12 Elm St, Portland, OR 97201",
"country": "United States"
},
"payout": {
"provider": "paypal",
"platform_fee": 17,
"paypal_fee": 6.86,
"seller_net": 164.14,
"released_at": null
},
"paid_at": "2026-10-02T18:30:00.000Z",
"shipped_at": "2026-10-03T15:00:00.000Z",
"delivered_at": null,
"completed_at": null
}Cancel a sale you can't send
/v1/sales/:id/cancelBefore it ships. The buyer gets everything back and the listing goes back on sale. Needs a full API key.
Path
idstringrequired- The id.
curl -X POST https://api.resell.store/v1/sales/a71c…/cancel \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "problem",
"order": "a71c…",
"order_status": "cancelled",
"refunded": 188,
"problem": null
}Get the problem on a sale
/v1/sales/:id/problemPath
idstringrequired- The id.
curl https://api.resell.store/v1/sales/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"
}
]
}
}Refund for a problem
/v1/sales/:id/problem/refundWith amount, offers that much back for the buyer to take or leave. Without it, refunds everything now. Needs a full API key.
Path
idstringrequired- The id.
Body
amountnumber- Dollars to offer back. Leave out to refund in full.
notestring
curl https://api.resell.store/v1/sales/a71c…/problem/refund \
-H "Authorization: Bearer $RESELL_KEY" \
-d amount=40 \
-d note="Sorry about the lid."{
"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": 40,
"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/sales/:id/problem/replyPath
idstringrequired- The id.
Body
bodystringrequired
curl https://api.resell.store/v1/sales/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/sales/: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/sales/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"
}
]
}
}List reviews of your shops
/v1/reviewsEvery review on your shops, newest first, including private ones (only you see those) and any resell.store took down (hidden).
Query
shopstring- A shop's slug, to list just that one.
limitintegerdefault 25offsetintegerdefault 0
curl https://api.resell.store/v1/reviews \
-H "Authorization: Bearer $RESELL_KEY"{
"object": "list",
"data": [
{
"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
}
],
"total": 1,
"has_more": false
}Reply to a review
/v1/reviews/:id/replyAnswer a review on one of your shops. It shows under the review. There's one reply per review; sending again changes it.
Path
idstringrequired- The id.
Body
bodystringrequired- Your reply, up to 1,000 characters.
curl https://api.resell.store/v1/reviews/5b2e…/reply \
-H "Authorization: Bearer $RESELL_KEY" \
-d body="Thank you, Priya! Enjoy it."{
"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
}