{
  "openapi": "3.0.1",
  "info": {
    "title": "Willhaben.at Scraper — Austria Real Estate, Cars, Marketplace",
    "description": "Willhaben.at scraper for analysts, dealers and AI agents: Austrian real estate (rent/buy, houses, plots, commercial), cars, motorbikes, vans and marketplace goods.",
    "version": "0.1",
    "x-build-id": "IX9PNcqjrCUnpaU8W"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yadroo~willhaben-at/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yadroo-willhaben-at",
        "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/yadroo~willhaben-at/runs": {
      "post": {
        "operationId": "runs-sync-yadroo-willhaben-at",
        "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/yadroo~willhaben-at/run-sync": {
      "post": {
        "operationId": "run-sync-yadroo-willhaben-at",
        "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": {
          "category": {
            "title": "Category (vertical)",
            "enum": [
              "mietwohnungen",
              "eigentumswohnung",
              "haus-kaufen",
              "haus-mieten",
              "grundstuecke",
              "gewerbeimmobilien-kaufen",
              "gewerbeimmobilien-mieten",
              "ferienimmobilien-kaufen",
              "ferienimmobilien-mieten",
              "auto",
              "motorrad",
              "nutzfahrzeuge",
              "wohnwagen",
              "marktplatz",
              "immobilien/mietwohnungen",
              "immobilien/eigentumswohnung",
              "immobilien/haus-kaufen",
              "gebrauchtwagen/auto/gebrauchtwagenboerse",
              "kaufen-und-verkaufen/marktplatz"
            ],
            "type": "string",
            "description": "willhaben.at search vertical. Real estate: mietwohnungen, eigentumswohnung, haus-kaufen, haus-mieten, grundstuecke, gewerbeimmobilien-kaufen/-mieten, ferienimmobilien-kaufen/-mieten. Vehicles: auto, motorrad, nutzfahrzeuge, wohnwagen. General goods: marktplatz. Legacy path values of v0.1 still work.",
            "default": "mietwohnungen"
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "facets",
              "categories"
            ],
            "type": "string",
            "description": "search = listings; facets = one row per filter value (label, URL value, hits) for the current search, useful to discover make/model/equipment ids or to count supply; categories = marktplatz ATTRIBUTE_TREE ids.",
            "default": "search"
          },
          "region": {
            "title": "Region",
            "type": "string",
            "description": "Bundesland slug (wien, niederoesterreich, oberoesterreich, steiermark, tirol, salzburg, kaernten, vorarlberg, burgenland, ausland), a district/city name (\"Graz\", \"Linz\", \"Innsbruck\", \"Mödling\"), a Vienna district (\"wien-7\", \"1070\", \"Neubau\") or a numeric areaId. Empty = all Austria. Full list: README → Reference.",
            "default": "wien"
          },
          "areas": {
            "title": "Additional areas",
            "type": "array",
            "description": "More districts/cities/areaIds searched together with region (OR), e.g. [\"wien-2\",\"wien-20\",\"Klosterneuburg\"].",
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text search, e.g. \"golf 7 tdi\", \"iphone 15\", \"altbau\"."
          },
          "priceFrom": {
            "title": "Price from, €",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price (monthly rent for rental verticals)."
          },
          "priceTo": {
            "title": "Price to, €",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price (monthly rent for rental verticals)."
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "all",
              "private",
              "dealer"
            ],
            "type": "string",
            "description": "Vehicles & marktplatz: server-side filter. Real estate: applied client-side (the site has no such filter).",
            "default": "all"
          },
          "roomsFrom": {
            "title": "Rooms from",
            "minimum": 0,
            "maximum": 99,
            "type": "integer",
            "description": "Real estate: minimum number of rooms (site buckets 1,2,3,4,5,6–9,10+)."
          },
          "roomsTo": {
            "title": "Rooms to",
            "minimum": 0,
            "maximum": 99,
            "type": "integer",
            "description": "Real estate: maximum number of rooms."
          },
          "livingAreaFrom": {
            "title": "Living area from, m²",
            "minimum": 0,
            "type": "integer",
            "description": "Flats/houses/holiday homes."
          },
          "livingAreaTo": {
            "title": "Living area to, m²",
            "minimum": 0,
            "type": "integer",
            "description": "Flats/houses/holiday homes."
          },
          "plotAreaFrom": {
            "title": "Plot area from, m²",
            "minimum": 0,
            "type": "integer",
            "description": "Houses, flats with garden, plots."
          },
          "plotAreaTo": {
            "title": "Plot area to, m²",
            "minimum": 0,
            "type": "integer",
            "description": "Houses, flats with garden, plots."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Names or ids, e.g. [\"Penthouse\",\"Maisonette\",\"Dachgeschoßwohnung\"], [\"Einfamilienhaus\",\"Reihenhaus\"], [\"Baugrundstück\"], [\"Büro/Ordination\",\"Lagerhalle\"]. English aliases work (penthouse, detached, office, warehouse). Full list: README.",
            "items": {
              "type": "string"
            }
          },
          "features": {
            "title": "Features",
            "type": "array",
            "description": "Any of: Abstellraum (storage), Barrierefrei (accessible), Carport, Einbauküche (kitchen), Fahrstuhl (lift), Garage, Keller (cellar), Parkplatz (parking), Möbliert (furnished), Verkabelung.",
            "items": {
              "type": "string"
            }
          },
          "outdoorAreas": {
            "title": "Outdoor areas",
            "type": "array",
            "description": "Any of: Balkon (balcony), Dachterrasse (roof-terrace), Garten (garden), Loggia, Terrasse (terrace), Wintergarten.",
            "items": {
              "type": "string"
            }
          },
          "availableNow": {
            "title": "Available immediately",
            "type": "boolean",
            "description": "Only objects available right away.",
            "default": false
          },
          "newBuildOnly": {
            "title": "New-build projects only",
            "type": "boolean",
            "description": "Only Neubauprojekte.",
            "default": false
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Brand as shown on willhaben, e.g. \"VW\", \"BMW\", \"Mercedes-Benz\", \"Škoda\" (case/diacritics-insensitive). Unknown makes fail with the valid list."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model of the chosen make, e.g. \"Golf\", \"3er-Reihe\", \"Octavia\". Requires make."
          },
          "yearFrom": {
            "title": "First registration from (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "e.g. 2018"
          },
          "yearTo": {
            "title": "First registration to (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "e.g. 2022"
          },
          "mileageFrom": {
            "title": "Mileage from, km",
            "minimum": 0,
            "type": "integer",
            "description": ""
          },
          "mileageTo": {
            "title": "Mileage to, km",
            "minimum": 0,
            "type": "integer",
            "description": ""
          },
          "powerKwFrom": {
            "title": "Power from, kW",
            "minimum": 0,
            "type": "integer",
            "description": ""
          },
          "powerKwTo": {
            "title": "Power to, kW",
            "minimum": 0,
            "type": "integer",
            "description": ""
          },
          "fuel": {
            "title": "Fuel",
            "type": "array",
            "description": "Any of: petrol (Benzin), diesel, electric (Elektro), gas (LPG/CNG), hybrid (Elektro/Benzin), hybrid-diesel, hydrogen.",
            "items": {
              "type": "string"
            }
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "automatic",
              "manual"
            ],
            "type": "string",
            "description": "Gearbox."
          },
          "wheelDrive": {
            "title": "Wheel drive",
            "enum": [
              "awd",
              "fwd",
              "rwd"
            ],
            "type": "string",
            "description": "Drive type."
          },
          "bodyTypes": {
            "title": "Body types",
            "type": "array",
            "description": "Cars: cabrio, compact, minibus, kombi, sedan (Limousine), microcar, coupe, suv. Other vehicle verticals: labels from mode \"facets\".",
            "items": {
              "type": "string"
            }
          },
          "vehicleCondition": {
            "title": "Vehicle condition",
            "type": "array",
            "description": "Cars: used (Gebrauchtwagen), one-year (Jahreswagen), new (Neuwagen), classic (Oldtimer), pre-registered (Tageszulassung), accident (Unfallwagen), demo (Vorführwagen).",
            "items": {
              "type": "string"
            }
          },
          "colors": {
            "title": "Colours",
            "type": "array",
            "description": "e.g. black, white, grey, silver, blue, red (German labels work too).",
            "items": {
              "type": "string"
            }
          },
          "equipment": {
            "title": "Equipment",
            "type": "array",
            "description": "Labels as on willhaben, e.g. \"Anhängerkupplung\", \"Navigationssystem\", \"Sitzheizung vorne\", \"Rückfahrkamera\" (see mode \"facets\").",
            "items": {
              "type": "string"
            }
          },
          "warrantyOnly": {
            "title": "With warranty only",
            "type": "boolean",
            "description": "",
            "default": false
          },
          "inspectionOnly": {
            "title": "With condition report (§57a) only",
            "type": "boolean",
            "description": "",
            "default": false
          },
          "marketCategory": {
            "title": "Marketplace category",
            "type": "string",
            "description": "Top-level name/alias (smartphones, computer, furniture, fashion, sport, toys, games, cameras, car-parts, books, baby, pets, watches, antiques, home, beauty, services, boats, leisure) or any numeric ATTRIBUTE_TREE id (mode \"categories\" lists sub-categories)."
          },
          "itemCondition": {
            "title": "Item condition",
            "type": "array",
            "description": "Any of: new, like-new (Neuwertig), refurbished (Generalüberholt), used, defective, display (Ausstellungsstück).",
            "items": {
              "type": "string"
            }
          },
          "handover": {
            "title": "Handover",
            "enum": [
              "pickup",
              "shipping"
            ],
            "type": "string",
            "description": "How the item is handed over."
          },
          "payliveryOnly": {
            "title": "PayLivery only",
            "type": "boolean",
            "description": "Only ads with willhaben PayLivery (buy online with payment + shipping protection).",
            "default": false
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "relevance",
              "price_asc",
              "price_desc",
              "area_asc",
              "area_desc",
              "mileage_asc",
              "mileage_desc",
              "year_desc",
              "year_asc",
              "model"
            ],
            "type": "string",
            "description": "Sort order. Orders not offered for the vertical fall back to newest with a warning.",
            "default": "newest"
          },
          "sinceHours": {
            "title": "Published within (hours)",
            "minimum": 1,
            "maximum": 8760,
            "type": "integer",
            "description": "Only ads published in the last N hours. Sent to the site as a day filter and re-checked on the exact publish time — ideal for scheduled alerts (e.g. 24 on a daily schedule)."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many ads. Up to 100 ads per page request.",
            "default": 50
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Safety cap on search pages.",
            "default": 20
          },
          "detail": {
            "title": "Open detail pages",
            "type": "boolean",
            "description": "+1 request per ad: full description, all images, exact address parts, seller name/registration date/active ads, company name, website, phone (if published), detail attributes, equipment, shipping options, rent breakdown (Miete, Betriebskosten, Kaution), first registration. If willhaben blocks detail pages the run keeps list data and marks items with detailError.",
            "default": false
          },
          "includeTopAds": {
            "title": "Include paid top ads",
            "type": "boolean",
            "description": "willhaben injects paid \"top ads\" that often ignore your filters. By default they are dropped.",
            "default": false
          },
          "dedupe": {
            "title": "Dedupe",
            "type": "boolean",
            "description": "Drop repeated ad ids across pages.",
            "default": true
          },
          "fields": {
            "title": "Output fields",
            "type": "array",
            "description": "Keep only these fields per item (e.g. [\"id\",\"title\",\"price\",\"pricePerSqm\",\"location\",\"url\"]). Empty = all fields.",
            "items": {
              "type": "string"
            }
          },
          "extraParams": {
            "title": "Extra URL parameters",
            "type": "object",
            "description": "Any other willhaben search parameter copied from a willhaben URL, e.g. {\"NO_OF_DOORS_FROM\": 4, \"BATTERY_CAPACITY_FROM\": 60}. Arrays repeat the parameter."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}