{
  "openapi": "3.0.1",
  "info": {
    "title": "🔥Vinted Scraper",
    "description": "🚀 Vinted Data Scraper: Fast & Robust! 🔥\n🛒 Items and catalogs\n👥 User profiles with stats and balances\n🏷️ Brands\n🌟 Seamlessly integrate with Apify for unparalleled performance & insights. Elevate your business now!🌟\n🔥 Power of direct API access for ultra-fast data extraction in a flash! ⚡",
    "version": "2.1",
    "x-build-id": "EcbbgSBwKdrdmcR8p"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/bebity~vinted-premium-actor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-bebity-vinted-premium-actor",
        "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/bebity~vinted-premium-actor/runs": {
      "post": {
        "operationId": "runs-sync-bebity-vinted-premium-actor",
        "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/bebity~vinted-premium-actor/run-sync": {
      "post": {
        "operationId": "run-sync-bebity-vinted-premium-actor",
        "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": {
          "startUrls": {
            "title": "Vinted search URLs",
            "type": "array",
            "description": "Paste one or more vinted.<country> catalog URLs (copied straight from your browser after filtering on the site — brand, category, size, colour, price, condition, sort). Each URL's filters are extracted automatically, so you never have to know a Vinted ID: this is the easiest way to use category, size or condition filters. Leave empty to search by keyword instead.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "query": {
            "title": "Search keywords",
            "type": "string",
            "description": "Text to search for, exactly like typing into Vinted's search box (e.g. \"nike jacket\"). Combine with the filters below to narrow results. Not needed if you supplied search URLs above, or seller profile URLs under Advanced filters."
          },
          "country": {
            "title": "Country / marketplace",
            "enum": [
              "fr",
              "com",
              "be",
              "at",
              "cz",
              "de",
              "es",
              "it",
              "pl",
              "pt",
              "ro",
              "co.uk"
            ],
            "type": "string",
            "description": "Which Vinted marketplace to search. This picks the domain (vinted.fr, vinted.de, ...) the actor queries.",
            "default": "fr"
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Only return items from these brands, one per line. Type the name the way Vinted spells it (e.g. Nike, Stone Island, Levi's) — case and apostrophes don't matter. The actor looks each one up when the run starts, and the log lists exactly which brands it will filter on before it collects anything. A number is read as a Vinted brand ID (e.g. 53 for Nike). A name that matches no Vinted brand exactly is left out rather than guessed: the log names it with the closest brands Vinted has, and the Failed items tab keeps a row for it.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "colors": {
            "title": "Colours",
            "type": "array",
            "description": "Only return items listed in one of these colours — the same colours as Vinted's own colour filter. Leave empty for any colour.",
            "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",
                "multi",
                "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"
              ]
            },
            "default": []
          },
          "priceMin": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Only return items priced at or above this amount, in the marketplace's currency. Leave empty for no lower bound. When Deep scan is on, this also seeds where the actor starts slicing the price range."
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Only return items priced at or below this amount, in the marketplace's currency. Leave empty for no upper bound. When Deep scan is on, this also seeds where the actor starts slicing the price range."
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "newest_first",
              "price_low_to_high",
              "price_high_to_low"
            ],
            "type": "string",
            "description": "Order results the same way Vinted's own sort dropdown would.",
            "default": "relevance"
          },
          "catalogId": {
            "title": "Category ID",
            "minimum": 0,
            "type": "number",
            "description": "A single Vinted category ID to filter by. Find it by opening a category on vinted.<country> and reading the number at the start of it in the address — 1206 in vinted.fr/catalog/1206-outerwear — or skip this and paste that URL into the URLs field above."
          },
          "sizeIds": {
            "title": "Size IDs",
            "type": "array",
            "description": "Vinted size IDs to filter by, e.g. [207]. Sizes are catalog-specific on Vinted, so the same number means different things in different categories — find the right one by picking a size on vinted.<country> and reading the size_ids[] value from the resulting URL.",
            "items": {
              "type": "number"
            },
            "default": []
          },
          "condition": {
            "title": "Condition IDs",
            "type": "array",
            "description": "Vinted condition IDs to filter by (Vinted calls this status_ids — e.g. \"New with tags\", \"Very good\"). Find the right numbers by picking a condition on vinted.<country> and reading the status_ids[] value from the resulting URL.",
            "items": {
              "type": "number"
            },
            "default": []
          },
          "sellerUrls": {
            "title": "Seller profile URLs",
            "type": "array",
            "description": "Collect a seller's wardrobe directly, instead of (or as well as) a keyword search. Open the seller's profile on Vinted and copy the address from your browser bar — it looks like vinted.fr/member/12345678-username — then paste one per line. Leave Search keywords empty to collect only these wardrobes. The marketplace is read from each address, so the Country setting doesn't apply here, and neither do the keyword, brand, colour, price, sort or ID filters: you get the seller's listed items, up to Max items. Wardrobes are collected before any search, so they count toward Max items first.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "includeItemDetails": {
            "title": "Include item details",
            "type": "boolean",
            "description": "Fetch each item's page to add its description, every colour, the cheapest shipping price, the readable category path and the brand's Wikidata id. Costs one extra request per item, so runs take longer and are billed an extra item-detailed event.",
            "default": false
          },
          "includeSellerDetails": {
            "title": "Enrich with seller details",
            "type": "boolean",
            "description": "When enabled, the actor also fetches each unique seller's profile (reputation, follower count, city, last-seen date, verified sign-ins, bundle discounts, ...) and writes it to a separate `sellers` dataset, one row per unique seller. For pro sellers it adds the business contact their public Vinted profile displays — name, email, phone, registration and, for companies, the address; a contact Vinted keeps private is never returned. Costs one extra request per unique seller, billed as a separate charge event.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop once this many unique items have been collected. Vinted itself caps a single search at roughly 813 unique results — turn on Deep scan below to collect more than that.",
            "default": 100
          },
          "deepScan": {
            "title": "Deep scan (go past Vinted's ~813-result cap)",
            "type": "boolean",
            "description": "Vinted's own search caps out at roughly 813 unique results per query, no matter how you page through it. When enabled, the actor automatically splits your price range into narrower slices and searches each one, so a broad query can return thousands of items instead of stopping at the wall. When disabled, the actor collects up to that cap and tells you in the log if more results existed.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}