{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinted Scraper - Listings, Prices, Sellers & Reviews",
    "description": "Scrape Vinted secondhand fashion across 20+ markets: search listings, item details, prices, brands, sizes, conditions, photos, seller profiles, leads and reviews. Search by keyword, filters or paste item/member/catalog URLs. Monitor new listings & price drops. No login.",
    "version": "0.1",
    "x-build-id": "GqW7a4q6tzGj7vavK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~vinted-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-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/scrapesage~vinted-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-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/scrapesage~vinted-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-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 queries (keywords)",
            "type": "array",
            "description": "Keywords to search on Vinted (e.g. \"nike air max\", \"zara dress\", \"levis 501\"). Each query is run against the chosen market and paginated up to Max items. Combine with the filters below to narrow results.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs (items, members, catalog/search pages)",
            "type": "array",
            "description": "Vinted URLs to scrape — auto-detected by type. Item pages (/items/…) become item-detail records, member pages (/member/…) become seller profiles (+ their items/reviews when enabled), and catalog/search pages (/catalog?…) are scraped as searches with their filters preserved. The market is taken from each URL's domain (e.g. vinted.fr, vinted.co.uk).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "itemIds": {
            "title": "Item IDs",
            "type": "array",
            "description": "Vinted numeric item IDs (e.g. 9200974745). Each is fetched as a full item-detail record on the selected market.",
            "items": {
              "type": "string"
            }
          },
          "sellerIds": {
            "title": "Seller / member IDs",
            "type": "array",
            "description": "Vinted numeric member IDs (e.g. 3163341031). Each is fetched as a seller profile; their listings and reviews are also pulled when those options are enabled.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Market (Vinted domain)",
            "enum": [
              "com",
              "co.uk",
              "fr",
              "de",
              "es",
              "it",
              "nl",
              "be",
              "at",
              "pl",
              "cz",
              "sk",
              "lt",
              "lu",
              "pt",
              "se",
              "fi",
              "dk",
              "ro",
              "hu",
              "hr",
              "gr",
              "ie"
            ],
            "type": "string",
            "description": "Which Vinted market to search. Prices are returned in that market's local currency. Start URLs use their own domain regardless of this setting.",
            "default": "com"
          },
          "order": {
            "title": "Sort order",
            "enum": [
              "newest_first",
              "relevance",
              "price_low_to_high",
              "price_high_to_low"
            ],
            "type": "string",
            "description": "How to sort search results.",
            "default": "newest_first"
          },
          "priceFrom": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Only return items priced at or above this amount (in the market's currency). Leave empty for no minimum."
          },
          "priceTo": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Only return items priced at or below this amount (in the market's currency). Leave empty for no maximum."
          },
          "catalogIds": {
            "title": "Catalog (category) IDs",
            "type": "array",
            "description": "Restrict searches to one or more Vinted category IDs (e.g. 1904 = Women, 5 = Men). Find IDs in a catalog URL on Vinted. Leave empty to search all categories.",
            "items": {
              "type": "string"
            }
          },
          "brandIds": {
            "title": "Brand IDs",
            "type": "array",
            "description": "Restrict searches to one or more Vinted brand IDs (e.g. 53 = Nike). Find IDs in a filtered catalog URL on Vinted.",
            "items": {
              "type": "string"
            }
          },
          "sizeIds": {
            "title": "Size IDs",
            "type": "array",
            "description": "Restrict searches to one or more Vinted size IDs. Find IDs in a filtered catalog URL on Vinted.",
            "items": {
              "type": "string"
            }
          },
          "statusIds": {
            "title": "Condition IDs",
            "type": "array",
            "description": "Restrict searches to one or more Vinted condition IDs (e.g. 6 = New with tags, 1 = New without tags, 2 = Very good, 3 = Good, 4 = Satisfactory).",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of item records to scrape across all queries and URLs. Seller leads and reviews are additional and not counted against this limit.",
            "default": 100
          },
          "includeItemDetails": {
            "title": "Include item details (description, category, colour)",
            "type": "boolean",
            "description": "Enrich every listing with its full description, category path, colour and exact condition by opening the item page (one extra request per item). Item records are then billed at the 'item detail' rate instead of the 'item' rate.",
            "default": false
          },
          "includeSellerLeads": {
            "title": "Include seller leads",
            "type": "boolean",
            "description": "Output one deduplicated seller record per unique seller found in the results — username, location, feedback reputation, sales volume, followers, business flag, verifications, response time and a 0-100 lead score. Ideal for sourcing, reseller and wholesale outreach.",
            "default": false
          },
          "includeSellerReviews": {
            "title": "Include seller reviews",
            "type": "boolean",
            "description": "Output the feedback/reviews left on each seller (rating, text, reviewer, the seller's reply, date). Pulls reviews for the sellers found in the results or for member URLs/IDs.",
            "default": false
          },
          "maxReviewsPerSeller": {
            "title": "Max reviews per seller",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many of the most recent reviews to output per seller when Include seller reviews is on.",
            "default": 20
          },
          "maxSellerItems": {
            "title": "Max items per seller",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "When scraping a member/seller (via member URL or seller ID), how many of their listings to also output. 0 returns only their profile (and reviews if enabled).",
            "default": 0
          },
          "monitorMode": {
            "title": "Monitor mode — only new records",
            "type": "boolean",
            "description": "Remember item/seller/review IDs seen in previous runs (in a named key-value store) and emit only records that are new — plus listings whose price dropped. Works alongside Apify Schedules for hands-off monitoring of a search or seller.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Names the monitor store so different searches keep separate memory (e.g. \"nike-uk-under-50\"). Reuse the same key across scheduled runs to keep deduplicating against the same history.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. Vinted is reachable on Apify datacenter proxies (the default); switch to Residential if you hit rate challenges at high volume or in some markets.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}