Vinted API endpoint
Returns Vinted resale listings matching a text search, with optional price filtering and sort order. `order` values: `relevance`, `newest_first`, `price_high_to_low`, `price_low_to_high`. Public data, sourced from Vinted's own server-rendered catalog page.
/vinted/catalogQuery parameters:
search_text (required) — search text.price_from (optional) — minimum price.price_to (optional) — maximum price.order (optional) — sort order. Allowed values: relevance,
newest_first, price_high_to_low, price_low_to_high. Defaults to
relevance.page (optional) — page number, starting at 1. Defaults to 1.Notable response behavior:
id is usable directly as the id query parameter to
/vinted/item.price_from greater than price_to returns 400 before any upstream
request is made.404 rather than an empty
200 list./vinted/item for why.| Field | Filled in, of 96 checked | Values in the sample |
|---|---|---|
| id | 96 | |
| title | 96 | “Jean jacket” and 93 other values |
| url | 96 | vinted.com |
| brand | 96 | “Shein” and 61 other values |
| size | 96 | “L / US 12-14” and 21 other values |
| condition | 96 | Very good (59), New without tags (17), Good (11) and 2 more |
| price_raw | 96 | “$6.00” and 21 other values |
| total_price_raw | 96 | “$7.00” and 21 other values |
| favourite_count | 83 | 1 to 52, median 8 |
| image_url | 96 | images1.vinted.net |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| search_text | string | Yes | Search text | jacket | |
| price_from | number | No | Minimum price | 10 | |
| price_to | number | No | Maximum price | 50 | |
| order | string | No | Sort order. Allowed values: relevance, newest_first, price_high_to_low, price_low_to_high Allowed values: relevance, newest_first, price_high_to_low, price_low_to_high. | price_low_to_high | |
| page | integer | No | Page number, starting at 1 | 1 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/vinted/catalog?search_text=jacket&order=relevance&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"search_text": "jacket",
"page": 1,
"source_url": "https://www.vinted.com/catalog?search_text=jacket",
"items": [
{
"id": "9595406652",
"title": "Vintage leather Cabelas Women's jacket",
"url": "https://www.vinted.com/items/9595406652-vintage-leather-cabelas-womens-jacket",
"brand": "Cabela's",
"size": "L / US 12-14",
"condition": "Good",
"price_raw": "$20.00",
"total_price_raw": "$21.70",
"favourite_count": 9,
"image_url": "https://images1.vinted.net/t/01_00ebe_Runxp7FBSGM86vRdXFhYhM4A/310x430/3e52418b.webp"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/vinted.catalogResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | vinted.CatalogResponse | No | ||||
| data.fetched_at | string | No | 2026-08-07T12:00:00Z | |||
| data.items | array | No | ItemCard record, 10 fields: brand, condition, favourite_count, id, image_url, price_raw, size, title, total_price_raw, url. Described under Vinted brand API. | |||
| data.page | integer | No | 1 | |||
| data.search_text | string | No | jacket | |||
| data.source_url | string | No | https://www.vinted.com/catalog?search_text=jacket | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/vinted/catalog?search_text=jacket&order=relevance&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"