{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinted Scraper — Listings, Prices & Sellers (All Countries)",
    "description": "Returns Vinted listings from any country (vinted.fr, .de, .co.uk, .it, .es, .pl...): title, price and total incl. buyer fee, brand, size, condition, photos, likes, seller and rating. Search by keyword or catalog URL with filters, or a seller's items; optional description, category, color, material.",
    "version": "0.1",
    "x-build-id": "WVI6LdgA8YSzd3xt1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tortuga~vinted-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tortuga-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/tortuga~vinted-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tortuga-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/tortuga~vinted-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tortuga-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 terms",
            "type": "array",
            "description": "Keywords as you would type them into the Vinted search box, one search per line, e.g. \"nike air max\", \"levis 501\", \"zara dress\". Searched on the Vinted site chosen in Country, with the filters below.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country (Vinted site)",
            "enum": [
              "fr",
              "de",
              "uk",
              "it",
              "es",
              "nl",
              "pl",
              "be",
              "at",
              "cz",
              "lt",
              "pt",
              "sk",
              "se",
              "ro",
              "hu",
              "dk",
              "fi",
              "ie",
              "gr"
            ],
            "type": "string",
            "description": "Which Vinted site the search terms and bare seller ids use. Prices come in that site's currency (EUR, GBP, PLN, CZK, ...). Start URLs always use the site of their own domain, so any other Vinted domain (vinted.lu, .hr, .ee, .lv, .si, .com.au) works there.",
            "default": "fr"
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Vinted pages from any country site: catalog/search pages with the filters you set in the browser (https://www.vinted.fr/catalog?search_text=nike&brand_ids[]=53&order=newest_first), member profiles (https://www.vinted.de/member/12345678) for all items a seller has for sale, or single item pages (https://www.vinted.co.uk/items/1234567890-title), returned with full details.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "sellers": {
            "title": "Sellers (member ids or profile URLs)",
            "type": "array",
            "description": "Scrape every item a seller has for sale, with the seller's public rating, review count, country, followers and last-seen time. Member ids (\"3170877842\", searched on the Country site) or profile URLs (https://www.vinted.fr/member/3170877842-name).",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest_first",
              "relevance",
              "price_low_to_high",
              "price_high_to_low"
            ],
            "type": "string",
            "description": "Order of the search results (and of seller items). Newest first is the best choice for monitoring new listings. Start URLs keep the order in their own URL.",
            "default": "newest_first"
          },
          "priceFrom": {
            "title": "Min price",
            "minimum": 0,
            "type": "number",
            "description": "Used with the search terms: lowest item price, in the currency of the chosen Vinted site."
          },
          "priceTo": {
            "title": "Max price",
            "minimum": 0,
            "type": "number",
            "description": "Used with the search terms: highest item price, in the currency of the chosen Vinted site."
          },
          "conditions": {
            "title": "Condition",
            "type": "array",
            "description": "Used with the search terms: only these conditions. Empty = all.",
            "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"
              ]
            }
          },
          "catalogIds": {
            "title": "Category IDs",
            "type": "string",
            "description": "Used with the search terms: Vinted category ids, comma-separated, as in a Vinted URL (catalog[]=1904 is Women, 5 is Men, 1206 is Men's shoes). With no search term, the category is browsed."
          },
          "brandIds": {
            "title": "Brand IDs",
            "type": "string",
            "description": "Used with the search terms: Vinted brand ids, comma-separated, as in a Vinted URL (brand_ids[]=53 is Nike, 14 is adidas). With no search term, the brand is browsed."
          },
          "sizeIds": {
            "title": "Size IDs",
            "type": "string",
            "description": "Used with the search terms: Vinted size ids, comma-separated, as in a Vinted URL (size_ids[]=207 is S)."
          },
          "colorIds": {
            "title": "Color IDs",
            "type": "string",
            "description": "Used with the search terms: Vinted color ids, comma-separated, as in a Vinted URL (color_ids[]=1 is black)."
          },
          "materialIds": {
            "title": "Material IDs",
            "type": "string",
            "description": "Used with the search terms: Vinted material ids, comma-separated, as in a Vinted URL (material_ids[]=...)."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listings in total (across all searches and sellers). Keeps cost predictable. Vinted serves at most 960 listings per search; split big searches by price range, brand or category to get more.",
            "default": 100
          },
          "maxItemsPerSearch": {
            "title": "Max items per search",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap for each search term, URL or seller, so one busy search does not use up Max items for the others (e.g. the 50 newest listings for each of 10 keywords). Empty = no per-search cap."
          },
          "includeDetails": {
            "title": "Include item details",
            "type": "boolean",
            "description": "Also open every item page for the full description, category path, color, material, upload time, all photos and the seller's rating, review count, location and badges. One extra request per listing; charged as an extra 'detail' event (see pricing).",
            "default": false
          },
          "includeSellerDetails": {
            "title": "Include seller stats",
            "type": "boolean",
            "description": "Add each seller's public rating (0-5), review count, country, city (when public), followers, item count and last-seen time to every listing. One small request per distinct seller, no extra charge.",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed items",
            "type": "boolean",
            "description": "Remember what earlier runs of this search returned and output only new items or items whose price changed (new listings and price drops). Use with a Schedule; unchanged items are not charged. With this on, Max items is the number of listings checked per run (e.g. the newest 100).",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name for this watch, so several schedules on the same search stay separate; defaults to a key derived from the search input"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) is the default. Cloudflare refuses some datacenter IPs; the Actor then retries on new IPs and, if a country site keeps refusing them, switches that site to Apify residential proxy in the same country automatically (about 50 KB per 96 listings, about 300 KB per item page with details on).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}