Post Real Estate data for valuation

You can send real estate data, we will calculate a basic valuation of the real estate and hand out a valuation id, which you use for the GET Basic Valuation request in order to obtain the valuation.

The result of the following request will contain a url with which you download the result as a pdf:

POST /ibw/v2.0.1/valuation/nouser/basic

If you don't need a pdf, than please use this url:

POST /ibw/v2.0.1/valuation/nouser/nopdf/basic

Supported media types:
JSON

Request

Query Parameters

Please note: all parameters are mandatory. The construcation year can be set via a precise year or via a range. One of both parameters has to be set.

constructionYearRangeId The id representing the correct range for the construction year. Either a range or a construction year (see parameter constructionYear)must be set. The following ids are available:

VALUE DESCRIPTION
1 Vor 1930
2 1931-1947 (Ø 1939)
3 1948-1967 (Ø 1958)
4 1968-1980 (Ø 1974)
5 1981-1992 (Ø 1987)
6 1993-1996 (Ø 1995)
7 1997-2001 (Ø 1999)
8 2002-2005 (Ø 2004)
9 2006-2010 (Ø 2008)
10 2011-2018 (Ø 2011)
11 2019

Please note: the ranges will be changed every new year to cover the appropriate ranges. So in 2014 the id 11 will point to 2014, the id 10 will point to a range of 2011-2013 and so on.

constructionYear The year of construction of the realestate. Either a year or a range (see parameter constructionYearRangeId) must be set. The minimum value is 1500. The maximum value is the current year.

realEstateTypeId The id representing the type of the realestate. Must be one of the following values:

VALUE DESCRIPTION
0 Wohnung
1 Einfamilienhaus
2 Reihenmittelhaus
3 Reihenendhaus
4 Doppelhaushälfte

address A String representing the address of the realestate. The address should have the following formats: street housenumber, postal code and/or, city. A few examples for valid addresses for explanation:

  1. "Knaackstrasse 11, 10243, Berlin"
  2. "Lohwellsbrook 1, 21255, Tostedt" Note: Do not separate the street and house number with a comma "Knaackstrasse 11, 10243, Berlin" is valid "Knaackstrasse, 11, 10243, Berlin" is invalid!

roomCountId The id representing the room count of the realestate. Must be one of the following values:

VALUE DESCRIPTION
1 1 Zimmer
2 1,5 Zimmer
3 2 Zimmer
4 2,5 Zimmer
5 3 Zimmer
6 3,5 Zimmer
7 4 Zimmer
8 5 Zimmer
9 6 oder mehr

longitude The longitude of the realestate as a double.

latitude The latitude of the realestate as a double.

livingArea The living area of the realestate as an integer. The minimum value is 15.

siteArea The site area of the realestate as an integer. Must be set if the type of the realestate is a house (so this parameter has to be set for all realestate types without the id 1). The minimum value is 50 the maximum value is 5000000.

JSON body

{
    "longitude":9.735813600000029,
    "latitude":53.2664453,
    "address":"Lohwellsbrook 1, 21255, Tostedt",
    "realEstateTypeId":1,
    "constructionYear":1980,
    "roomCountId":7,
    "livingArea":140,
    "siteArea":900
}

Response

Possible Errors:

Status 400 Bad request

missing parameter (e. g. longitude):
{
  "longitude": "NotNull"
}
missing parameter for special realestate types:
{
  "siteArea":"Must be set if realEstateType is not apartment."
}

Status 404 NOT FOUND

{
"message": "Eine Bewertung für diese Adresse ist leider nicht möglich.",
"title": "Fehler"
}

Python example:

aut = requests_oauthlib.OAuth1Session("HackathonKey",client_secret='tq1xxWyMgUBsP6SddSwy')
def getPrice():
    url = "https://rest.immobilienscout24.de/restapi/api/ibw/v2.0.1/valuation/nouser/basic"

    data = """{
        "longitude":9.735813600000029,
        "latitude":53.2664453,
        "address":"Lohwellsbrook 1, 21255, Tostedt",
        "realEstateTypeId":1,
        "constructionYear":1980,
        "roomCountId":7,
        "livingArea":140,
        "siteArea":900
    }“""


    headers = {'Content-type': 'application/json', 'Accept': 'application/json'}
    res = aut.post(url, data=data, headers=headers)  

    loc = res.headers["location"]
    loc = loc.replace("rest.v.rz.is","rest.immobilienscout24.de")

    url = loc
    res = aut.get(url)
    res = json.loads(res.content)
    return(res)