E-commerce & Marketplaces

Vinted API

The Vinted API returns second-hand fashion listings, item and seller data as clean JSON.

14 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary catalog_search endpoint returns items with id, title, brand, size, price, URL, photos, condition and seller, with pagination, and you can pull an item_detail, a seller, their items and feedback, search brands, get similar items, filters and categories. It is built for resale-price intelligence, fashion apps and reselling tools that need Vinted data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, catalog_search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/vinted/v1/catalog_search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "nike",
    "tld": "fr",
    "per_page": 20
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "vinted",
    "endpoint": "catalog_search",
    "mode": "live",
    "latency_ms": 2038.8,
    "record_count": 20,
    "bytes": 285318,
    "cache_hit": false,
    "completeness_pct": 100,
    "stop_reason": "cap_reached",
    "tld": "fr",
    "total_entries": 960,
    "window_cap": 960,
    "pagination": {
      "page": 1,
      "has_more": true
    }
  },
  "data": {
    "items": [
      {
        "id": 9423313905,
        "title": "Nike zwart cropped T-shirt logo Plus Size 2X EU 50/52",
        "url": "https://www.vinted.fr/items/[redacted-phone]-nike-zwart-cropped-t-shirt-logo-plus-size-2x-eu-5052",
        "price": {
          "amount": 15,
          "currency": "EUR"
        },
        "total_item_price": {
          "amount": 16.45,
          "currency": "EUR"
        },
        "service_fee": {
          "amount": 1.45,
          "currency": "EUR"
        },
        "brand": "Nike",
        "size": "5XL / 50 / 22",
        "condition": "Très bon état",
        "is_visible": true,
        "favourite_count": 0,
        "view_count": 0,
        "promoted": false,
        "uploaded_ts": 1784317650,
        "photos": [
          {
            "url": "[trimmed-depth]",
            "full_size_url": "[trimmed-depth]",
            "dominant_color": "[trimmed-depth]",
            "is_main": "[trimmed-depth]",
            "width": "[trimmed-depth]",
            "height": "[trimmed-depth]",
            "uploaded_ts": "[trimmed-depth]"
          },
          {
            "url": "[trimmed-depth]",
            "full_size_url": "[trimmed-depth]",
            "dominant_color": "[trimmed-depth]",
            "is_main": "[trimmed-depth]",
            "width": "[trimmed-depth]",
            "height": "[trimmed-depth]",
            "uploaded_ts": "[trimmed-depth]"
          },
          {
            "url": "[trimmed-depth]",
            "full_size_url": "[trimmed-depth]",
            "dominant_color": "[trimmed-depth]",
            "is_main": "[trimmed-depth]",
            "width": "[trimmed-depth]",
            "height": "[trimmed-depth]",
            "uploaded_ts": "[trimmed-depth]"
          }
        ],
        "seller": {
          "id": 28651912,
          "login": "[redacted]",
          "business": false,
          "profile_url": "[redacted]"
        }
      },
      {
        "id": 9274294548,
        "title": "Pull Nike sans capuche",
        "url": "https://www.vinted.fr/items/[redacted-phone]-pull-nike-sans-capuche",
        "price": {
          "amount": 10,
          "currency": "EUR"
        },
        "total_item_price": {
          "amount": 11.2,
          "currency": "EUR"
        },
        "service_fee": {
          "amount": 1.2,
          "currency": "EUR"
        },
        "brand": "Nike",
        "size": "M / 38 / 10",
        "condition": "Très bon état",
        "is_visible": true,
        "favourite_count": 0,
        "view_count": 0,
        "promoted": false,
        "uploaded_ts": 1782662212,
        "photos": [
          {
            "url": "[trimmed-depth]",
            "full_size_url": "[trimmed-depth]",
            "dominant_color": "[trimmed-depth]",
            "is_main": "[trimmed-depth]",
            "width": "[trimmed-depth]",
            "height": "[trimmed-depth]",
            "uploaded_ts": "[trimmed-depth]"
          },
          {
            "url": "[trimmed-depth]",
            "full_size_url": "[trimmed-depth]",
            "dominant_color": "[trimmed-depth]",
            "is_main": "[trimmed-depth]",
            "width": "[trimmed-depth]",
            "height": "[trimmed-depth]",
            "uploaded_ts": "[trimmed-depth]"
          },
          {
            "url": "[trimmed-depth]",
            "full_size_url": "[trimmed-depth]",
            "dominant_color": "[trimmed-depth]",
            "is_main": "[trimmed-depth]",
            "width": "[trimmed-depth]",
            "height": "[trimmed-depth]",
            "uploaded_ts": "[trimmed-depth]"
          }
        ],
        "seller": {
          "id": 17200761,
          "login": "[redacted]",
          "business": false,
          "profile_url": "[redacted]"
        }
      },
      {
        "id": 9430052246,
        "title": "Nike Air Sport Dry Fit Leggings mit Mesh  XS",
        "url": "https://www.vinted.fr/items/[redacted-phone]-nike-air-sport-dry-fit-leggings-mit-mesh-xs",
        "price": {
          "amount": 15,
          "currency": "EUR"
        },
        "total_item_price": {
          "amount": 16.45,
          "currency": "EUR"
        },
        "service_fee": {
          "amount": 1.45,
          "currency": "EUR"
        },
        "brand": "Nike",
        "size": "XS / 34 / 6",
        "condition": "Très bon état",
        "is_visible": true,
        "favourite_count": 0,
        "view_count": 0,
        "promoted": false,
        "uploaded_ts": 1784395199,
        "photos": [
          {
            "url": "[trimmed-depth]",
            "full_size_url": "[trimmed-depth]",
            "dominant_color": "[trimmed-depth]",
            "is_main": "[trimmed-depth]",
            "width": "[trimmed-depth]",
            "height": "[trimmed-depth]",
            "uploaded_ts": "[trimmed-depth]"
          },
          {
            "url": "[trimmed-depth]",
            "full_size_url": "[trimmed-depth]",
            "dominant_color": "[trimmed-depth]",
            "is_main": "[trimmed-depth]",
            "width": "[trimmed-depth]",
            "height": "[trimmed-depth]",
            "uploaded_ts": "[trimmed-depth]"
          }
        ],
        "seller": {
          "id": 3169529605,
          "login": "[redacted]",
          "business": false,
          "profile_url": "[redacted]"
        }
      }
    ],
    "pagination": {
      "current_page": 1,
      "total_pages": 48,
      "total_entries": 960,
      "per_page": 20,
      "time": 1784395244
    },
    "query": "nike",
    "filters": {},
    "tld": "fr"
  }
}
Actions

