{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinted Scraper - Listings with Favourite Counts",
    "description": "Collect verified Vinted listings from 26 marketplaces with favourite counts, search, category, brand, size, condition and price filters, and monitor new listings and favourite changes.",
    "version": "0.1",
    "x-build-id": "CjTaMfUDZWUdAusmL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ziomixshot~vinted-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ziomixshot-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/ziomixshot~vinted-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ziomixshot-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/ziomixshot~vinted-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ziomixshot-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": {
          "query": {
            "title": "Search phrase",
            "maxLength": 200,
            "type": "string",
            "description": "For example nike air max. Leave empty to browse a whole category or brand."
          },
          "country": {
            "title": "Marketplace",
            "enum": [
              "pl",
              "fr",
              "de",
              "it",
              "es",
              "nl",
              "be",
              "lt",
              "cz",
              "sk",
              "at",
              "pt",
              "hu",
              "ro",
              "hr",
              "se",
              "dk",
              "fi",
              "lu",
              "gr",
              "co.uk",
              "com",
              "ie",
              "lv",
              "ee",
              "si"
            ],
            "type": "string",
            "description": "The Vinted marketplace to search; the run reads it through a residential proxy of the same country.",
            "default": "pl"
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Category name or path in the language of the marketplace, for example Mężczyźni > Obuwie > Obuwie sportowe, a category code or a category page URL. A name used by several categories is refused with the list to choose from. Not sure of the name? Run with Show categories to list every category of the marketplace with its ID. Show category filters lists the filters of a category."
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Brand names, for example Nike. Each name is matched to the Vinted brand with the same name (or the best match); the run log shows what was chosen.",
            "items": {
              "type": "string"
            }
          },
          "conditions": {
            "title": "Condition",
            "type": "array",
            "description": "Only listings in one of these 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"
              ]
            }
          },
          "priceFrom": {
            "title": "Price from",
            "minimum": 0,
            "type": "number",
            "description": "Minimum price, inclusive, in the currency of the marketplace."
          },
          "priceTo": {
            "title": "Price to",
            "minimum": 0,
            "type": "number",
            "description": "Maximum price, inclusive, in the currency of the marketplace."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest",
              "priceAsc",
              "priceDesc"
            ],
            "type": "string",
            "description": "Relevance, newest, or by price. Price order starts from the cheapest or most expensive listing in the whole result, so set Price from to skip very cheap ones. Monitor mode always reads the newest first.",
            "default": "relevance"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard limit of unique listings returned and charged, shared by all Search URLs of the run (they are read one after another). Vinted returns at most 960 listings per search, so a larger limit splits the search by price.",
            "default": 100
          },
          "includePromoted": {
            "title": "Include promoted listings",
            "type": "boolean",
            "description": "Promoted listings match your filters too. Turn off to return organic results only.",
            "default": true
          },
          "enrichDetails": {
            "title": "Fetch listing details",
            "type": "boolean",
            "description": "Open every listing page and add the description, all photos, category path, attributes, relative upload time and seller details. Each enriched record is also charged the listing-details event; listings Vinted no longer serves are skipped and not charged.",
            "default": false
          },
          "includeRawData": {
            "title": "Include raw Vinted data",
            "type": "boolean",
            "description": "Add the unmodified catalog card as raw.",
            "default": false
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "scrape",
              "monitor"
            ],
            "type": "string",
            "description": "Scrape returns every matching listing. Monitor returns only listing IDs not reported by earlier runs that use the same store and key; it reads the newest first, skips promoted cards and ignores the sort option.",
            "default": "scrape"
          },
          "seenStoreName": {
            "title": "Seen-IDs store name",
            "type": "string",
            "description": "Named key-value store shared by monitor runs. Leave empty to use a store named after the search (vinted-monitor-...; the run log shows it), so repeating the same search keeps its history. Set a name to share one history between different runs."
          },
          "seenIdsKey": {
            "title": "Seen-IDs key",
            "type": "string",
            "description": "Record in the store that holds the reported IDs (up to 500000 newest IDs are kept).",
            "default": "VINTED_SEEN_IDS"
          },
          "stopMonitorOnAllSeenPages": {
            "title": "Stop after N pages without new listings",
            "minimum": 1,
            "type": "integer",
            "description": "Monitor stops when this many consecutive pages contain no new organic listing. Raise it when new listings may appear further down the list.",
            "default": 1
          },
          "trackFavourites": {
            "title": "Track favourite counts",
            "type": "boolean",
            "description": "Monitor only. Also returns a change record for every listing whose favourite count changed since the previous run. It compares the cards on the pages the monitor reads; the first run only stores the counters. Counters are kept next to the seen IDs, in the record named like the seen-IDs key plus _FAVOURITES (up to 200000 newest listings). Charged as the listing-change event.",
            "default": false
          },
          "countOnly": {
            "title": "Count only",
            "type": "boolean",
            "description": "Return only the number of listings Vinted reports for the search, without collecting or charging for listings. Vinted never reports more than 960 per search, so a larger search is reported as \"at least 960\". Filters are still verified.",
            "default": false
          },
          "listFilters": {
            "title": "Show category filters",
            "type": "boolean",
            "description": "List the filters of the chosen category (codes, allowed values with IDs and the input field that takes them) instead of collecting listings. Needs Category or Category ID. Free.",
            "default": false
          },
          "listCategories": {
            "title": "Show categories",
            "type": "boolean",
            "description": "List the category tree of the marketplace (ID, path, code, URL) instead of collecting listings. Category narrows the list to paths containing that text. Free.",
            "default": false
          },
          "startUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Copied Vinted catalog URLs (vinted.pl, vinted.fr, ...), one per line. When set, they replace Search phrase, Category, Brands and the other search fields, so fill either the URLs or the fields. A URL with a parameter this Actor does not know is rejected.",
            "items": {
              "type": "string"
            }
          },
          "categoryId": {
            "title": "Category ID",
            "minimum": 1,
            "type": "integer",
            "description": "Vinted category ID, for example 1452. Use it instead of Category when you already know the ID."
          },
          "brandIds": {
            "title": "Brand IDs",
            "type": "array",
            "description": "Vinted brand IDs, for example [53]. Added to Brands.",
            "items": {
              "type": "integer",
              "minimum": 1
            }
          },
          "sizeIds": {
            "title": "Size IDs",
            "type": "array",
            "description": "Vinted size IDs. Show category filters lists them.",
            "items": {
              "type": "integer",
              "minimum": 1
            }
          },
          "colorIds": {
            "title": "Color IDs",
            "type": "array",
            "description": "Vinted colour IDs. Show category filters lists them.",
            "items": {
              "type": "integer",
              "minimum": 1
            }
          },
          "materialIds": {
            "title": "Material IDs",
            "type": "array",
            "description": "Vinted material IDs. Show category filters lists them.",
            "items": {
              "type": "integer",
              "minimum": 1
            }
          },
          "otherFilters": {
            "title": "Other filters (JSON)",
            "type": "object",
            "description": "Filters of the category without a field of their own, as filter code to a list of IDs, for example {\"video_game_platform\":[7]}. Show category filters lists them. A filter the category does not have fails the run before any listing is charged."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}