API reference

Shops

Your stores and their settings.

List your shops

GET/v1/shops
Needs a key with read

Every shop you own, oldest first, with how many listings are live, drafts and sold.

Request
curl https://api.resell.store/v1/shops \
  -H "Authorization: Bearer $RESELL_KEY"
Response
{
  "object": "list",
  "data": [
    {
      "object": "shop",
      "id": "c0a8…",
      "slug": "maya",
      "name": "Maya's closet",
      "about": "Clothes and kitchen things I don't use any more.",
      "category": "Clothes",
      "location": "Portland, OR",
      "tone": "lemon",
      "visibility": "public",
      "paused": false,
      "url": "https://maya.resell.store",
      "picture_url": null,
      "agent": {
        "answer_questions": true,
        "haggle": true,
        "lowest_percent": 15,
        "ask_hold": true
      },
      "counts": {
        "live": 12,
        "drafts": 2,
        "sold": 20
      },
      "created_at": "2026-09-03T17:20:00.000Z"
    }
  ],
  "total": 1,
  "has_more": false
}

Open a shop

POST/v1/shops
Needs a key with shops

Opens a new shop at {slug}.resell.store. Slugs are unique across resell.store.

Body

namestringrequired
slugstringrequired
The subdomain, e.g. "maya" for maya.resell.store.
categorystring
aboutstring
tone"lemon" | "mint" | "pink" | "leaf" | "blush"default "lemon"
visibility"public" | "link" | "private"default "public"
Request
curl https://api.resell.store/v1/shops \
  -H "Authorization: Bearer $RESELL_KEY" \
  -d name="Maya's kitchen" \
  -d slug=maya-kitchen \
  -d category=Home \
  -d visibility=public
Response
{
  "object": "shop",
  "id": "c0a8…",
  "slug": "maya-kitchen",
  "name": "Maya's kitchen",
  "about": "Clothes and kitchen things I don't use any more.",
  "category": "Clothes",
  "location": "Portland, OR",
  "tone": "lemon",
  "visibility": "public",
  "paused": false,
  "url": "https://maya-kitchen.resell.store",
  "picture_url": null,
  "agent": {
    "answer_questions": true,
    "haggle": true,
    "lowest_percent": 15,
    "ask_hold": true
  },
  "counts": {
    "live": 12,
    "drafts": 2,
    "sold": 20
  },
  "created_at": "2026-09-03T17:20:00.000Z"
}

Get a shop

GET/v1/shops/:slug
Needs a key with read

One of your shops by its slug, with this week's numbers.

Path

slugstringrequired
The shop's slug.
Request
curl https://api.resell.store/v1/shops/maya \
  -H "Authorization: Bearer $RESELL_KEY"
Response
{
  "object": "shop",
  "id": "c0a8…",
  "slug": "maya",
  "name": "Maya's closet",
  "about": "Clothes and kitchen things I don't use any more.",
  "category": "Clothes",
  "location": "Portland, OR",
  "tone": "lemon",
  "visibility": "public",
  "paused": false,
  "url": "https://maya.resell.store",
  "picture_url": null,
  "agent": {
    "answer_questions": true,
    "haggle": true,
    "lowest_percent": 15,
    "ask_hold": true
  },
  "counts": {
    "live": 12,
    "drafts": 2,
    "sold": 20
  },
  "created_at": "2026-09-03T17:20:00.000Z",
  "stats": {
    "views": 1606,
    "views_7d": 214,
    "followers": 105,
    "likes": 48,
    "shares": 9,
    "offers_waiting": 2
  }
}

Change a shop

PATCH/v1/shops/:slug
Needs a key with shops

Change any of the shop's settings. Send only what changes. A new slug moves the store to a new address.

Path

slugstringrequired
The shop's slug.

Body

namestring
Shown at the top of the store.
slugstring
The subdomain: {slug}.resell.store. Changing it moves the store.
aboutstring
A line or two about the shop.
categorystring
locationstring
Where things ship from, e.g. "Portland, OR".
tone"lemon" | "mint" | "pink" | "leaf" | "blush"
The shop's colour.
visibility"public" | "link" | "private"
public: listed on the marketplace. link: only people with the link. private: only you.
pausedboolean
Hides the shop and keeps everything.
answer_questionsboolean
Let the shop's agent answer buyers' questions.
haggleboolean
Let the shop's agent haggle on offers.
lowest_percentinteger
Lowest the agent will go, as % off the price.
ask_holdboolean
Ask for a deposit to hold an item.
Request
curl -X PATCH https://api.resell.store/v1/shops/maya \
  -H "Authorization: Bearer $RESELL_KEY" \
  -d about="Clothes, shoes and a few kitchen things." \
  -d haggle=true \
  -d lowest_percent=20
Response
{
  "object": "shop",
  "id": "c0a8…",
  "slug": "maya",
  "name": "Maya's closet",
  "about": "Clothes and kitchen things I don't use any more.",
  "category": "Clothes",
  "location": "Portland, OR",
  "tone": "lemon",
  "visibility": "public",
  "paused": false,
  "url": "https://maya.resell.store",
  "picture_url": null,
  "agent": {
    "answer_questions": true,
    "haggle": true,
    "lowest_percent": 15,
    "ask_hold": true
  },
  "counts": {
    "live": 12,
    "drafts": 2,
    "sold": 20
  },
  "created_at": "2026-09-03T17:20:00.000Z"
}

Delete a shop

DELETE/v1/shops/:slug
Needs a key with shops

Deletes the shop, its listings and their photos. This can't be undone. A shop with sales can't be deleted (the orders keep a record of it); pause it instead.

Path

slugstringrequired
The shop's slug.
Request
curl -X DELETE https://api.resell.store/v1/shops/maya-kitchen \
  -H "Authorization: Bearer $RESELL_KEY"
Response
{
  "object": "shop",
  "slug": "maya-kitchen",
  "deleted": true
}