curl --request POST \
--url https://api.anysite.io/api/immowelt/properties/search \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"location": "<string>",
"count": 2,
"timeout": 300,
"domain": "immowelt.de",
"distribution_types": [
"Buy"
],
"estate_types": [],
"estate_sub_types": [],
"project_types": [],
"features_included": [],
"features_excluded": [],
"build_states": [],
"furnished": [],
"energy_classes": [],
"locations_in_building": [],
"min_price": 1,
"max_price": 1,
"min_area": 1,
"max_area": 1,
"min_plot": 1,
"max_plot": 1,
"min_rooms": 1,
"max_rooms": 1,
"min_year": 1,
"max_year": 1,
"sort": "Default"
}
'import requests
url = "https://api.anysite.io/api/immowelt/properties/search"
payload = {
"location": "<string>",
"count": 2,
"timeout": 300,
"domain": "immowelt.de",
"distribution_types": ["Buy"],
"estate_types": [],
"estate_sub_types": [],
"project_types": [],
"features_included": [],
"features_excluded": [],
"build_states": [],
"furnished": [],
"energy_classes": [],
"locations_in_building": [],
"min_price": 1,
"max_price": 1,
"min_area": 1,
"max_area": 1,
"min_plot": 1,
"max_plot": 1,
"min_rooms": 1,
"max_rooms": 1,
"min_year": 1,
"max_year": 1,
"sort": "Default"
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
location: '<string>',
count: 2,
timeout: 300,
domain: 'immowelt.de',
distribution_types: ['Buy'],
estate_types: [],
estate_sub_types: [],
project_types: [],
features_included: [],
features_excluded: [],
build_states: [],
furnished: [],
energy_classes: [],
locations_in_building: [],
min_price: 1,
max_price: 1,
min_area: 1,
max_area: 1,
min_plot: 1,
max_plot: 1,
min_rooms: 1,
max_rooms: 1,
min_year: 1,
max_year: 1,
sort: 'Default'
})
};
fetch('https://api.anysite.io/api/immowelt/properties/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/immowelt/properties/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'location' => '<string>',
'count' => 2,
'timeout' => 300,
'domain' => 'immowelt.de',
'distribution_types' => [
'Buy'
],
'estate_types' => [
],
'estate_sub_types' => [
],
'project_types' => [
],
'features_included' => [
],
'features_excluded' => [
],
'build_states' => [
],
'furnished' => [
],
'energy_classes' => [
],
'locations_in_building' => [
],
'min_price' => 1,
'max_price' => 1,
'min_area' => 1,
'max_area' => 1,
'min_plot' => 1,
'max_plot' => 1,
'min_rooms' => 1,
'max_rooms' => 1,
'min_year' => 1,
'max_year' => 1,
'sort' => 'Default'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/immowelt/properties/search"
payload := strings.NewReader("{\n \"location\": \"<string>\",\n \"count\": 2,\n \"timeout\": 300,\n \"domain\": \"immowelt.de\",\n \"distribution_types\": [\n \"Buy\"\n ],\n \"estate_types\": [],\n \"estate_sub_types\": [],\n \"project_types\": [],\n \"features_included\": [],\n \"features_excluded\": [],\n \"build_states\": [],\n \"furnished\": [],\n \"energy_classes\": [],\n \"locations_in_building\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_plot\": 1,\n \"max_plot\": 1,\n \"min_rooms\": 1,\n \"max_rooms\": 1,\n \"min_year\": 1,\n \"max_year\": 1,\n \"sort\": \"Default\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/immowelt/properties/search")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"location\": \"<string>\",\n \"count\": 2,\n \"timeout\": 300,\n \"domain\": \"immowelt.de\",\n \"distribution_types\": [\n \"Buy\"\n ],\n \"estate_types\": [],\n \"estate_sub_types\": [],\n \"project_types\": [],\n \"features_included\": [],\n \"features_excluded\": [],\n \"build_states\": [],\n \"furnished\": [],\n \"energy_classes\": [],\n \"locations_in_building\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_plot\": 1,\n \"max_plot\": 1,\n \"min_rooms\": 1,\n \"max_rooms\": 1,\n \"min_year\": 1,\n \"max_year\": 1,\n \"sort\": \"Default\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/immowelt/properties/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"location\": \"<string>\",\n \"count\": 2,\n \"timeout\": 300,\n \"domain\": \"immowelt.de\",\n \"distribution_types\": [\n \"Buy\"\n ],\n \"estate_types\": [],\n \"estate_sub_types\": [],\n \"project_types\": [],\n \"features_included\": [],\n \"features_excluded\": [],\n \"build_states\": [],\n \"furnished\": [],\n \"energy_classes\": [],\n \"locations_in_building\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_plot\": 1,\n \"max_plot\": 1,\n \"min_rooms\": 1,\n \"max_rooms\": 1,\n \"min_year\": 1,\n \"max_year\": 1,\n \"sort\": \"Default\"\n}"
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"@type": "ImmoweltPropertyCard",
"global_id": "<string>",
"url": "<string>",
"document_title": "<string>",
"property_type": "<string>",
"distribution_type": "<string>",
"provider_type": "<string>",
"created_at": 123,
"updated_at": 123,
"price": 123,
"price_label": "<string>",
"price_per_m2": 123,
"currency": "<string>",
"area_m2": 123,
"plot_m2": 123,
"is_divisible": true,
"divisible_from_m2": 123,
"room_count": 123,
"floor": "<string>",
"availability": "<string>",
"energy_class": "<string>",
"headline": "<string>",
"address": {
"@type": "ImmoweltAddress",
"city": "<string>",
"zip_code": "<string>",
"district": "<string>",
"region": "<string>",
"country": "<string>",
"federal_state_geo_id": "<string>"
},
"images": [],
"tags": {
"@type": "ImmoweltTags",
"has_3d_visit": true,
"has_brokerage_fee": true,
"is_new": true
},
"agency": {
"@type": "ImmoweltListingAgency",
"id": "<string>",
"name": "<string>",
"contact_person": "<string>",
"is_private_owner": true,
"publisher_type": "<string>",
"phones": [],
"website": "<string>",
"address": "<string>",
"profile_url": "<string>",
"image": "<string>",
"badge": {
"@type": "ImmoweltBadge",
"image": "<string>",
"duration": "<string>"
}
}
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/immowelt/properties/search
Search immowelt real estate listings by location (city, district, postal code, street or geo id) with transaction kind, property type and subtype, project type, price, living area, plot, rooms, construction year, features, building condition, furnishing, position in the building and energy class filters and ordering. Returns listing cards with title, property type, price with its label (Kaufpreis, Kaltmiete, Warmmiete), price per m², main area, plot area, divisibility, rooms, floor, availability, energy class, address, photos, tags, the property url and the listing agency. Covers both immowelt.de and immowelt.at.
Price: 20 credits per 30 results
⚠️ Common errors: 412: Location could not be resolved
curl --request POST \
--url https://api.anysite.io/api/immowelt/properties/search \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"location": "<string>",
"count": 2,
"timeout": 300,
"domain": "immowelt.de",
"distribution_types": [
"Buy"
],
"estate_types": [],
"estate_sub_types": [],
"project_types": [],
"features_included": [],
"features_excluded": [],
"build_states": [],
"furnished": [],
"energy_classes": [],
"locations_in_building": [],
"min_price": 1,
"max_price": 1,
"min_area": 1,
"max_area": 1,
"min_plot": 1,
"max_plot": 1,
"min_rooms": 1,
"max_rooms": 1,
"min_year": 1,
"max_year": 1,
"sort": "Default"
}
'import requests
url = "https://api.anysite.io/api/immowelt/properties/search"
payload = {
"location": "<string>",
"count": 2,
"timeout": 300,
"domain": "immowelt.de",
"distribution_types": ["Buy"],
"estate_types": [],
"estate_sub_types": [],
"project_types": [],
"features_included": [],
"features_excluded": [],
"build_states": [],
"furnished": [],
"energy_classes": [],
"locations_in_building": [],
"min_price": 1,
"max_price": 1,
"min_area": 1,
"max_area": 1,
"min_plot": 1,
"max_plot": 1,
"min_rooms": 1,
"max_rooms": 1,
"min_year": 1,
"max_year": 1,
"sort": "Default"
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
location: '<string>',
count: 2,
timeout: 300,
domain: 'immowelt.de',
distribution_types: ['Buy'],
estate_types: [],
estate_sub_types: [],
project_types: [],
features_included: [],
features_excluded: [],
build_states: [],
furnished: [],
energy_classes: [],
locations_in_building: [],
min_price: 1,
max_price: 1,
min_area: 1,
max_area: 1,
min_plot: 1,
max_plot: 1,
min_rooms: 1,
max_rooms: 1,
min_year: 1,
max_year: 1,
sort: 'Default'
})
};
fetch('https://api.anysite.io/api/immowelt/properties/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/immowelt/properties/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'location' => '<string>',
'count' => 2,
'timeout' => 300,
'domain' => 'immowelt.de',
'distribution_types' => [
'Buy'
],
'estate_types' => [
],
'estate_sub_types' => [
],
'project_types' => [
],
'features_included' => [
],
'features_excluded' => [
],
'build_states' => [
],
'furnished' => [
],
'energy_classes' => [
],
'locations_in_building' => [
],
'min_price' => 1,
'max_price' => 1,
'min_area' => 1,
'max_area' => 1,
'min_plot' => 1,
'max_plot' => 1,
'min_rooms' => 1,
'max_rooms' => 1,
'min_year' => 1,
'max_year' => 1,
'sort' => 'Default'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/immowelt/properties/search"
payload := strings.NewReader("{\n \"location\": \"<string>\",\n \"count\": 2,\n \"timeout\": 300,\n \"domain\": \"immowelt.de\",\n \"distribution_types\": [\n \"Buy\"\n ],\n \"estate_types\": [],\n \"estate_sub_types\": [],\n \"project_types\": [],\n \"features_included\": [],\n \"features_excluded\": [],\n \"build_states\": [],\n \"furnished\": [],\n \"energy_classes\": [],\n \"locations_in_building\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_plot\": 1,\n \"max_plot\": 1,\n \"min_rooms\": 1,\n \"max_rooms\": 1,\n \"min_year\": 1,\n \"max_year\": 1,\n \"sort\": \"Default\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/immowelt/properties/search")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"location\": \"<string>\",\n \"count\": 2,\n \"timeout\": 300,\n \"domain\": \"immowelt.de\",\n \"distribution_types\": [\n \"Buy\"\n ],\n \"estate_types\": [],\n \"estate_sub_types\": [],\n \"project_types\": [],\n \"features_included\": [],\n \"features_excluded\": [],\n \"build_states\": [],\n \"furnished\": [],\n \"energy_classes\": [],\n \"locations_in_building\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_plot\": 1,\n \"max_plot\": 1,\n \"min_rooms\": 1,\n \"max_rooms\": 1,\n \"min_year\": 1,\n \"max_year\": 1,\n \"sort\": \"Default\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/immowelt/properties/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"location\": \"<string>\",\n \"count\": 2,\n \"timeout\": 300,\n \"domain\": \"immowelt.de\",\n \"distribution_types\": [\n \"Buy\"\n ],\n \"estate_types\": [],\n \"estate_sub_types\": [],\n \"project_types\": [],\n \"features_included\": [],\n \"features_excluded\": [],\n \"build_states\": [],\n \"furnished\": [],\n \"energy_classes\": [],\n \"locations_in_building\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_plot\": 1,\n \"max_plot\": 1,\n \"min_rooms\": 1,\n \"max_rooms\": 1,\n \"min_year\": 1,\n \"max_year\": 1,\n \"sort\": \"Default\"\n}"
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"@type": "ImmoweltPropertyCard",
"global_id": "<string>",
"url": "<string>",
"document_title": "<string>",
"property_type": "<string>",
"distribution_type": "<string>",
"provider_type": "<string>",
"created_at": 123,
"updated_at": 123,
"price": 123,
"price_label": "<string>",
"price_per_m2": 123,
"currency": "<string>",
"area_m2": 123,
"plot_m2": 123,
"is_divisible": true,
"divisible_from_m2": 123,
"room_count": 123,
"floor": "<string>",
"availability": "<string>",
"energy_class": "<string>",
"headline": "<string>",
"address": {
"@type": "ImmoweltAddress",
"city": "<string>",
"zip_code": "<string>",
"district": "<string>",
"region": "<string>",
"country": "<string>",
"federal_state_geo_id": "<string>"
},
"images": [],
"tags": {
"@type": "ImmoweltTags",
"has_3d_visit": true,
"has_brokerage_fee": true,
"is_new": true
},
"agency": {
"@type": "ImmoweltListingAgency",
"id": "<string>",
"name": "<string>",
"contact_person": "<string>",
"is_private_owner": true,
"publisher_type": "<string>",
"phones": [],
"website": "<string>",
"address": "<string>",
"profile_url": "<string>",
"image": "<string>",
"badge": {
"@type": "ImmoweltBadge",
"image": "<string>",
"duration": "<string>"
}
}
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from the dashboard
Headers
Body
1x >= 120 <= x <= 1500immowelt.de, immowelt.at Buy, Rent, Buy_Auction, Compulsory_Auction Apartment, House, Plot, Parking, Senior, Building, Office, Trading, Storage_Production, Gastronomy_Hotel, Agriculture_Forestry, Miscellaneous Agriculture_Company, Agriculture_Forestry, Apart_Hotel, Apartment_House, Assisted_Living, Atelier, Barge, Bed_N_Breakfast, Boat_Dock, Boutique, Bungalow, Cafe_Bar_Pub, Campsite, Car_Park, Carport, Castle, Chalet, Club_Discotheque, Commercial, Commercial_Parc, Commercial_Villa, Corner_Terrace_House, Country_Cottage, Coworking, Double_Garage, Duplex, End_Terrace_House, Farm_Ranch, Farmhouse, Fields, Finca, Fishing, Flatsharing_Room, Forestry, Garage, Garage_Area, Garage_Repair, Garden_House, Gardening, Gite, Holiday_Park, Hotel, House_Park, House_To_Build, House_To_Build_With_Plot, Hunting, Industry, Kiosk, Kot, Lakeside_Property, Large_Town_House, Leisure, Leisure_Facility, Living, Living_And_Commercial, Living_And_Commercial_Building, Loft, Loft_Atelier, Logistics_Center, Manor_House, Mansion, Meadow, Medical, Medical_Building, Medical_Care, Medical_Floor, Mid_Terrace_House, Mill, Misc_Agriculture, Misc_Storage, Miscellaneous, Mixed, Mixed_Use_Building_Commercial, Mobile_Home, Mountain_Hut, Multi_Family_House, Multi_Storey, Office_Building, Office_Centre, Office_Space, Office_Storage_Building, Open_Space, Orchard, Outdoor_Space, Outside, Parking_Area, Pavilion, Penthouse, Production_Hall, Residential_Complex, Restaurant, Riding, Rustico, Sales_Area, Semidetached_House, Shared_Office, Shopping_Centre, Showroom_Space, Single_Family_House, Single_Office, Special_Real_Estate, Special_Use, Static_Caravan, Store, Street_Parking, Structure, Studio, Terrace, Terrace_House, Town_House, Underground_Garage, Underground_Parking_Space, Unfinished_Attic_Space, Villa, Warehouse_Hall, Winery Resale, New_Build, Projected, Investment, Flatsharing, Life_Annuity, Short_Time_Rental, Stock, Swap_Apartment Air_Condition, Assisted_Living, Balcony_Terrace, Bathroom_Window, Bathtub, Cellar, Commission_Free, Elevator, Exclusive, Garden, Kitchen_Fully_Equipped, No_Media, Parking_Garage, Pets_Allowed, Reduce_Mobility_Access, Swimming_Pool, Vacant Air_Condition, Assisted_Living, Balcony_Terrace, Bathroom_Window, Bathtub, Cellar, Commission_Free, Elevator, Exclusive, Garden, Kitchen_Fully_Equipped, No_Media, Parking_Garage, Pets_Allowed, Reduce_Mobility_Access, Swimming_Pool, Vacant First_Time_Use, First_Time_Use_After_Refurbishment, Fully_Renovated, Mint_Condition, Modernised, Need_Of_Renovation, Negotiable, No_Information, Partly_Renovated, Projected, Refurbished, Restructured, Ripe_For_Demolition, Well_Kept Full, Part, No, Not_Applicable A_PLUS, A, B, C, D, E, F, G, H Groundfloor, Half_Basement, Roof_Storey x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0Default, DateDesc, PriceAsc, PriceDesc Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes