{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinted Scraper – Listings, Prices & Sellers (26 Countries)",
    "description": "Scrape Vinted listings from all 26 countries with every filter or any Vinted URL. Goes past the 960-result limit, returns only new listings and price drops for alerts, adds details and seller profiles, compares prices between countries.",
    "version": "1.0",
    "x-build-id": "YiMnCj7uNuSPSB2CL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/liveclaude~vinted-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-liveclaude-vinted-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/liveclaude~vinted-scraper/runs": {
      "post": {
        "operationId": "runs-sync-liveclaude-vinted-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/liveclaude~vinted-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-liveclaude-vinted-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchQueries": {
            "title": "🔎 Search queries",
            "type": "array",
            "description": "Keywords to search on Vinted, one per line (e.g. <code>nike air max</code>). Each query runs in every selected country.<br>🇵🇱 Frazy do wyszukania, jedna w linii. Każda fraza jest wyszukiwana w każdym wybranym kraju.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 Vinted URLs",
            "type": "array",
            "description": "Paste any Vinted link: a search page with filters set on the website, a brand or category page, a single listing (<code>/items/…</code>) or a seller profile (<code>/member/…</code>). All Vinted filters in the URL are supported.<br>🇵🇱 Wklej dowolny link z Vinted: wyszukiwanie z ustawionymi filtrami, markę, kategorię, ogłoszenie albo profil sprzedawcy. Działają wszystkie filtry z linku.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "countries": {
            "title": "🌍 Countries",
            "type": "array",
            "description": "Vinted marketplaces to search (used for search queries, brands and categories). 🇵🇱 Rynki Vinted do przeszukania.",
            "items": {
              "type": "string",
              "enum": [
                "pl",
                "fr",
                "de",
                "at",
                "be",
                "es",
                "it",
                "lu",
                "nl",
                "pt",
                "uk",
                "cz",
                "sk",
                "lt",
                "lv",
                "ee",
                "hu",
                "ro",
                "se",
                "fi",
                "dk",
                "hr",
                "gr",
                "ie",
                "si",
                "us"
              ],
              "enumTitles": [
                "🇵🇱 Poland",
                "🇫🇷 France",
                "🇩🇪 Germany",
                "🇦🇹 Austria",
                "🇧🇪 Belgium",
                "🇪🇸 Spain",
                "🇮🇹 Italy",
                "🇱🇺 Luxembourg",
                "🇳🇱 Netherlands",
                "🇵🇹 Portugal",
                "🇬🇧 United Kingdom",
                "🇨🇿 Czechia",
                "🇸🇰 Slovakia",
                "🇱🇹 Lithuania",
                "🇱🇻 Latvia",
                "🇪🇪 Estonia",
                "🇭🇺 Hungary",
                "🇷🇴 Romania",
                "🇸🇪 Sweden",
                "🇫🇮 Finland",
                "🇩🇰 Denmark",
                "🇭🇷 Croatia",
                "🇬🇷 Greece",
                "🇮🇪 Ireland",
                "🇸🇮 Slovenia",
                "🇺🇸 United States"
              ]
            },
            "default": [
              "pl"
            ]
          },
          "allCountries": {
            "title": "All 26 countries",
            "type": "boolean",
            "description": "Search every Vinted marketplace at once (overrides the list above). 🇵🇱 Wszystkie 26 rynków naraz.",
            "default": false
          },
          "maxItemsPerSearch": {
            "title": "Max listings per search",
            "minimum": 0,
            "type": "integer",
            "description": "Limit per query and country. <code>0</code> = everything. Vinted shows max 960 results per search - this Actor goes past that limit automatically (see below).<br>🇵🇱 Limit na frazę i kraj, 0 = wszystko.",
            "default": 200
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest_first",
              "relevance",
              "price_low_to_high",
              "price_high_to_low"
            ],
            "type": "string",
            "description": "Order of results. Newest first is best for monitoring. 🇵🇱 Kolejność wyników (najnowsze najlepsze do monitoringu).",
            "default": "newest_first"
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Category IDs (e.g. <code>1242</code>) or names as shown on the selected Vinted site (e.g. <code>Sneakers</code> or a path <code>Men > Shoes > Sneakers</code>).<br>🇵🇱 ID kategorii albo nazwa jak na Vinted (np. <code>Kurtki</code>).",
            "items": {
              "type": "string"
            }
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Brand names or IDs, e.g. <code>Nike</code>, <code>Zara</code>. Names are matched to Vinted brand IDs automatically. 🇵🇱 Marki po nazwie lub ID.",
            "items": {
              "type": "string"
            }
          },
          "sizes": {
            "title": "Sizes",
            "type": "array",
            "description": "Size labels exactly as on Vinted, e.g. <code>M</code>, <code>42</code>, <code>W32</code>. Combine with a category for precise matching (e.g. size 42 in Men's sneakers). Raw size IDs: <code>id:786</code>. 🇵🇱 Rozmiary jak na Vinted (np. M, 42). Najlepiej razem z kategorią. ID rozmiaru: <code>id:786</code>.",
            "items": {
              "type": "string"
            }
          },
          "conditions": {
            "title": "Condition",
            "type": "array",
            "description": "🇵🇱 Stan przedmiotu.",
            "items": {
              "type": "string",
              "enum": [
                "new_with_tags",
                "new_without_tags",
                "very_good",
                "good",
                "satisfactory"
              ],
              "enumTitles": [
                "New with tags",
                "New without tags",
                "Very good",
                "Good",
                "Satisfactory"
              ]
            }
          },
          "colors": {
            "title": "Colours",
            "type": "array",
            "description": "🇵🇱 Kolory.",
            "items": {
              "type": "string",
              "enum": [
                "black",
                "grey",
                "white",
                "cream",
                "beige",
                "apricot",
                "orange",
                "coral",
                "red",
                "burgundy",
                "pink",
                "rose",
                "purple",
                "lilac",
                "light_blue",
                "blue",
                "navy",
                "turquoise",
                "mint",
                "green",
                "dark_green",
                "khaki",
                "brown",
                "mustard",
                "yellow",
                "silver",
                "gold",
                "multicolour",
                "clear"
              ],
              "enumTitles": [
                "Black",
                "Grey",
                "White",
                "Cream",
                "Beige",
                "Apricot",
                "Orange",
                "Coral",
                "Red",
                "Burgundy",
                "Pink",
                "Rose",
                "Purple",
                "Lilac",
                "Light blue",
                "Blue",
                "Navy",
                "Turquoise",
                "Mint",
                "Green",
                "Dark green",
                "Khaki",
                "Brown",
                "Mustard",
                "Yellow",
                "Silver",
                "Gold",
                "Multicolour",
                "Clear"
              ]
            }
          },
          "materialIds": {
            "title": "Material IDs",
            "type": "array",
            "description": "Vinted material IDs (easiest: set the material filter on the website and paste the URL instead). 🇵🇱 ID materiałów.",
            "items": {
              "type": "string"
            }
          },
          "priceMin": {
            "title": "Min price",
            "type": "number",
            "description": "In the local currency of each country (PLN on vinted.pl, EUR on vinted.de…). 🇵🇱 W walucie danego kraju."
          },
          "priceMax": {
            "title": "Max price",
            "type": "number",
            "description": "In the local currency of each country. 🇵🇱 W walucie danego kraju."
          },
          "excludeKeywords": {
            "title": "Exclude words in title",
            "type": "array",
            "description": "Skip listings whose title contains any of these words (e.g. <code>fake</code>, <code>damaged</code>). Skipped listings are free. 🇵🇱 Pomiń ogłoszenia z tymi słowami w tytule (bez opłaty).",
            "items": {
              "type": "string"
            }
          },
          "titleMustInclude": {
            "title": "Title must contain (any of)",
            "type": "array",
            "description": "Keep only listings whose title contains at least one of these words. 🇵🇱 Zostaw tylko ogłoszenia z jednym z tych słów w tytule.",
            "items": {
              "type": "string"
            }
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "all",
              "private",
              "business"
            ],
            "type": "string",
            "description": "Private people, Vinted Pro businesses or both. 🇵🇱 Osoby prywatne, firmy (Vinted Pro) albo wszyscy.",
            "default": "all"
          },
          "sellerCountries": {
            "title": "Seller countries",
            "type": "array",
            "description": "Keep only listings from sellers located in these countries (ISO codes, e.g. <code>PL</code>, <code>DE</code>). Vinted mixes listings from abroad into results - this removes them. 🇵🇱 Tylko sprzedawcy z tych krajów (Vinted miesza oferty z zagranicy).",
            "items": {
              "type": "string"
            }
          },
          "minFavourites": {
            "title": "Min favourites",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings with at least this many likes (demand signal). 🇵🇱 Minimalna liczba polubień."
          },
          "includeDetails": {
            "title": "➕ Listing details",
            "type": "boolean",
            "description": "Open every listing and add: full description, all photos, category path, colour, material, upload time, shipping price, reserved/sold status and seller rating. Charged as an extra event.<br>🇵🇱 Pełny opis, wszystkie zdjęcia, kategoria, kolor, materiał, czas dodania, koszt wysyłki, status (rezerwacja/sprzedane), ocena sprzedawcy.",
            "default": false
          },
          "includeSellerInfo": {
            "title": "➕ Seller profiles",
            "type": "boolean",
            "description": "Add seller data to each listing: username, country, city, rating, number of reviews, items sold, followers, last seen, Vinted Pro, bundle discounts. Charged once per unique seller.<br>🇵🇱 Dane sprzedawcy: login, kraj, miasto, ocena, opinie, sprzedane, obserwujący, ostatnio online.",
            "default": false
          },
          "includeSellerItems": {
            "title": "Seller URLs: scrape all their listings",
            "type": "boolean",
            "description": "For seller profile URLs, also return every listing in their wardrobe. 🇵🇱 Dla linków do profili: pobierz całą szafę sprzedawcy.",
            "default": true
          },
          "compareCountries": {
            "title": "🌍 Compare prices between countries",
            "type": "boolean",
            "description": "For each query searched in 2+ countries, add a summary record with min / median / average price per country (also converted to EUR) and the cheapest and most expensive market. Great for cross-border reselling.<br>🇵🇱 Porównanie cen między krajami (mediana, min, średnia, w EUR) - arbitraż.",
            "default": false
          },
          "onlyNewItems": {
            "title": "🔔 Only new listings (monitoring)",
            "type": "boolean",
            "description": "Remember what was already returned and on the next runs output (and charge) only new listings - perfect for scheduled alerts. 🇵🇱 Tryb monitorowania: kolejne uruchomienia zwracają i naliczają tylko nowe ogłoszenia.",
            "default": false
          },
          "trackPriceDrops": {
            "title": "Also return price drops",
            "type": "boolean",
            "description": "In monitoring mode, also return already seen listings whose price went down (with previous price and drop %). 🇵🇱 Zwracaj też obniżki cen.",
            "default": true
          },
          "detectSoldItems": {
            "title": "Also detect sold / removed listings",
            "type": "boolean",
            "description": "In monitoring mode, listings that disappear from your search are checked: if Vinted marks them as sold (or they were removed) you get a record with the last price, first/last seen date and days on market - great for sell-through and real selling prices. Works when a search returns fewer results than your limit (use precise filters or limit 0). 🇵🇱 Wykrywaj sprzedane / usunięte ogłoszenia: ostatnia cena, kiedy pierwszy raz widziane, ile dni wisiało.",
            "default": true
          },
          "emitOnFirstRun": {
            "title": "Return current listings on the first run",
            "type": "boolean",
            "description": "Off = the first run only saves a baseline (free) and you get alerts from the second run on. 🇵🇱 Wyłączone = pierwsze uruchomienie tylko zapamiętuje stan (bez opłat).",
            "default": true
          },
          "monitorId": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional name for the memory of this monitor (letters, digits, dashes). Leave empty to derive it from the input. 🇵🇱 Opcjonalna nazwa monitora."
          },
          "bypassResultLimit": {
            "title": "Go past Vinted's 960 result limit",
            "type": "boolean",
            "description": "Vinted never shows more than 960 results per search. When on, the Actor splits large searches into price ranges and collects everything. 🇵🇱 Omijanie limitu 960 wyników.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Parallel requests. 🇵🇱 Równoległe zapytania.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxies are included in the price - leave as is. Advanced: you can add your own proxy URLs. 🇵🇱 Proxy wliczone w cenę - zostaw domyślne.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}