{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinted Scraper: Paste a URL, Search, Closets & Item Details",
    "description": "Paste any Vinted search, category, seller or item link, or search by keyword with brand, size, colour and price filters. Add full item details: description, colour, category, seller rating and shipping. All 26 markets. Listings $1 per 1,000, full item records $5 per 1,000.",
    "version": "0.0",
    "x-build-id": "SVy3f5vLYBvLpORob"
  },
  "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": {
          "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"
            }
          },
          "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"
          },
          "includeDetails": {
            "title": "Include full item details",
            "type": "boolean",
            "description": "Search, pasted search or seller links, and User listings: open every listing's item page and return the full item record (description, colour, category path, seller feedback and badges, shipping price, sold flag) instead of the shorter listing row. One extra page per row, so runs take longer. Full records are billed as Detailed results (see the Pricing tab); a row whose item page couldn't be read stays a Listing result.",
            "default": false
          },
          "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
          },
          "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 category ID. Open a category on Vinted and take the number from the address bar: /catalog/1049-boots is 1049. Easier still, paste the whole link into Vinted URLs. Used by Search mode."
          },
          "size": {
            "title": "Size",
            "type": "string",
            "description": "Size label as Vinted shows it, for example 'M', 'UK 9' or 'EU 42'. Matched across every size group (women's, men's, kids') for the selected country. A label that matches no Vinted size stops the run and lists the valid ones, so you're never billed for unfiltered results. Used by Search mode."
          },
          "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."
          },
          "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"
              ]
            }
          },
          "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."
          },
          "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}