{
  "openapi": "3.0.1",
  "info": {
    "title": "Car Listing Scraper for AutoScout24 - Prices & Dealer Leads",
    "description": "Scrape car listings from AutoScout24 in 8 European countries: price and price rating, mileage, specs, WLTP CO2, equipment and accident history, plus dealer B2B leads with phone, e-mail, VAT and website. Monitor new listings and price drops. Independent tool, not affiliated with AutoScout24.",
    "version": "0.1",
    "x-build-id": "duiEwtKEE2uXcsJP0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~autoscout24-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-autoscout24-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~autoscout24-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-autoscout24-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~autoscout24-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-autoscout24-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": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "search",
              "carDetail",
              "dealerLeads"
            ],
            "type": "string",
            "description": "<b>Search cars</b> = listings from a make/model/filter search (the default). <b>Car details</b> = full vehicle records: for the offer URLs you paste, and for every car your search finds. <b>Dealer leads</b> = car-dealer B2B profiles with phone, website, email, VAT and register number, ratings and a lead score. Start URLs are always routed by their type, whatever the mode.",
            "default": "search"
          },
          "make": {
            "title": "Make / brand",
            "type": "string",
            "description": "Car brand, e.g. <code>Audi</code>, <code>BMW</code>, <code>Volkswagen</code> (or <code>VW</code>), <code>Mercedes-Benz</code> (or <code>Mercedes</code>), <code>Tesla</code>. Checked against AutoScout24's own make list before anything is billed: an unknown make stops the run at $0 with suggestions. Leave empty to search all makes with the filters below."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model within the make, e.g. <code>X5</code>, <code>3 Series</code>, <code>Golf</code>, <code>Model 3</code>. Checked against AutoScout24's model list (an unknown model stops the run at $0). Needs a make. Leave empty for all models."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "AutoScout24 markets to include: Germany, Austria, Belgium, Spain, France, Italy, Luxembourg and the Netherlands. Names or codes in any of their languages work (<code>germany</code>, <code>de</code>, <code>deutschland</code>, <code>italy</code>, <code>it</code>...). Empty = all 8. A value that is not one of these stops the run at $0 instead of silently searching every country.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Paste AutoScout24 URLs: search pages (<code>/lst/...</code>), single offers (<code>/offers/...</code>) or dealer pages (<code>/dealerinfo/...</code>). Each URL is routed by its type in every mode, in addition to the search filters. The form's example search (Audi, Germany) is skipped automatically when you give URLs.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "priceFrom": {
            "title": "Min price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Only cars at or above this price."
          },
          "priceTo": {
            "title": "Max price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Only cars at or below this price."
          },
          "yearFrom": {
            "title": "First registration from (year)",
            "type": "integer",
            "description": "Only cars first registered in this year or later, e.g. <code>2018</code>."
          },
          "yearTo": {
            "title": "First registration to (year)",
            "type": "integer",
            "description": "Only cars first registered in this year or earlier."
          },
          "mileageFrom": {
            "title": "Min mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Only cars with at least this many kilometres."
          },
          "mileageTo": {
            "title": "Max mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Only cars with at most this many kilometres (e.g. <code>100000</code>)."
          },
          "fuelTypes": {
            "title": "Fuel types",
            "type": "array",
            "description": "Filter by fuel, using AutoScout24's own fuel codes. AutoScout24 has no separate plug-in code, so \"Plug-in hybrid\" returns petrol- and diesel-electric hybrids.",
            "items": {
              "type": "string",
              "enum": [
                "petrol",
                "diesel",
                "electric",
                "hybrid",
                "plug-in-hybrid",
                "hybrid-diesel",
                "lpg",
                "cng",
                "hydrogen",
                "ethanol",
                "other"
              ],
              "enumTitles": [
                "Petrol (petrol)",
                "Diesel (diesel)",
                "Electric (electric)",
                "Hybrid, petrol-electric (hybrid)",
                "Plug-in hybrid, petrol or diesel electric (plug-in-hybrid)",
                "Hybrid, diesel-electric (hybrid-diesel)",
                "LPG (lpg)",
                "CNG (cng)",
                "Hydrogen (hydrogen)",
                "Ethanol / E85 (ethanol)",
                "Other (other)"
              ]
            }
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "",
              "automatic",
              "manual",
              "semi-automatic"
            ],
            "type": "string",
            "description": "Gearbox type.",
            "default": ""
          },
          "bodyTypes": {
            "title": "Body types",
            "type": "array",
            "description": "Body styles, e.g. <code>suv</code>, <code>sedan</code>, <code>station-wagon</code>, <code>compact</code>, <code>convertible</code>, <code>coupe</code>, <code>van</code>, <code>transporter</code>, <code>other</code> (common synonyms such as estate, kombi or cabrio work too). A value that is not recognised stops the run at $0 instead of silently searching every body style.",
            "items": {
              "type": "string"
            }
          },
          "powerFromKw": {
            "title": "Min power (kW)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum engine power in kilowatts (1 kW ≈ 1.36 hp)."
          },
          "powerToKw": {
            "title": "Max power (kW)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum engine power in kilowatts."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "all",
              "new",
              "used"
            ],
            "type": "string",
            "description": "New, used, or both.",
            "default": "all"
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "standard",
              "price_asc",
              "price_desc",
              "age_newest",
              "mileage_asc",
              "power_desc",
              "year_newest"
            ],
            "type": "string",
            "description": "How to order search results. Use <b>Newest listings first</b> with monitoring to catch fresh listings first.",
            "default": "standard"
          },
          "keyword": {
            "title": "Model version text (optional)",
            "type": "string",
            "description": "Words matched against the listing's model-version text, e.g. <code>Competition</code>, <code>GTI</code>, <code>AMG Line</code>, <code>Quattro</code> (AutoScout24's own version filter). Use the filters above for body style, fuel or gearbox."
          },
          "includeDetails": {
            "title": "Fetch full car details",
            "type": "boolean",
            "description": "For each car found, open its offer page for the complete record: equipment list, WLTP fuel consumption & CO2, emission class and sticker, accident & service history, previous owners, colours, GPS location, German HSN/TSN key number, dealer stock number and the full description. One extra request per car, billed as a Car detail instead of a Car listing.",
            "default": false
          },
          "emitDealerLeads": {
            "title": "Also emit dealer-lead records",
            "type": "boolean",
            "description": "In Search / Car-detail mode, also push one deduplicated dealer-lead record (type = \"dealerLead\") for every unique dealer found: phone, website, email, VAT and commercial-register number, address, ratings, opening hours and a 0-100 lead score.",
            "default": false
          },
          "enrichDealerEmails": {
            "title": "Crawl dealer websites for emails",
            "type": "boolean",
            "description": "When a dealer lists their own website, visit it (home + imprint/contact, hard-capped) to extract a public contact email. Only runs for dealers that have a website.",
            "default": false
          },
          "maxReviewsPerDealer": {
            "title": "Max reviews per dealer",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "How many dealer reviews to include in each dealer-lead record (0 to skip reviews).",
            "default": 10
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of cars (listings or details) across all searches, shared fairly between them. AutoScout24 serves at most 4,000 results per search: split by country, price band or year to go deeper.",
            "default": 200
          },
          "maxDealers": {
            "title": "Max dealer leads",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of dealer-lead profiles to fetch (Dealer-leads mode, or when \"emit dealer-lead records\" is on).",
            "default": 200
          },
          "deduplicateResults": {
            "title": "Deduplicate within a run",
            "type": "boolean",
            "description": "Skip records already emitted in the same run (recommended).",
            "default": true
          },
          "monitorMode": {
            "title": "Monitoring mode - only new & changed",
            "type": "boolean",
            "description": "Remember cars across runs in a named key-value store and emit ONLY cars that are new or whose price changed since the last run (and only dealers not seen before). The first run is the baseline: it delivers up to \"Max results\" and remembers everything it checked, so later runs never report older listings as new. A run with nothing new costs nothing. Works with Apify Schedules.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Names the memory used by monitoring mode. Use a distinct key per saved search so different watches don't share state.",
            "default": "default"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Maximum parallel requests. 6–10 is a good balance for AutoScout24.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. The default Apify Proxy (datacenter) is the fastest and cheapest lane for AutoScout24; residential is rarely needed.",
            "default": {
              "useApifyProxy": true
            }
          },
          "urlsFromFile": {
            "title": "Import URLs from a file",
            "type": "string",
            "description": "Paste a list of URLs (one per line), OR one link to a .txt/.csv file, Google Sheet or Google Drive file containing them. Lets you import many Start URLs at once instead of typing each. Google Sheet/Drive share links are handled automatically."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}