> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape ImmobilienScout24 property listings

> Searches ImmobilienScout24 (Germany's largest property portal) for `location` and returns the listings as JSON: `title`, `price` + `currency` + `priceType` (`rent_cold` / `rent_warm` / `purchase`), `warmRent`, `livingArea`, `rooms`, `plotArea`, `address`, `district`, `coordinates`, `image`/`images`, `realtor` and a listing `url`. Filter with `channel` (rent / buy), `property_type` (apartment / house), `min_price`/`max_price`, `min_rooms`/`max_rooms` and `min_area`/`max_area`, and collect up to `max_results` across pages.



## OpenAPI

````yaml /api-reference/openapi.json post /realestate/immobilienscout24
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /realestate/immobilienscout24:
    post:
      tags:
        - Plugins
      summary: Scrape ImmobilienScout24 property listings
      description: >-
        Searches ImmobilienScout24 (Germany's largest property portal) for
        `location` and returns the listings as JSON: `title`, `price` +
        `currency` + `priceType` (`rent_cold` / `rent_warm` / `purchase`),
        `warmRent`, `livingArea`, `rooms`, `plotArea`, `address`, `district`,
        `coordinates`, `image`/`images`, `realtor` and a listing `url`. Filter
        with `channel` (rent / buy), `property_type` (apartment / house),
        `min_price`/`max_price`, `min_rooms`/`max_rooms` and
        `min_area`/`max_area`, and collect up to `max_results` across pages.
      operationId: immobilienscout24_search_realestate_immobilienscout24_post
      parameters:
        - name: location
          in: query
          required: true
          schema:
            type: string
            description: >-
              German city ('Berlin', 'Muenchen', 'Köln', 'Frankfurt am Main'), a
              state ('Bayern'), or an ImmoScout24 region path such as
              'berlin/berlin/mitte' or
              'bayern/muenchen-kreis/unterschleissheim'.
            title: Location
          description: >-
            German city ('Berlin', 'Muenchen', 'Köln', 'Frankfurt am Main'), a
            state ('Bayern'), or an ImmoScout24 region path such as
            'berlin/berlin/mitte' or 'bayern/muenchen-kreis/unterschleissheim'.
        - name: channel
          in: query
          required: false
          schema:
            type: string
            description: rent or buy.
            default: rent
            title: Channel
          description: rent or buy.
        - name: property_type
          in: query
          required: false
          schema:
            type: string
            description: apartment or house.
            default: apartment
            title: Property Type
          description: apartment or house.
        - name: min_price
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Minimum price in EUR (cold rent per month, or purchase price).
            title: Min Price
          description: Minimum price in EUR (cold rent per month, or purchase price).
        - name: max_price
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Maximum price in EUR (cold rent per month, or purchase price).
            title: Max Price
          description: Maximum price in EUR (cold rent per month, or purchase price).
        - name: min_rooms
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Minimum number of rooms (half rooms allowed, e.g. 2.5).
            title: Min Rooms
          description: Minimum number of rooms (half rooms allowed, e.g. 2.5).
        - name: max_rooms
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Maximum number of rooms.
            title: Max Rooms
          description: Maximum number of rooms.
        - name: min_area
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Minimum living area in m².
            title: Min Area
          description: Minimum living area in m².
        - name: max_area
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Maximum living area in m².
            title: Max Area
          description: Maximum living area in m².
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            description: How many listings to collect across pages (20 per page, max 500).
            default: 20
            title: Max Results
          description: How many listings to collect across pages (20 per page, max 500).
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: 1-based results page to start from.
            default: 1
            title: Page
          description: 1-based results page to start from.
        - name: proxy_country
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Exit-IP country (ISO-2). Leave blank for a smart exit.
            title: Proxy Country
          description: Exit-IP country (ISO-2). Leave blank for a smart exit.
      responses:
        '200':
          description: JSON with a `listings` array plus totals.
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid parameters or unknown location.
        '404':
          description: ImmobilienScout24 has no results page for this location.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: Blocked by ImmobilienScout24 or no results page returned.
        '504':
          description: Fetch timed out.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.