← Resale IQ

Resale IQ API

Query real Vinted resale data across ES, FR, DE, IT and PT — sell-through rates, average asking prices at departure, buy-below prices and demand signals for 26 brands.

Included with Pro. Generate your key from your account page.

Authentication

Send your key as an X-Api-Key header on every request. Keys are per-account; generating a new one immediately revokes the previous key.

curl https://resaleiq.dev/api/model-signals \
  -H "X-Api-Key: YOUR_KEY"

Base URL

https://resaleiq.dev

Rate limit

60 requests per minute per key. Exceeding it returns 429; retry after a short pause.

Responses & errors

All responses are JSON. Errors carry a detail field.

200Success
401Missing or invalid API key
402Your plan does not include this data
403Authenticated, but not permitted
404Not found
429Rate limit exceeded

Endpoints

GET/api/model-signals

Top models ranked by 7-day watched departures: departure volume, average asking price at departure, buy-below price, sell-through, best sizes.

Query params: limit (default 100), brand

GET/api/deals

Current opportunities, filterable.

Query params: brand, category, momentum, min_str, limit

GET/api/kpis

Headline market figures: listings tracked, top category, active buy signals.

GET/api/brands/rankings

Brand leaderboard by demand.

Query params: limit

GET/api/brands/{slug}

One brand in detail, by slug.

GET/api/trends/summary

Market trend summary across the tracked markets.

GET/api/recent-sold

Most recently detected departures — listings that left the shelf, not confirmed sales.

Query params: limit

GET/api/watchlist

Your watchlist.

POST/api/watchlist

Add a model to your watchlist.

DELETE/api/watchlist/{id}

Remove a watchlist item.

GET/api/portfolio

Your portfolio items.

Query params: status

GET/api/portfolio/stats

P&L summary: invested, realised profit, ROI, days held.

POST/api/portfolio

Add a sourced item.

PUT/api/portfolio/{id}

Update an item (mark listed or sold).

DELETE/api/portfolio/{id}

Delete an item.

Example response

{
  "data": [
    {
      "brand": "Nike",
      "model": "Tech Fleece",
      "sold_7d": 1240,
      "avg_price_eur": 21.4,
      "max_buy_price": 14.2,
      "str_pct": 12.4,
      "top_sizes": ["M", "L", "S"]
    }
  ],
  "count": 1
}

max_buy_price is the highest price you can pay and still clear roughly 30% margin after platform fees. str_pct is the observed share — watched sales divided by watched sales plus still-listed items, capped at 100%. It is withheld (null) below 30 watched sales in the window, or when we have no still-listed sample; null is not 0 and not 100. Weekly turnover (sold_7d / active_listings) is a different statistic and is never labelled sell-through.

Fair use

The API is for your own sourcing decisions. Redistributing the data or using it to build a competing dataset is not permitted — see the Terms.

Get an API key

The API is included with Pro. Generate your key from your account page.

Get Pro →
Support·Terms