{
  "openapi": "3.0.1",
  "info": {
    "title": "Wunderflats Scraper - Furnished Apartments & Rents",
    "description": "Scrape Wunderflats furnished apartments in Germany, Vienna, Zurich, Paris and 7 more cities: rent, size, rooms, beds, map position, photos. Add deposit, cleaning fee, min stay, amenities, energy class, booking requests and landlord response time. 18 filters, every listing, only new ones on schedule.",
    "version": "1.0",
    "x-build-id": "lJSZd4M6N70aWsSsN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/normdata~wunderflats-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-normdata-wunderflats-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/normdata~wunderflats-scraper/runs": {
      "post": {
        "operationId": "runs-sync-normdata-wunderflats-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/normdata~wunderflats-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-normdata-wunderflats-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": {
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listings in total. Leave empty for no limit. The Apify Free plan is always capped at 10."
          },
          "regions": {
            "title": "Regions",
            "type": "array",
            "description": "The site's cities and regions (each one also has the towns around it). Empty = every listing on the site.",
            "items": {
              "type": "string",
              "enum": [
                "germany",
                "aachen",
                "augsburg",
                "barcelona",
                "bayreuth",
                "bergischgladbach",
                "berlin",
                "bielefeld",
                "bochum",
                "boeblingen",
                "bonn",
                "brunswick",
                "bremen",
                "brussels",
                "cologne",
                "darmstadt",
                "dortmund",
                "dresden",
                "duisburg",
                "dusseldorf",
                "erlangen",
                "essen",
                "esslingen",
                "frankfurt",
                "freiberg",
                "freiburg",
                "gelsenkirchen",
                "geneva",
                "hagen",
                "hamburg",
                "hanover",
                "heidelberg",
                "ingolstadt",
                "kaiserslautern",
                "karlsruhe",
                "kassel",
                "kiel",
                "koblenz",
                "landshut",
                "leipzig",
                "leverkusen",
                "ludwigshafen",
                "luxembourg",
                "lisbon",
                "madrid",
                "mainz",
                "mannheim",
                "meerbusch",
                "milan",
                "monchengladbach",
                "mulheim",
                "munich",
                "munster",
                "nuremberg",
                "offenbach",
                "osnabruck",
                "paris",
                "1st-arrondissement-of-paris",
                "2nd-arrondissement-of-paris",
                "3rd-arrondissement-of-paris",
                "4th-arrondissement-of-paris",
                "5th-arrondissement-of-paris",
                "6th-arrondissement-of-paris",
                "7th-arrondissement-of-paris",
                "8th-arrondissement-of-paris",
                "9th-arrondissement-of-paris",
                "10th-arrondissement-of-paris",
                "11th-arrondissement-of-paris",
                "12th-arrondissement-of-paris",
                "13th-arrondissement-of-paris",
                "14th-arrondissement-of-paris",
                "15th-arrondissement-of-paris",
                "16th-arrondissement-of-paris",
                "17th-arrondissement-of-paris",
                "18th-arrondissement-of-paris",
                "19th-arrondissement-of-paris",
                "20th-arrondissement-of-paris",
                "potsdam",
                "ratingen",
                "regensburg",
                "rostock",
                "solingen",
                "stuttgart",
                "trier",
                "ulm",
                "wiesbaden",
                "wolfsburg",
                "worms",
                "wuppertal",
                "vienna",
                "gottingen",
                "zurich"
              ],
              "enumTitles": [
                "All of Germany",
                "Aachen (Germany)",
                "Augsburg (Germany)",
                "Barcelona (Spain)",
                "Bayreuth (Germany)",
                "Bergisch Gladbach (Germany)",
                "Berlin (Germany)",
                "Bielefeld (Germany)",
                "Bochum (Germany)",
                "Böblingen (Germany)",
                "Bonn (Germany)",
                "Braunschweig (Germany)",
                "Bremen (Germany)",
                "Brussels (Belgium)",
                "Cologne (Germany)",
                "Darmstadt (Germany)",
                "Dortmund (Germany)",
                "Dresden (Germany)",
                "Duisburg (Germany)",
                "Düsseldorf (Germany)",
                "Erlangen (Germany)",
                "Essen (Germany)",
                "Esslingen (Germany)",
                "Frankfurt (Germany)",
                "Freiberg (Germany)",
                "Freiburg (Germany)",
                "Gelsenkirchen (Germany)",
                "Geneva (Switzerland)",
                "Hagen (Germany)",
                "Hamburg (Germany)",
                "Hannover (Germany)",
                "Heidelberg (Germany)",
                "Ingolstadt (Germany)",
                "Kaiserslautern (Germany)",
                "Karlsruhe (Germany)",
                "Kassel (Germany)",
                "Kiel (Germany)",
                "Koblenz (Germany)",
                "Landshut (Germany)",
                "Leipzig (Germany)",
                "Leverkusen (Germany)",
                "Ludwigshafen (Germany)",
                "Luxembourg (Luxembourg)",
                "Lisbon (Portugal)",
                "Madrid (Spain)",
                "Mainz (Germany)",
                "Mannheim (Germany)",
                "Meerbusch (Germany)",
                "Milan (Italy)",
                "Mönchengladbach (Germany)",
                "Mülheim (Germany)",
                "Munich (Germany)",
                "Münster (Germany)",
                "Nuremberg (Germany)",
                "Offenbach am Main (Germany)",
                "Osnabrück (Germany)",
                "Paris (France)",
                "Paris 1st Arrondissement (France)",
                "Paris 2nd Arrondissement (France)",
                "Paris 3rd Arrondissement (France)",
                "Paris 4th Arrondissement (France)",
                "Paris 5th Arrondissement (France)",
                "Paris 6th Arrondissement (France)",
                "Paris 7th Arrondissement (France)",
                "Paris 8th Arrondissement (France)",
                "Paris 9th Arrondissement (France)",
                "Paris 10th Arrondissement (France)",
                "Paris 11th Arrondissement (France)",
                "Paris 12th Arrondissement (France)",
                "Paris 13th Arrondissement (France)",
                "Paris 14th Arrondissement (France)",
                "Paris 15th Arrondissement (France)",
                "Paris 16th Arrondissement (France)",
                "Paris 17th Arrondissement (France)",
                "Paris 18th Arrondissement (France)",
                "Paris 19th Arrondissement (France)",
                "Paris 20th Arrondissement (France)",
                "Potsdam (Germany)",
                "Ratingen (Germany)",
                "Regensburg (Germany)",
                "Rostock (Germany)",
                "Solingen (Germany)",
                "Stuttgart (Germany)",
                "Trier (Germany)",
                "Ulm (Germany)",
                "Wiesbaden (Germany)",
                "Wolfsburg (Germany)",
                "Worms (Germany)",
                "Wuppertal (Germany)",
                "Vienna (Austria)",
                "Göttingen (Germany)",
                "Zurich (Switzerland)"
              ]
            }
          },
          "rentalType": {
            "title": "Rental type",
            "enum": [
              "furnished",
              "unlimited",
              "both"
            ],
            "type": "string",
            "description": "Empty = furnished, mid-term (what the site shows first)."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Empty = every type. Studio, Duplex and Semi-detached house are only offered unfurnished.",
            "items": {
              "type": "string",
              "enum": [
                "entireApartment",
                "privateRoom",
                "sharedRoom",
                "house",
                "studio",
                "duplex",
                "semiDetachedHouse"
              ],
              "enumTitles": [
                "Entire apartment",
                "Private room",
                "Shared room",
                "House",
                "Studio",
                "Duplex",
                "Semi-detached house"
              ]
            }
          },
          "includeDetails": {
            "title": "Listing details (deposit, fees, min stay, amenities, energy, demand)",
            "type": "boolean",
            "description": "Also read each listing page for the deposit, final cleaning fee, base rent and utilities (unfurnished), minimum and maximum stay, last day free, every amenity, Wi-Fi, washing machine, dishwasher and more as yes/no, pets and smoking rules, furnishing and condition, energy class, kWh per m², heating and year built, cleaning, parking, gym and concierge, the full description, house rules, postal code, districts, booking requests, landlord response time, landlord checks, floor plan, listed and updated dates. Slower: about 25 listings a minute. Charged per listing as an add-on."
          },
          "minPrice": {
            "title": "Minimum monthly rent",
            "minimum": 0,
            "type": "integer",
            "description": "In the listing currency (EUR, or CHF in Switzerland)."
          },
          "maxPrice": {
            "title": "Maximum monthly rent",
            "minimum": 0,
            "type": "integer",
            "description": "In the listing currency (EUR, or CHF in Switzerland)."
          },
          "minRooms": {
            "title": "Minimum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Rooms in the place."
          },
          "maxRooms": {
            "title": "Maximum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Rooms in the place."
          },
          "minSizeM2": {
            "title": "Minimum size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Size of the place in square meters."
          },
          "maxSizeM2": {
            "title": "Maximum size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Size of the place in square meters."
          },
          "minTenants": {
            "title": "Minimum people",
            "minimum": 0,
            "type": "integer",
            "description": "Keep places for at least this many people."
          },
          "minSingleBeds": {
            "title": "Minimum single beds",
            "minimum": 0,
            "type": "integer",
            "description": "Single beds in the place."
          },
          "minDoubleBeds": {
            "title": "Minimum double beds",
            "minimum": 0,
            "type": "integer",
            "description": "Double beds in the place."
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "Keep listings with all of these.",
            "items": {
              "type": "string",
              "enum": [
                "washingMachine",
                "dryer",
                "balconyOrTerrace",
                "dishwasher",
                "desk",
                "tv",
                "elevator",
                "wheelchair",
                "pool",
                "airConditioning"
              ],
              "enumTitles": [
                "Washing machine",
                "Dryer",
                "Balcony or terrace",
                "Dishwasher",
                "Desk or workspace",
                "TV",
                "Elevator",
                "Wheelchair accessible",
                "Swimming pool",
                "Air conditioning"
              ]
            }
          },
          "petsAllowed": {
            "title": "Only pets allowed",
            "type": "boolean",
            "description": "Keep listings that allow pets."
          },
          "smokingAllowed": {
            "title": "Only smoking allowed",
            "type": "boolean",
            "description": "Keep listings that allow smoking."
          },
          "noDepositOnly": {
            "title": "Only no deposit",
            "type": "boolean",
            "description": "Keep furnished listings with no security deposit."
          },
          "availableBy": {
            "title": "Free by",
            "type": "string",
            "description": "Keep listings you can move into on or before this date, like 2027-02-01 or \"2 months\" from today."
          },
          "categories": {
            "title": "Site's collections",
            "type": "array",
            "description": "Keep listings in one of these collections.",
            "items": {
              "type": "string",
              "enum": [
                "BUSINESS_STAYS",
                "SERVICED_APARTMENTS",
                "STUDENT_HOUSING",
                "FAMILY_HOMES",
                "LUXURY",
                "TERRACE",
                "TECH_STUDIO",
                "PETS"
              ],
              "enumTitles": [
                "Business stays",
                "Serviced apartments",
                "Student housing",
                "Family homes",
                "Luxury",
                "Terrace",
                "Tech studio",
                "Pets"
              ]
            }
          },
          "hideStudentsOnly": {
            "title": "Hide students only",
            "type": "boolean",
            "description": "Leave out listings rented to students only."
          },
          "onlyNew": {
            "title": "Only new listings",
            "type": "boolean",
            "description": "Skip listings saved by earlier runs with the same monitor name."
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Runs with the same name share their history. Use a different name for each schedule."
          },
          "startUrls": {
            "title": "Links",
            "type": "array",
            "description": "Searches copied from the site, with their filters (https://wunderflats.com/en/furnished-apartments/berlin?maxPrice=1500) or listing pages (https://wunderflats.com/en/furnished-apartment/bright-studio/6acf5aeeca4e2f22a168f225).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}