What the Vinted API does

ActionDescriptionConcrete use caseKey params
catalog_searchkeyword + filter search (brand/size/condition/category/color/material/price)Pricing teams call catalog_search to get keyword + filter search (brand/size/condition/category/color/material/price).query, search_text, filters, brand_ids, size_ids, ...
item_detailFull Vinted item detail — title, price, photos, description, size, color, condition, material, category and a seller summary.Marketplace operators call item_detail to get full Vinted item detail.id, item_id, url, path, tld
sellerseller profile (login/rating/item_count/feedback breakdown) — PII redactableCatalog enrichment teams call seller to get seller profile (login/rating/item_count/feedback breakdown).id, user_id, seller_id, tld
seller_itemsa seller's wardrobe itemsRetail analysts call seller_items to get a seller's wardrobe items.id, user_id, seller_id, page, per_page, ...
seller_feedbackfeedback left for a seller (text/rating/reviewer)Pricing teams call seller_feedback to get feedback left for a seller (text/rating/reviewer).id, user_id, seller_id, page, per_page, ...
brand_searchresolve a brand name -> brand_id (+ item/favourite counts)Marketplace operators call brand_search to resolve a brand name -> brand_id (+ item/favourite counts).query, search_text, page, per_page, tld
autocompletesearch typeahead — partial query -> ranked Vinted search suggestions (localized per site)Catalog enrichment teams call autocomplete to search typeahead.query, search_text, q, tld
similaritems similar to a given item (items/{id}/more)Retail analysts call similar to get items similar to a given item (items/{id}/more).id, item_id, content_source, tld
catalog_filtersdynamic facets (size/brand/status/color/price/material + option ids) for a query/categoryPricing teams call catalog_filters to get dynamic facets (size/brand/status/color/price/material + option ids) for a query/category.query, search_text, catalog_ids, tld
categoriesFull Vinted category tree — id, title, code, URL and child categories for the selected country site.Marketplace operators call categories to get full Vinted category tree.tld
colorscolor enum (id/title/hex/code)Catalog enrichment teams call colors to get color enum (id/title/hex/code).tld
conditionsitem-condition enum (status id/title)Retail analysts call conditions to get item-condition enum (status id/title).tld
countriescountry enum (id/iso/currency)Pricing teams call countries to get country enum (id/iso/currency).tld
sizessize groups + size idsMarketplace operators call sizes to get size groups + size ids.tld
Code samples

