{
  "openapi": "3.0.1",
  "info": {
    "title": "AutoScout24 Scraper - Used Car Listings & Price Drop Monitor",
    "description": "Schedule it hourly or daily and get only new used-car listings, price drops and removed cars from AutoScout24 in Germany, Italy, France, Netherlands, Belgium, Austria, Spain and Luxembourg. Price with currency, price rating, mileage, year, fuel, power, dealer and photo. No login. JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "uiZ7kmZFeZUZqG6Kq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~autoscout24-listings-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-autoscout24-listings-monitor",
        "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/neverempty~autoscout24-listings-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-autoscout24-listings-monitor",
        "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/neverempty~autoscout24-listings-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-autoscout24-listings-monitor",
        "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": {
          "makeModels": {
            "title": "Make / model",
            "type": "array",
            "description": "Schedule it hourly or daily with Monitor mode on to get only new listings and price drops. Write make/model as in an AutoScout24 search address, for example bmw/3er, volkswagen/golf, mercedes-benz/c-klasse, fiat/500, or just a make such as audi. Each one is searched in each country. Leave this and Search URLs empty to run the example bmw/3er on autoscout24.de.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Which country's cars to list, each on its own AutoScout24 site. Empty = Germany. Prices are in euros.",
            "items": {
              "type": "string",
              "enum": [
                "de",
                "it",
                "fr",
                "nl",
                "be",
                "at",
                "es",
                "lu"
              ],
              "enumTitles": [
                "Germany (autoscout24.de)",
                "Italy (autoscout24.it)",
                "France (autoscout24.fr)",
                "Netherlands (autoscout24.nl)",
                "Belgium (autoscout24.be)",
                "Austria (autoscout24.at)",
                "Spain (autoscout24.es)",
                "Luxembourg (autoscout24.lu)"
              ]
            }
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Optional. Paste an AutoScout24 search address with all your filters set on the site, for example https://www.autoscout24.de/lst/bmw/3er?fregfrom=2018&priceto=25000. The list is always read newest first. The filters below do not change a pasted URL.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "priceFrom": {
            "title": "Price from (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Lowest price in euros. With a price filter, cars without a price are not listed by AutoScout24."
          },
          "priceTo": {
            "title": "Price up to (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Highest price in euros."
          },
          "yearFrom": {
            "title": "First registration from (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Optional. Earliest year of first registration, for example 2018."
          },
          "yearTo": {
            "title": "First registration up to (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Optional. Latest year of first registration."
          },
          "mileageFrom": {
            "title": "Mileage from (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Lowest mileage in kilometres."
          },
          "mileageTo": {
            "title": "Mileage up to (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Highest mileage in kilometres, for example 100000."
          },
          "fuelTypes": {
            "title": "Fuel",
            "type": "array",
            "description": "Optional. Only cars with these fuels. Empty = all fuels.",
            "items": {
              "type": "string",
              "enum": [
                "petrol",
                "diesel",
                "electric",
                "hybrid-petrol",
                "hybrid-diesel",
                "lpg",
                "cng",
                "hydrogen"
              ],
              "enumTitles": [
                "Petrol",
                "Diesel",
                "Electric",
                "Hybrid (petrol)",
                "Hybrid (diesel)",
                "LPG",
                "CNG",
                "Hydrogen"
              ]
            }
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "automatic",
              "manual"
            ],
            "type": "string",
            "description": "Optional. Only automatic or only manual cars. Empty = both."
          },
          "sellerType": {
            "title": "Seller",
            "enum": [
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Optional. Only dealers or only private sellers. Empty = both."
          },
          "zipCode": {
            "title": "Postal code",
            "type": "string",
            "description": "Optional. Search around this postal code, for example 80331. Works with one country at a time."
          },
          "radiusKm": {
            "title": "Radius around the postal code (km)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Optional. Distance from the postal code in kilometres, for example 50. Needs a postal code."
          },
          "maxResultsPerSearch": {
            "title": "Max cars per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many cars to return per search, newest first (empty = 50). One AutoScout24 search shows at most 4,000 cars; above that, a normal run reads the search in price ranges to reach more. In Monitor mode this is the most new cars returned per search and run; price changes and removed cars are always returned."
          },
          "monitorMode": {
            "title": "Monitor mode: only new cars, price drops and removed cars",
            "type": "boolean",
            "description": "Schedule it hourly or daily and get only what changed. On: the first run returns the newest cars (changeType new, isFirstCheck true) and remembers them as the starting point. Every later run returns only cars that are new since the previous check (new), cars whose price went down or up (price_drop / price_up, with previousPrice) and cars that are gone from the list (removed). Each run that reads the list is charged the run start fee even when nothing changed; then a free row says so."
          },
          "includePriceChanges": {
            "title": "Monitor mode: return price drops and rises",
            "type": "boolean",
            "description": "On (default): also return cars returned before whose price changed since the previous check, with previousPrice and priceChange. Off: no price change rows.",
            "default": true
          },
          "includeRemoved": {
            "title": "Monitor mode: return removed cars",
            "type": "boolean",
            "description": "On (default): also return cars returned before that are gone from the part of the list this watch reads (sold, withdrawn or no longer matching the search), with their last known title, link and price. Off: no removed rows.",
            "default": true
          },
          "includeUnchanged": {
            "title": "Monitor mode: also return unchanged cars",
            "type": "boolean",
            "description": "Off (default): cars that did not change are not returned. On: return them too, with changeType unchanged (each is a charged row).",
            "default": false
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Optional. Keeps separate memories for Monitor mode, for example one per client (letters, digits, dot, dash, underscore; up to 40). Runs with the same watch name and the same search share what has already been returned."
          },
          "resetMonitoringState": {
            "title": "Start the watch again",
            "type": "boolean",
            "description": "On: forget what this watch has seen for these searches before running, so this run is a first check again."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}