{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinted Scraper: Paste a URL, Search, Closets & Items",
    "description": "Paste any Vinted search, category, seller or item link and get structured data back. Or search by keyword with brand, size, colour, condition and price filters. Seller closets, item detail and brand lookup too, across all 26 EU and US markets. JSON or CSV. $1 per 1,000 results.",
    "version": "0.0",
    "x-build-id": "AGEnB8JC0t2eAZCya"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sourabhbgp~vinted-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sourabhbgp-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/sourabhbgp~vinted-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sourabhbgp-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/sourabhbgp~vinted-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sourabhbgp-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",
        "required": [
          "mode",
          "country"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "user-listings",
              "item-detail",
              "brand-catalog"
            ],
            "type": "string",
            "description": "What to scrape. Ignored when you paste Vinted URLs above.",
            "default": "search"
          },
          "country": {
            "title": "Country (Vinted market)",
            "enum": [
              "uk",
              "fr",
              "de",
              "it",
              "es",
              "nl",
              "pl",
              "pt",
              "be",
              "at",
              "lt",
              "cz",
              "sk",
              "hu",
              "ro",
              "hr",
              "fi",
              "dk",
              "se",
              "ee",
              "gr",
              "ie",
              "lu",
              "lv",
              "si",
              "us"
            ],
            "type": "string",
            "description": "Which Vinted market subdomain to use. Determines listing pool and currency.",
            "default": "uk"
          },
          "startUrls": {
            "title": "Vinted URLs (paste and go)",
            "type": "array",
            "description": "Paste any Vinted links: a search or category page, a member page, or an item page. The actor works out what each one is and scrapes it, so you can skip the mode and filter fields entirely. Filters already in the URL are used as they are.",
            "items": {
              "type": "string"
            }
          },
          "searchText": {
            "title": "Search text",
            "type": "string",
            "description": "Keyword query. Used by Search mode."
          },
          "brand": {
            "title": "Brand name (auto-resolves to brand ID)",
            "type": "string",
            "description": "Brand filter as a name (e.g. 'nike', 'yeezy'). Resolved at runtime via Vinted's brand lookup. Used by Search mode."
          },
          "category": {
            "title": "Category ID",
            "minimum": 1,
            "type": "integer",
            "description": "Vinted catalog ID. Find by browsing a category on Vinted and copying the catalog[]= value from the URL. Used by Search mode."
          },
          "size": {
            "title": "Size",
            "type": "string",
            "description": "Size label as Vinted shows it, for example 'M', 'UK 9' or 'EU 42'. Resolved at runtime against Vinted's size taxonomy for the selected country, and matched across every size group (women's, men's, kids'). If the label matches nothing, the run logs a warning and returns unfiltered results. Used by Search mode."
          },
          "condition": {
            "title": "Condition",
            "type": "array",
            "description": "Item-condition filter. Used by Search mode.",
            "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"
              ]
            }
          },
          "color": {
            "title": "Color",
            "type": "string",
            "description": "Colour name as Vinted shows it: Black, White, Grey, Beige, Pink, Purple, Red, Yellow, Blue, Green, Orange, Brown, Silver, Gold, Multi, Khaki, Turquoise, Cream, Apricot, Coral, Burgundy, Rose, Lilac, Mint. Used by Search mode."
          },
          "priceFrom": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Minimum price in the local currency of the selected country. Used by Search mode."
          },
          "priceTo": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Maximum price in the local currency of the selected country. Used by Search mode."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "newest_first"
            ],
            "type": "string",
            "description": "How to order results. Used by Search mode.",
            "default": "relevance"
          },
          "userUrl": {
            "title": "User URL",
            "pattern": "^https?://www\\.vinted\\.(co\\.uk|com|fr|de|it|es|nl|be|at|pl|pt|lt|cz|sk|hu|ro|hr|fi|dk|se|ee|gr|ie|lu|lv|si)/member/\\d+",
            "type": "string",
            "description": "Full Vinted member URL, for example https://www.vinted.co.uk/member/3164964426-charlotteaksm. Required by User listings mode."
          },
          "itemUrls": {
            "title": "Item URLs",
            "type": "array",
            "description": "One or more full Vinted item URLs. Required by Item detail mode.",
            "items": {
              "type": "string",
              "pattern": "^https?://www\\.vinted\\.(co\\.uk|com|fr|de|it|es|nl|be|at|pl|pt|lt|cz|sk|hu|ro|hr|fi|dk|se|ee|gr|ie|lu|lv|si)/items/\\d+"
            }
          },
          "brandKeyword": {
            "title": "Brand keyword",
            "type": "string",
            "description": "Brand name to look up: returns up to 10 matches with ID, slug and item count. Required by Brand catalog mode."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum dataset rows to push. Vinted serves at most 960 results per search query however many exist, so Search runs stop there and say so in the run status. User listings mode returns the full closet. 0 = no limit beyond those.",
            "default": 100
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many requests run in parallel. Higher = faster but more proxy load. Capped at 10 for paginated modes, 8 for item-detail.",
            "default": 6
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}