{
  "openapi": "3.0.1",
  "info": {
    "title": "Europe Used Car Tracker: AutoScout24, Kleinanzeigen, Willhaben",
    "description": "Scrape used cars from AutoScout24 (8 countries), Kleinanzeigen.de and Willhaben.at in one run. The same car on two sites becomes one result. Monitor mode shows new cars, price drops, price rises and sold cars.",
    "version": "0.1",
    "x-build-id": "p0bXeRN27cPx5AFxt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apizilla~europe-used-car-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apizilla-europe-used-car-tracker",
        "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/apizilla~europe-used-car-tracker/runs": {
      "post": {
        "operationId": "runs-sync-apizilla-europe-used-car-tracker",
        "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/apizilla~europe-used-car-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-apizilla-europe-used-car-tracker",
        "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": {
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Car brand, for example \"Volkswagen\", \"BMW\", \"Mercedes-Benz\", \"Skoda\". Leave empty for all brands."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model, for example \"Golf\", \"3er\", \"C-Klasse\", \"Octavia\". Use the name the portals use (German names on AutoScout24.de). Needs a make."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "AutoScout24 is searched in every country you pick. Kleinanzeigen only runs when Germany is picked, Willhaben only when Austria is picked.",
            "items": {
              "type": "string",
              "enum": [
                "DE",
                "AT",
                "IT",
                "FR",
                "NL",
                "BE",
                "ES",
                "LU"
              ],
              "enumTitles": [
                "Germany",
                "Austria",
                "Italy",
                "France",
                "Netherlands",
                "Belgium",
                "Spain",
                "Luxembourg"
              ]
            },
            "default": [
              "DE",
              "AT"
            ]
          },
          "priceMin": {
            "title": "Min price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price in euros."
          },
          "priceMax": {
            "title": "Max price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in euros."
          },
          "yearMin": {
            "title": "First registration from (year)",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Oldest first registration year, for example 2015."
          },
          "yearMax": {
            "title": "First registration to (year)",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Newest first registration year."
          },
          "mileageMax": {
            "title": "Max mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest mileage in kilometres."
          },
          "fuel": {
            "title": "Fuel",
            "enum": [
              "petrol",
              "diesel",
              "electric",
              "hybrid",
              "hybrid-diesel",
              "lpg",
              "cng",
              "hydrogen"
            ],
            "type": "string",
            "description": "Only cars with this fuel. Empty means all."
          },
          "gearbox": {
            "title": "Gearbox",
            "enum": [
              "manual",
              "automatic",
              "semi-automatic"
            ],
            "type": "string",
            "description": "Only cars with this gearbox. Empty means all."
          },
          "postcode": {
            "title": "Postcode",
            "type": "string",
            "description": "Only cars near this postcode, for example \"80331\" (Munich). Leave empty to search the whole country."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Distance around the postcode. Default 50 km."
          },
          "postcodeCountry": {
            "title": "Country of the postcode",
            "enum": [
              "DE",
              "AT",
              "IT",
              "FR",
              "NL",
              "BE",
              "ES",
              "LU"
            ],
            "type": "string",
            "description": "The country the postcode is in. Kleinanzeigen needs a German postcode for a radius search.",
            "default": "DE"
          },
          "sources": {
            "title": "Portals",
            "type": "array",
            "description": "Which websites to search.",
            "items": {
              "type": "string",
              "enum": [
                "autoscout24",
                "kleinanzeigen",
                "willhaben"
              ],
              "enumTitles": [
                "AutoScout24",
                "Kleinanzeigen.de (Germany)",
                "Willhaben.at (Austria)"
              ]
            },
            "default": [
              "autoscout24",
              "kleinanzeigen",
              "willhaben"
            ]
          },
          "maxListingsPerPortal": {
            "title": "Max cars per portal",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after this many cars from each portal. For AutoScout24 every country counts as its own portal. Lower is cheaper and faster.",
            "default": 20
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "newest",
              "price"
            ],
            "type": "string",
            "description": "Which cars come first when there are more than the max: the newest ads or the cheapest.",
            "default": "newest"
          },
          "includeNewCars": {
            "title": "Include new cars",
            "type": "boolean",
            "description": "Off: used cars only.",
            "default": false
          },
          "includeDetails": {
            "title": "Include details",
            "type": "boolean",
            "description": "Open every car's page to get the description, equipment, colour, body type, exact coordinates and the date the ad went online. Slower, and costs one extra event per car.",
            "default": false
          },
          "monitor": {
            "title": "Monitor changes",
            "type": "boolean",
            "description": "Compare with the last run and mark each car as new, price_drop, price_rise, back or unchanged. Cars that are gone are added as removed. Use it with a schedule, for example every day.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Runs with the same name are compared with each other. Letters, numbers and dashes. Leave empty to make one from your filters."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Default: Apify Proxy without a group. Every portal starts on cheap datacenter proxies. If a portal blocks them, that portal switches to residential proxies automatically for the rest of the run (no extra cost for you). Pick a group yourself to turn this off.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}