Skip to main content
GET
/
v1
/
vinted
/
search
Search Items
curl --request GET \
  --url https://scrapebadger.com/v1/vinted/search \
  --header 'x-api-key: <api-key>'
{
  "items": [
    {
      "id": 123,
      "title": "<string>",
      "price": "<string>",
      "currency": "<string>",
      "brand_title": "<string>",
      "size_title": "<string>",
      "photo": {
        "url": "<string>",
        "width": 123,
        "height": 123
      },
      "url": "<string>",
      "user": {
        "id": 123,
        "login": "<string>",
        "photo": {
          "url": "<string>"
        },
        "feedback_reputation": 123
      },
      "favourite_count": 123,
      "seller_country_code": "<string>"
    }
  ],
  "total_entries": 123,
  "current_page": 123,
  "per_page": 123,
  "seller_country": "<string>"
}

Query Parameters

query
string
required
Search query string. Matches against item titles and descriptions.
market
string
default:"fr"
Vinted market to search. See /v1/vinted/markets for all supported values.Examples: fr, de, uk, it, es, pl, us
page
integer
default:1
Page number for paginated results. Starts at 1.
per_page
integer
default:24
Number of items per page. Range: 1 - 96.
price_from
number
Minimum price filter in the market’s local currency.
price_to
number
Maximum price filter in the market’s local currency.
brand_ids
string
Comma-separated list of brand IDs to filter by. Use /v1/vinted/brands to look up IDs.Example: 53, 14,53,221
color_ids
string
Comma-separated list of color IDs to filter by. Use /v1/vinted/colors to look up IDs.Example: 1, 1,4,12
status_ids
string
Comma-separated list of condition status IDs to filter by. Use /v1/vinted/statuses to look up IDs.Example: 6 (New with tags), 1,2 (New without tags, Very good)
order
string
default:"relevance"
Sort order for results.
ValueDescription
relevanceBest match (default)
price_low_to_highCheapest first
price_high_to_lowMost expensive first
newest_firstMost recently listed
seller_country
string
Comma-separated list of ISO 3166-1 alpha-2 country codes (case-insensitive) to keep only items whose seller is physically located in one of those countries.Vinted markets federate listings across borders — a search on vinted.fr returns items from sellers in IT, DE, NL, ES, and elsewhere (prices and labels are localized, but the seller is abroad). Vinted exposes no native country facet, so ScrapeBadger resolves each result item’s seller country and drops items outside the requested set.Examples: fr, fr,be, IT,ES
market and seller_country are different axes. market selects which Vinted domain you search (which catalog and currency you see); seller_country filters on where the seller actually is. For example, market=fr&seller_country=it searches the French catalog but returns only items shipped by sellers in Italy.
Pagination totals (total_entries / total_pages) reflect Vinted’s unfiltered result set. After seller-country filtering, a page may contain fewer than per_page items (or none), even though more matching items exist on later pages. Iterate through pages until you have collected enough matching items.

Response

items
array
Array of matching items.
total_entries
integer
Total number of matching items across all pages.
current_page
integer
Current page number.
per_page
integer
Number of items per page.
seller_country
string
Echo of the normalized seller_country filter that was applied (uppercase, comma-separated ISO-2 codes, e.g. "FR,BE"), or null when no filter was requested.

Example Response

{
  "items": [
    {
      "id": 4856231890,
      "title": "Nike Air Force 1 '07 White",
      "price": "45.00",
      "currency": "EUR",
      "brand_title": "Nike",
      "size_title": "42",
      "photo": {
        "url": "https://images1.vinted.net/t/...",
        "width": 800,
        "height": 600
      },
      "url": "https://www.vinted.fr/items/4856231890",
      "user": {
        "id": 12345678,
        "login": "seller_username",
        "photo": {
          "url": "https://images1.vinted.net/t/..."
        }
      },
      "favourite_count": 12,
      "seller_country_code": "FR"
    }
  ],
  "total_entries": 2847,
  "current_page": 1,
  "per_page": 24,
  "seller_country": "FR"
}

Example Request — filter by seller country

Return only listings from sellers physically located in France:
curl "https://scrapebadger.com/v1/vinted/search?query=nike+air+force+1&market=fr&seller_country=fr&per_page=20" \
  -H "x-api-key: YOUR_API_KEY"
A search costs 1 base credit + 1 credit per uncached seller looked up to resolve seller country. Seller countries are cached for 7 days, so cache hits are free: a fresh page of 20 distinct sellers costs ≈ 21 credits, while repeated or overlapping searches are far cheaper. When seller_country is omitted, no seller lookups are performed and the request costs 1 credit. Failed requests are not charged.

Authorizations

x-api-key
string
header
required

Query Parameters

query
string
required

Search query string. Matches against item titles and descriptions.

market
string
default:fr

Vinted market to search (e.g. fr, de, uk, it, es, pl, us).

page
integer
default:1

Page number for paginated results.

Required range: x >= 1
per_page
integer
default:24

Number of items per page.

Required range: 1 <= x <= 96
price_from
number

Minimum price filter in the market's local currency.

price_to
number

Maximum price filter in the market's local currency.

brand_ids
string

Comma-separated list of brand IDs to filter by.

color_ids
string

Comma-separated list of color IDs to filter by.

status_ids
string

Comma-separated list of condition status IDs to filter by.

order
enum<string>
default:relevance

Sort order for results.

Available options:
relevance,
price_low_to_high,
price_high_to_low,
newest_first
seller_country
string

Comma-separated ISO 3166-1 alpha-2 country codes (case-insensitive) to keep only items whose seller is physically located in one of those countries (e.g. "fr" or "fr,be"). Vinted markets federate cross-border listings; this filters on the seller's real location, which is a different axis from market. Note: pagination totals stay unfiltered, so a page may return fewer than per_page items after filtering. Billing: 1 base credit + 1 credit per uncached seller looked up (seller country cached 7 days; cache hits are free).

Response

200 - application/json

Successful search

items
object[]
total_entries
integer

Total number of matching items across all pages. Reflects Vinted's unfiltered totals even when seller_country filtering is applied.

current_page
integer

Current page number.

per_page
integer

Number of items per page.

seller_country
string | null

Echo of the normalized seller_country filter that was applied (uppercase, comma-separated ISO-2 codes, e.g. "FR,BE"), or null when no filter was requested.