{
  "openapi": "3.0.1",
  "info": {
    "title": "willhaben Auto Scraper - Cars & Motorbikes",
    "description": "Scrape willhaben.at used cars, motorbikes, vans and campers (Austria). Make, model, price, year, mileage, kW/hp, fuel, gearbox, equipment, dealer, location; optional description and warranty. Only-new mode, duplicates free, private sellers protected.",
    "version": "0.1",
    "x-build-id": "iP9sTkIIHzLu1AdTd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/aidnurs~willhaben-auto-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-aidnurs-willhaben-auto-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/aidnurs~willhaben-auto-scraper/runs": {
      "post": {
        "operationId": "runs-sync-aidnurs-willhaben-auto-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/aidnurs~willhaben-auto-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-aidnurs-willhaben-auto-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": {
          "vehicleType": {
            "title": "Vehicle type",
            "enum": [
              "car",
              "motorbike",
              "van",
              "camper"
            ],
            "type": "string",
            "description": "What to search for. Ignored when Search URLs are given.",
            "default": "car"
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Optional. Brand name as you would type it: \"VW\" or \"Volkswagen\", \"Mercedes\", \"BMW\", \"Škoda\", \"KTM\", \"Hymer\". Leave empty for all makes."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Optional, needs a make. \"Golf\", \"3er\", \"C-Klasse\", \"ID.3\". Known car models use willhaben's model page; anything else (\"Golf GTI\", motorbike models) is matched in model, version and title."
          },
          "state": {
            "title": "Federal state",
            "enum": [
              "",
              "wien",
              "niederoesterreich",
              "oberoesterreich",
              "steiermark",
              "tirol",
              "salzburg",
              "kaernten",
              "vorarlberg",
              "burgenland"
            ],
            "type": "string",
            "description": "Bundesland. Leave empty for all of Austria.",
            "default": ""
          },
          "districts": {
            "title": "Districts (Bezirke)",
            "type": "array",
            "description": "Optional. One or more districts: a name (\"Graz-Umgebung\", \"Mödling\", \"Neubau\"), a Vienna postcode (\"1070\"), any other 4-digit postcode (\"8010\", filtered by postcode), or a willhaben areaId. Leave empty for the whole federal state.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Optional. Words that must appear in make, model, version, title, equipment or the first lines of the description. Commas mean OR, spaces mean AND, a minus excludes: \"standheizung, sitzheizung\", \"gti dsg\", \"-unfallwagen\" (a minus word also drops longer words that start with it: -unfall would drop \"unfallfrei\"). Umlauts work either way."
          },
          "priceMin": {
            "title": "Min price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price."
          },
          "priceMax": {
            "title": "Max price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price. With a max price the Actor sorts by price (cheapest first) and stops early, so it stays fast and cheap."
          },
          "yearMin": {
            "title": "First registration from (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Erstzulassung from this year. New cars without a registration count as this year."
          },
          "yearMax": {
            "title": "First registration until (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Erstzulassung up to this year."
          },
          "mileageMax": {
            "title": "Max mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum kilometres."
          },
          "powerMin": {
            "title": "Min power (kW)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum engine power in kW (1 kW = 1.36 hp). 100 kW = 136 hp."
          },
          "fuel": {
            "title": "Fuel",
            "enum": [
              "",
              "petrol",
              "diesel",
              "electric",
              "hybrid",
              "hybrid-petrol",
              "hybrid-diesel",
              "gas",
              "hydrogen"
            ],
            "type": "string",
            "description": "Fuel type.",
            "default": ""
          },
          "gearbox": {
            "title": "Gearbox",
            "enum": [
              "",
              "manual",
              "automatic"
            ],
            "type": "string",
            "description": "Manual or automatic (automatic includes semi-automatic and direct drive).",
            "default": ""
          },
          "sellerType": {
            "title": "Seller",
            "enum": [
              "all",
              "private",
              "dealer"
            ],
            "type": "string",
            "description": "Private sellers, dealers or both.",
            "default": "all"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "priceAsc",
              "priceDesc",
              "mileageAsc",
              "mileageDesc",
              "yearDesc",
              "yearAsc"
            ],
            "type": "string",
            "description": "Order of results. Newest first is used automatically for 'Only new listings'. With a max price, max mileage or min year and 'Newest first', the Actor sorts by that field itself to stop early.",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of listings to save. You only pay for listings saved to the dataset.",
            "default": 500
          },
          "includeDetails": {
            "title": "Include details",
            "type": "boolean",
            "description": "Open every listing to add the full description, complete equipment list, first registration month, doors, drive, warranty duration, service book, Pickerl valid until, CO₂, WLTP range, financing and the dealer's website and address. Charged as an extra event per listing; about 10× slower.",
            "default": false
          },
          "includePersonalData": {
            "title": "Include personal data",
            "type": "boolean",
            "description": "Off by default: for private sellers the output has no name, no phone, no street and no profile ID, house numbers in their texts are masked, and their coordinates are rounded to about 1 km. Phone numbers and personal e-mails inside descriptions are masked ([phone removed], [email removed]; role mailboxes like office@ stay). Contact persons and phone numbers of dealers are not saved.<br><br>Turn it on to get everything the site shows publicly: the contact name and phone of private sellers and the dealer's phone (contact fields need 'Include details'), the street, exact coordinates and unmasked descriptions.<br><br>⚠️ This returns personal data. You're responsible for having a legal basis to collect and use it under privacy laws (e.g. GDPR).",
            "default": false
          },
          "startUrls": {
            "title": "Search URLs (optional)",
            "type": "array",
            "description": "Paste willhaben Auto & Motor search URLs straight from your browser (https://www.willhaben.at/iad/gebrauchtwagen/...). When given, the search fields above are ignored, but Keywords and the filters still apply. Filters that willhaben's robots.txt does not allow crawlers to send (make and model ids, price, mileage, year, power, gearbox, body type, condition, private/dealer, keyword, last 48 hours) are removed from the request and applied by the Actor itself, so you get the same listings you saw.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "onlyNew": {
            "title": "Only new listings since last run",
            "type": "boolean",
            "description": "Remember listing IDs between runs and return only listings you have not received yet. Ideal for scheduled runs and alerts. Already-seen listings are never charged; the run stops as soon as it reaches listings older than the previous run.",
            "default": false
          },
          "stateKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name of the memory used by 'Only new listings'. Use a different key for each saved search.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is. The Actor runs without a proxy and switches to an Austrian residential proxy by itself if willhaben rate-limits it, at no extra cost to you. Only custom proxy URLs (your own proxies) are used from this field.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}