Call catalog_search from your stack

curl -X POST https://api.reefapi.com/vinted/v1/catalog_search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"nike","tld":"fr","per_page":20}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.vinted.catalog_search with {"query":"nike","tld":"fr","per_page":20}.
Use cases

Who uses this API and why

  • Resale-price tools call catalog_search to track second-hand prices for a brand and size.
  • Reselling products use seller_items and seller_feedback to study a competitor's shop.
  • Fashion apps use brand_search and similar to surface comparable second-hand listings.
FAQ

Questions developers ask before integrating

What is the Vinted API?

Vinted API is a ReefAPI endpoint group for second-hand fashion listings and prices. It returns live JSON through POST requests under /vinted/v1.

Is the Vinted API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Vinted calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Vinted login or account?

No login to Vinted is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Vinted data?

The page example is captured from a live catalog_search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Vinted API use?

Vinted actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Vinted from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call vinted actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Vinted API a Vinted scraper?

It is the managed alternative to a DIY Vinted scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same second-hand fashion listings and prices back as clean JSON.

Why does my Vinted scraper keep getting blocked?

Most Vinted scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / vinted

Vinted

Second-hand fashion listings and prices.

base /vinted/v114 endpoints
post/vinted/v1/item_detail2 credits

Full Vinted item detail — title, price, photos, description, size, color, condition, material, category and a seller summary.

ParameterAllowed / rangeDescription
idoptionalVinted item ID — the digits in the item URL (…/items/<id>-slug). Provide id OR url (one of the two is required).
urloptionalFull item URL — alternative to id.
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/seller1 credit

seller profile (login/rating/item_count/feedback breakdown) — PII redactable

ParameterAllowed / rangeDescription
idrequiredVinted user ID — take it from catalog_search items[].seller.id or from a member URL (vinted.fr/member/<id>).
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/seller_items1 credit

a seller's wardrobe items

ParameterAllowed / rangeDescription
idrequiredVinted user ID — take it from catalog_search items[].seller.id or from a member URL (vinted.fr/member/<id>).
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
page = 1optional1–Page number (1, 2, 3… — Vinted serves at most ~960 results per filter combination; narrow filters to go deeper).
per_page = 20optional1–96Results per page (1–96; Vinted caps larger values at 96).
Try in playground →
post/vinted/v1/seller_feedback1 credit

feedback left for a seller (text/rating/reviewer)

ParameterAllowed / rangeDescription
idrequiredVinted user ID — take it from catalog_search items[].seller.id or from a member URL (vinted.fr/member/<id>).
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
page = 1optional1–Page number (1, 2, 3… — Vinted serves at most ~960 results per filter combination; narrow filters to go deeper).
per_page = 20optional1–96Results per page (1–96; Vinted caps larger values at 96).
Try in playground →
post/vinted/v1/autocomplete1 credit

search typeahead — partial query -> ranked Vinted search suggestions (localized per site)

ParameterAllowed / rangeDescription
queryrequiredPartial search text to complete (e.g. 'nik' -> 'nike homme', 'nike enfant'). Returns the localized suggestions for the chosen tld.
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/similar1 credit

items similar to a given item (items/{id}/more)

ParameterAllowed / rangeDescription
idrequiredVinted item ID to find lookalikes for.
content_source = similar_itemsoptionalUpstream recommendation source (advanced) — leave at the default.
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/catalog_filters1 credit

dynamic facets (size/brand/status/color/price/material + option ids) for a query/category

ParameterAllowed / rangeDescription
queryoptionalKeyword whose facets you want (optional — empty = global).
catalog_idsoptionalNarrow facets to these category ids (from the categories action).
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/categoriesfree

Full Vinted category tree — id, title, code, URL and child categories for the selected country site.

ParameterAllowed / rangeDescription
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/colorsfree

color enum (id/title/hex/code)

ParameterAllowed / rangeDescription
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/conditionsfree

item-condition enum (status id/title)

ParameterAllowed / rangeDescription
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/countriesfree

country enum (id/iso/currency)

ParameterAllowed / rangeDescription
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →
post/vinted/v1/sizesfree

size groups + size ids

ParameterAllowed / rangeDescription
tld = froptionalfr · de · es · it · nl · be · lt · lu · at · pt · sk · fi · co.uk · pl · cz · se · ro · hu · dk · comWhich Vinted site to query (sets currency and local listings).
Try in playground →