API reference

Messages

Conversations between buyers and shops.

List conversations

GET/v1/threads
Needs a key with read

Conversations with buyers across your shops (role=seller, the default) or with shops you've written to (role=buyer), most recent first.

Query

role"seller" | "buyer"default "seller"
unreadboolean
Only conversations waiting on you.
limitintegerdefault 25
How many to return, 1 to 100. Default 25.
offsetintegerdefault 0
How many to skip, for the next page.
Request
curl https://api.resell.store/v1/threads?unread=true \
  -H "Authorization: Bearer $RESELL_KEY"
Response
{
  "object": "list",
  "data": [
    {
      "object": "thread",
      "id": "t_91c…",
      "with": "Jess",
      "shop": {
        "slug": "maya",
        "name": "Maya's closet"
      },
      "listing": {
        "id": "8d1e6c2a-…",
        "title": "Yellow Le Creuset dutch oven, 5.5 qt",
        "photo": "https://files.resell.store/…",
        "url": "https://maya.resell.store/yellow-le-creuset-dutch-oven-5-5-qt"
      },
      "preview": "Is the lid included?",
      "last_from": "them",
      "unread": true,
      "needs_you": false,
      "last_message_at": "2026-10-02T17:42:00.000Z"
    }
  ],
  "total": 1,
  "has_more": false
}

Read a conversation

GET/v1/threads/:id
Needs a key with read

The whole conversation, oldest message first. Reading it here doesn't mark it read; POST /threads/:id/read does.

Path

idstringrequired
The id.
Request
curl https://api.resell.store/v1/threads/t_91c… \
  -H "Authorization: Bearer $RESELL_KEY"
Response
{
  "object": "thread",
  "id": "t_91c…",
  "with": "Jess",
  "shop": {
    "slug": "maya",
    "name": "Maya's closet"
  },
  "listing": {
    "id": "8d1e6c2a-…",
    "title": "Yellow Le Creuset dutch oven, 5.5 qt",
    "photo": "https://files.resell.store/…",
    "url": "https://maya.resell.store/yellow-le-creuset-dutch-oven-5-5-qt"
  },
  "preview": "Is the lid included?",
  "last_from": "them",
  "unread": true,
  "needs_you": false,
  "last_message_at": "2026-10-02T17:42:00.000Z",
  "role": "seller",
  "messages": [
    {
      "id": "m_1",
      "from": "them",
      "by_agent": false,
      "body": "Hi! Is the lid included?",
      "created_at": "2026-10-02T17:42:00.000Z"
    },
    {
      "id": "m_2",
      "from": "you",
      "by_agent": false,
      "body": "It is, and it fits snugly.",
      "created_at": "2026-10-02T17:50:00.000Z"
    }
  ]
}

Reply

POST/v1/threads/:id/messages
Needs a key with messages

Sends a message in a conversation, from whichever side you're on. Sending also marks it read for you.

Path

idstringrequired
The id.

Body

bodystringrequired
Request
curl https://api.resell.store/v1/threads/t_91c…/messages \
  -H "Authorization: Bearer $RESELL_KEY" \
  -d body="It is, and it fits snugly."
Response
{
  "id": "m_2",
  "from": "you",
  "by_agent": false,
  "body": "It is, and it fits snugly.",
  "created_at": "2026-10-02T17:50:00.000Z"
}

Mark read

POST/v1/threads/:id/read
Needs a key with messages

Path

idstringrequired
The id.
Request
curl -X POST https://api.resell.store/v1/threads/t_91c…/read \
  -H "Authorization: Bearer $RESELL_KEY"
Response
{
  "object": "thread",
  "id": "t_91c…",
  "with": "Jess",
  "shop": {
    "slug": "maya",
    "name": "Maya's closet"
  },
  "listing": {
    "id": "8d1e6c2a-…",
    "title": "Yellow Le Creuset dutch oven, 5.5 qt",
    "photo": "https://files.resell.store/…",
    "url": "https://maya.resell.store/yellow-le-creuset-dutch-oven-5-5-qt"
  },
  "preview": "Is the lid included?",
  "last_from": "them",
  "unread": false,
  "needs_you": false,
  "last_message_at": "2026-10-02T17:42:00.000Z"
}

Message a shop

POST/v1/threads
Needs a key with buying

Writes to a shop as a buyer, about one of its listings or in general. If you've written to them about it before, the message goes in that conversation.

Body

shopstringrequired
The shop's slug.
listingstring
A listing id, if it's about one.
bodystringrequired
Request
curl https://api.resell.store/v1/threads \
  -H "Authorization: Bearer $RESELL_KEY" \
  -d shop=maya \
  -d listing="8d1e6c2a-…" \
  -d body="Hi! Is the lid included?"
Response
{
  "object": "thread",
  "id": "t_91c…",
  "with": "Maya's closet",
  "shop": {
    "slug": "maya",
    "name": "Maya's closet"
  },
  "listing": {
    "id": "8d1e6c2a-…",
    "title": "Yellow Le Creuset dutch oven, 5.5 qt",
    "photo": "https://files.resell.store/…",
    "url": "https://maya.resell.store/yellow-le-creuset-dutch-oven-5-5-qt"
  },
  "preview": "Is the lid included?",
  "last_from": "you",
  "unread": false,
  "needs_you": false,
  "last_message_at": "2026-10-02T17:42:00.000Z",
  "role": "buyer",
  "messages": []
}