{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinted Scraper – Listings, Prices & Sellers (All Countries)",
    "description": "Scrape Vinted listings from 20+ countries: title, price incl. buyer protection, brand, size, condition, photos, favourites, seller rating & description. Search, item & seller URLs.",
    "version": "1.3",
    "x-build-id": "dhtqmISYFbHLEdn2T"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ninhothedev~vinted-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ninhothedev-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/ninhothedev~vinted-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ninhothedev-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/ninhothedev~vinted-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ninhothedev-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": {
          "searchText": {
            "title": "Search keyword",
            "type": "string",
            "description": "What to search for on Vinted, e.g. `nike air max`, `levis 501`, `carhartt jacket`. Leave empty when you only use URLs or filters. Empty input runs a demo search."
          },
          "searchQueries": {
            "title": "More keywords (optional)",
            "type": "array",
            "description": "Run several keyword searches in one run – each keyword is searched with the same country and filters.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "Vinted URLs (search, item or member)",
            "type": "array",
            "description": "Paste any Vinted URL from any country: a catalog/search URL with your filters (`https://www.vinted.fr/catalog?search_text=...`), an item URL (`/items/123...`) for full details, or a member/seller URL (`/member/123...`) to scrape the seller's wardrobe. Bare item IDs work too.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Vinted country site",
            "enum": [
              "de",
              "fr",
              "it",
              "es",
              "nl",
              "be",
              "at",
              "pl",
              "cz",
              "lt",
              "gb",
              "com",
              "sk",
              "pt",
              "se",
              "lu",
              "fi",
              "dk",
              "hu",
              "ro",
              "ie",
              "hr",
              "gr"
            ],
            "type": "string",
            "description": "Country domain used for keyword searches and seller IDs (URLs always use their own domain). Prices are returned in the site's currency (EUR, GBP, PLN, CZK, USD…) plus `price_eur`.",
            "default": "de"
          },
          "maxItems": {
            "title": "Max items (total)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Exact maximum number of items saved for the whole run. You only pay for saved items. Note: Vinted shows at most ~960 results per search – split big searches by price range, size or category."
          },
          "includeDetails": {
            "title": "Scrape item details (description, color, category, seller rating)",
            "type": "boolean",
            "description": "Opens item pages for description, color, category, upload age, photos and seller ratings when present. Seller country may require the separate seller-profile option. Vinted can rate-limit detail pages.",
            "default": false
          },
          "includeSellerDetails": {
            "title": "Add seller profile (login, rating, reviews, country)",
            "type": "boolean",
            "description": "Fetch each seller profile once per country for additional login, rating, reviews and country fields. Explicit false skips these extra API requests, even when item details are enabled. API calls omitting this field keep legacy automatic enrichment with includeDetails.",
            "default": false
          },
          "order": {
            "title": "Sort by",
            "enum": [
              "newest",
              "relevance",
              "price_low_to_high",
              "price_high_to_low"
            ],
            "type": "string",
            "description": "Sort order of search results.",
            "default": "newest"
          },
          "priceFrom": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum item price (in the site's currency)."
          },
          "priceTo": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum item price (in the site's currency)."
          },
          "brands": {
            "title": "Brands (names)",
            "type": "array",
            "description": "Brand names, resolved automatically to Vinted brand IDs, e.g. `Nike`, `Zara`, `Levi's`.",
            "items": {
              "type": "string"
            }
          },
          "conditions": {
            "title": "Condition",
            "type": "array",
            "description": "Only items in these conditions.",
            "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": "Colors",
            "type": "array",
            "description": "Only items with these colors.",
            "items": {
              "type": "string",
              "enum": [
                "black",
                "white",
                "grey",
                "beige",
                "brown",
                "red",
                "pink",
                "purple",
                "blue",
                "light_blue",
                "navy",
                "green",
                "dark_green",
                "khaki",
                "yellow",
                "mustard",
                "orange",
                "cream",
                "silver",
                "gold",
                "multicolour",
                "turquoise",
                "burgundy",
                "coral",
                "mint",
                "lilac",
                "rose",
                "apricot"
              ]
            }
          },
          "catalogIds": {
            "title": "Category IDs",
            "type": "array",
            "description": "Vinted catalog (category) IDs, e.g. `1231` (women's sneakers). Tip: open a category on Vinted and copy the number from `/catalog/<id>-...`, or just paste the category URL into Vinted URLs.",
            "items": {
              "type": "string"
            }
          },
          "brandIds": {
            "title": "Brand IDs",
            "type": "array",
            "description": "Vinted brand IDs (e.g. `53` = Nike). Use Brands (names) if you don't know the IDs.",
            "items": {
              "type": "string"
            }
          },
          "sizeIds": {
            "title": "Size IDs",
            "type": "array",
            "description": "Vinted size IDs (category-specific). Easiest: filter on Vinted and paste the URL instead.",
            "items": {
              "type": "string"
            }
          },
          "statusIds": {
            "title": "Condition IDs (advanced)",
            "type": "array",
            "description": "Raw Vinted status IDs: 6 new with tags, 1 new without tags, 2 very good, 3 good, 4 satisfactory.",
            "items": {
              "type": "string"
            }
          },
          "colorIds": {
            "title": "Color IDs (advanced)",
            "type": "array",
            "description": "Raw Vinted color IDs (1 black, 12 white, 9 blue …).",
            "items": {
              "type": "string"
            }
          },
          "currency": {
            "title": "Price filter currency",
            "type": "string",
            "description": "Optional currency code for the price filter (e.g. EUR). Defaults to the site's currency."
          },
          "sellerIds": {
            "title": "Seller / member IDs",
            "type": "array",
            "description": "Vinted member IDs (or member URLs) – scrapes all items listed by these sellers on the selected country site.",
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerSearch": {
            "title": "Max items per search/seller",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Optional cap per keyword, URL or seller (useful when combining several searches)."
          },
          "maxConcurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum in-flight detail / seller requests. Starts are spaced by at least 1.05 seconds per country to reduce rate limits; actual parallelism can be lower.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. By default the Actor connects directly and automatically falls back to Apify datacenter and then residential proxies if Vinted blocks or rate-limits it."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}