{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinted Scraper — Cross-Country Price Comparison",
    "description": "Scrape Vinted marketplace across 19 countries. Search items, compare prices between countries, analyze sellers, track trending products. The only scraper with cross-country arbitrage detection. Extract prices, brands, sizes, photos, ratings. Export JSON, CSV, Excel. Pay-per-result pricing.",
    "version": "1.0",
    "x-build-id": "MDG5l72IYpIuUImqL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kazkn~vinted-smart-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kazkn-vinted-smart-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/kazkn~vinted-smart-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kazkn-vinted-smart-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/kazkn~vinted-smart-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kazkn-vinted-smart-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"
        ],
        "properties": {
          "mode": {
            "title": "🎯 Scraping Mode",
            "enum": [
              "SEARCH",
              "CROSS_COUNTRY",
              "ITEM_DETAIL",
              "SELLER_PROFILE",
              "SOLD_ITEMS",
              "TRENDING",
              "PRICE_TRACK"
            ],
            "type": "string",
            "description": "Choose what you want to do. Start with Search to find items, or try Cross-Country to compare prices across Europe.",
            "default": "SEARCH"
          },
          "query": {
            "title": "🔍 Search Query",
            "type": "string",
            "description": "Enter the keywords you're looking for. Works with Search, Cross-Country, Sold Items, and Trending modes."
          },
          "countries": {
            "title": "🌍 Countries",
            "maxItems": 5,
            "type": "array",
            "description": "Select which Vinted markets to search. For Cross-Country mode, pick 2+ countries to compare prices side by side (max 5 countries per run).",
            "items": {
              "type": "string",
              "enum": [
                "fr",
                "de",
                "uk",
                "it",
                "es",
                "nl",
                "pl",
                "pt",
                "be",
                "at",
                "lt",
                "cz",
                "sk",
                "hu",
                "ro",
                "hr",
                "fi",
                "dk",
                "se",
                "ee",
                "gr",
                "ie",
                "lu",
                "lv",
                "si",
                "us"
              ],
              "enumTitles": [
                "🇫🇷 France",
                "🇩🇪 Germany",
                "🇬🇧 United Kingdom",
                "🇮🇹 Italy",
                "🇪🇸 Spain",
                "🇳🇱 Netherlands",
                "🇵🇱 Poland",
                "🇵🇹 Portugal",
                "🇧🇪 Belgium",
                "🇦🇹 Austria",
                "🇱🇹 Lithuania",
                "🇨🇿 Czech Republic",
                "🇸🇰 Slovakia",
                "🇭🇺 Hungary",
                "🇷🇴 Romania",
                "🇭🇷 Croatia",
                "🇫🇮 Finland",
                "🇩🇰 Denmark",
                "🇸🇪 Sweden",
                "🇪🇪 Estonia",
                "🇬🇷 Greece",
                "🇮🇪 Ireland",
                "🇱🇺 Luxembourg",
                "🇱🇻 Latvia",
                "🇸🇮 Slovenia",
                "🇺🇸 United States"
              ]
            },
            "default": [
              "fr",
              "de"
            ]
          },
          "maxItems": {
            "title": "📊 Max Results",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Set how many items to return. Start with 20 to test. For stability and cost control, max is capped at 300 per run.",
            "default": 20
          },
          "itemUrls": {
            "title": "📦 Item URLs",
            "type": "array",
            "description": "Paste one or more Vinted item URLs. Required for Item Detail and Price Track modes. Accepts any Vinted domain. If you leave mode on Search and only provide item URLs, the actor will auto-switch to Item Detail:",
            "items": {
              "type": "string"
            }
          },
          "sellerUrls": {
            "title": "👤 Seller URLs",
            "type": "array",
            "description": "Paste one or more Vinted seller profile URLs. Required for Seller Profile mode. Works with any Vinted domain (vinted.fr, vinted.de, vinted.co.uk, etc.). If you leave mode on Search and only provide seller URLs, the actor will auto-switch to Seller Profile mode.",
            "items": {
              "type": "string"
            }
          },
          "condition": {
            "title": "✨ Condition",
            "type": "array",
            "description": "Filter results by item condition. Leave empty to include all 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"
              ]
            }
          },
          "priceMin": {
            "title": "💶 Min Price",
            "type": "number",
            "description": "Set a minimum price in local currency (€ for most countries, £ for UK). Leave empty for no minimum."
          },
          "priceMax": {
            "title": "💶 Max Price",
            "type": "number",
            "description": "Set a maximum price in local currency. Leave empty for no maximum."
          },
          "sortBy": {
            "title": "📈 Sort By",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "newest_first"
            ],
            "type": "string",
            "description": "Choose how to sort your results.",
            "default": "relevance"
          },
          "categoryId": {
            "title": "📁 Category ID",
            "type": "integer",
            "description": "Enter a Vinted category number to filter by type. Find it in the URL when browsing a category on vinted.fr (e.g. catalog[]=5 → enter 5). Leave empty for all categories."
          },
          "brandIds": {
            "title": "🏷️ Brand IDs",
            "type": "array",
            "description": "Enter brand numbers to filter by brand. Find them in the Vinted URL after selecting a brand filter (e.g. brand_ids[]=53 → 53 = Nike). Leave empty for all brands.",
            "items": {
              "type": "integer"
            }
          },
          "sizeIds": {
            "title": "📏 Size IDs",
            "type": "array",
            "description": "Enter size numbers to filter by size. Find them in the Vinted URL after selecting a size filter. Leave empty for all sizes.",
            "items": {
              "type": "integer"
            }
          },
          "includeSellerDetails": {
            "title": "👤 Also fetch seller ratings & reviews for each item",
            "type": "boolean",
            "description": "Enable to get seller verification status, rating, review count, and response time for every item. Makes the run slower but gives richer data.",
            "default": false
          },
          "includePhotos": {
            "title": "📸 Include Photo URLs",
            "type": "boolean",
            "description": "Enable to include all item photo URLs in the output. Disable for smaller, faster exports.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy",
            "type": "object",
            "description": "Leave empty for small runs (under 500 items — works fine without proxy). Use Apify datacenter proxies for 500-5K items, or residential for 5K+."
          },
          "maxConcurrency": {
            "title": "⚡ Parallel Requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Set how many pages to scrape at once. Use 3-5 without proxy, 10-20 with residential proxy.",
            "default": 5
          },
          "maxRequestRetries": {
            "title": "🔄 Max Retries",
            "type": "integer",
            "description": "Set how many times to retry a failed request before skipping it.",
            "default": 3
          },
          "requestDelayMs": {
            "title": "⏱️ Delay Between Requests (ms)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Set wait time between requests in milliseconds. Use 0 with proxy, 500-1000 without. Helps avoid rate limits.",
            "default": 500
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}