API reference

Research

Look items up, get a price, and have the agent write the words.

Research runs in the background

It takes about a minute: it identifies the item, finds it in a catalog of 100M products, checks second-hand prices and suggests one. Start it, then check GET /listings/:id/research every few seconds until status is done.

Look it up

POST/v1/listings/:id/research
Needs a key with listings

Starts the research agent on a listing: it works out what the item is from the photo and words, finds it in the catalog, checks second-hand prices and suggests a price. It runs in the background for about a minute; poll GET /listings/:id/research. If a run is already going, you get that one.

Path

idstringrequired
The id.
Request
curl -X POST https://api.resell.store/v1/listings/8d1e6c2a-…/research \
  -H "Authorization: Bearer $RESELL_KEY"
Response
{
  "object": "research_run",
  "id": "run_…",
  "listing": "8d1e6c2a-…",
  "status": "running",
  "steps": []
}

Research results

GET/v1/listings/:id/research
Needs a key with read

The latest research run: each step's progress while it's running, then the findings when it's done: what it is, a price range and suggested price, facts, where the prices came from and questions worth answering.

Path

idstringrequired
The id.
Request
curl https://api.resell.store/v1/listings/8d1e6c2a-…/research \
  -H "Authorization: Bearer $RESELL_KEY"
Response
{
  "object": "research_run",
  "id": "run_…",
  "listing": "8d1e6c2a-…",
  "status": "done",
  "steps": [
    {
      "key": "identify",
      "state": "done",
      "title": "Look at your photo",
      "detail": "Le Creuset Signature, 5.5 qt"
    }
  ],
  "findings": {
    "identified": "Le Creuset Signature round dutch oven, 5.5 qt, Soleil",
    "category": "Kitchen",
    "confidence": "high",
    "price": {
      "min": 120,
      "max": 260,
      "band_low": 160,
      "band_high": 210,
      "suggested": 185
    },
    "facts": [
      {
        "label": "Retail price",
        "value": "$420"
      }
    ],
    "questions": [
      {
        "field": "condition",
        "ask": "Any chips or stains inside?"
      }
    ],
    "summary": "Sells quickly between $160 and $210 in this colour."
  }
}

Look up an item

POST/v1/research
Needs a key with listings

Shortcut for "what's this worth?": makes a draft from your words (and optional picture URLs) and starts the research agent on it. Poll GET /listings/:id/research with the listing id you get back. Delete the draft if you don't want to sell it.

Body

querystringrequired
What it is, e.g. "Le Creuset dutch oven 5.5 qt yellow".
shopstring
Which shop the draft goes in. Defaults to your first.
photo_urlsstring[]
Request
curl https://api.resell.store/v1/research \
  -H "Authorization: Bearer $RESELL_KEY" \
  -d query="Le Creuset dutch oven 5.5 qt yellow"
Response
{
  "object": "research_run",
  "id": "run_…",
  "listing": "8d1e6c2a-…",
  "status": "running",
  "steps": []
}

Write the words

POST/v1/listings/:id/words
Needs a key with listings

The writing agent writes (or rewrites) the title, one-liner, description and teaser from the listing's details and research, in a tone you pick, and puts them on the listing. instruction can be "shorter", "longer", "take" (a fresh take) or anything you'd say to a writer.

Path

idstringrequired
The id.

Body

tone"Friendly" | "Playful" | "Straight to the point" | "A bit luxe"default "Friendly"
instructionstring
Request
curl https://api.resell.store/v1/listings/8d1e6c2a-…/words \
  -H "Authorization: Bearer $RESELL_KEY" \
  -d tone="Straight to the point"
Response
{
  "object": "listing_words",
  "listing": "8d1e6c2a-…",
  "tone": "Straight to the point",
  "title": "Le Creuset dutch oven, 5.5 qt, Soleil yellow",
  "one_liner": "Used twice. No chips, no stains.",
  "description": "Signature round dutch oven in Soleil…",
  "teaser": "Used twice, like new"
}