Property Search

Search for real estate listings on Immobilienscout24 with filters for location, property type, price range, rooms, and size.

Endpoint

GET /api/immobilienscout24.search

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Parameters

location string Required

City name, postal code, or geocode (e.g., "Berlin", "10115", "1276003001")

type string Optional

Property type: apartment-rent, apartment-buy, house-rent, house-buy (default: apartment-rent)

price_min integer Optional

Minimum price in EUR

price_max integer Optional

Maximum price in EUR

rooms_min number Optional

Minimum number of rooms

rooms_max number Optional

Maximum number of rooms

size_min integer Optional

Minimum size in m²

size_max integer Optional

Maximum size in m²

page integer Optional

Page number for pagination

Request Examples

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://scrappa.co/api/immobilienscout24.search?location=Berlin&type=apartment-rent');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'x-api-key: YOUR_API_KEY_HERE',
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
<?php

use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'x-api-key' => 'YOUR_API_KEY_HERE',
])->get('https://scrappa.co/api/immobilienscout24.search?location=Berlin&type=apartment-rent');

return $response->json();
fetch('https://scrappa.co/api/immobilienscout24.search?location=Berlin&type=apartment-rent', {
  headers: {
    'x-api-key': 'YOUR_API_KEY_HERE'
  }
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
const axios = require('axios');

axios.get('https://scrappa.co/api/immobilienscout24.search?location=Berlin&type=apartment-rent', {
  headers: {
    'x-api-key': 'YOUR_API_KEY_HERE'
  }
})
  .then(response => console.log(response.data))
  .catch(error => console.error('Error:', error));
import requests

headers = {
    'x-api-key': 'YOUR_API_KEY_HERE'
}

response = requests.get('https://scrappa.co/api/immobilienscout24.search?location=Berlin&type=apartment-rent', headers=headers)
print(response.json())
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse('https://scrappa.co/api/immobilienscout24.search?location=Berlin&type=apartment-rent')
request = Net::HTTP::Get.new(uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(request)
end

puts JSON.parse(response.body)
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    client := &http.Client{}
    req, _ := http.NewRequest("GET", "https://scrappa.co/api/immobilienscout24.search?location=Berlin&type=apartment-rent", nil)
    req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
curl -X GET 'https://scrappa.co/api/immobilienscout24.search?location=Berlin&type=apartment-rent' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Response Schema

JSON Response 200 OK
{
    "success": true,
    "properties": [],
    "pagination": []
}

Try It Live

Test this endpoint in our interactive playground with real data.

Open in Playground