MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

This API is not authenticated.

Endpoints

List Projects

Retrieves a list of all currently active projects including metadata, location, and aggregated offer data. No authentication is required.

Example request:
curl --request GET \
    --get "https://estater.de/api/v1/projects?locale=en" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
access-control-allow-origin: *
 
{
    "data": [
        {
            "id": "98d22ccc-751d-4502-b4fe-72789736225f",
            "id_public": 240723,
            "url": "https://estater.de/en/project/am-tegeler-see",
            "pdf_fact_sheet_url": "https://estater.de/storage/pdf/fact-sheets/10002/project/98d22ccc-751d-4502-b4fe-72789736225f/en/am-tegeler-see.pdf",
            "headline": "Am Tegeler See",
            "headline_long": "Fantastic waterfront location & modern apartments",
            "strasse": "Scharfenberger Straße",
            "hausnummer": "26e",
            "plz": "13505",
            "ort": "Berlin",
            "bundesland": "Berlin",
            "geolocation": {
                "id": "983eb948-2a45-4363-97d9-f24b4ba37a01",
                "name": "Berlin-Reinickendorf"
            },
            "latitude": 52.569095834431,
            "longitude": 13.236770814778,
            "description": "<p>The modern new building ensemble AM TEGELER SEE with three apartment buildings and 17 condominiums rises up idyllically on the southwestern promenade of Lake Tegel. The exclusive waterfront location promises living in harmony with nature. When planning the condominiums, great value was placed on comfort and design in addition to elegant furnishings. Each condominium has up to three terraces or private gardens. The three-storey apartment buildings, equipped exclusively with 3 or 4-room apartments, are a first-class choice for families and couples of all ages who are looking to be close to the big city and nature.</p>",
            "rooms": {
                "from": 3,
                "to": 4
            },
            "living_spaces": {
                "from": "109",
                "to": "242"
            },
            "purchase_prices_from": "932.000",
            "image_main": {
                "id": "99b75904-60c4-47a4-8734-fa864a515235",
                "name": "Fabulous waterfront location",
                "url": "https://estater.de/storage/attachment/5/55939/OMAZy8gu7RJswcwtdtn8BxRNceGH17-metaU2NoYXJmZW5iZXJnZXJfS2FtNiAgLSBBbSBUZWdlbGVyIFNlZSAtIEUmVi5qcGc=-.jpg"
            },
            "images": [
                {
                    "id": "99b7580e-1295-4389-9c28-cd17e8a57c01",
                    "name": "High level of design",
                    "url": "https://estater.de/storage/attachment/5/55934/DnLHQ4K9Uj4KQDflMHcbiEgWRo9AUK-metaU2NoYXJmZW5iZXJnZXJfV0UgMi4yLjFQZW50aG91c2VfV29obmVuICAtIEFtIFRlZ2VsZXIgU2VlIC0gRSZWLmpwZw==-.jpg"
                },
                {
                    "id": "99b757a7-2e4e-430d-94b8-f59131f7610f",
                    "name": "Spectacular water location",
                    "url": "https://estater.de/storage/attachment/5/55932/6SrH8pUMtJRqpBc8gzzrjvEZB72XCl-metaU2NoYXJmZW5iZXJnZXJfRm90b21vbnRhZ2UgLSBBbSBUZWdlbGVyIFNlZSAtIEUmVi5qcGc=-.jpg"
                },
                {
                    "id": "99b7585a-259d-4965-ae67-060f7c1573ef",
                    "name": "Unlimited views",
                    "url": "https://estater.de/storage/attachment/5/55936/Q3QXQAGbue5qAewJ4lWE7pZfg6YjO2-metaU2NoYXJmZW5iZXJnZXJfV0UgMi4xLjFfVGVycmFzc2UgIC0gQW0gVGVnZWxlciBTZWUgLSBFJlYuanBn-.jpg"
                },
                {
                    "id": "99b7597f-1550-4e3b-b448-c26950d7f70f",
                    "name": "Direct lakeside location",
                    "url": "https://estater.de/storage/attachment/5/55941/CmJKR2wFcPI1LDCIPeXL3A4E6PBplH-metaU2NoYXJmZW5iZXJnZXJfS2FtMyAgLSBBbSBUZWdlbGVyIFNlZSAtIEUmVi5qcGc=-.jpg"
                },
                {
                    "id": "99b75958-bd09-44ca-8c7a-30d0c0031f9a",
                    "name": "Modern architecture",
                    "url": "https://estater.de/storage/attachment/5/55940/hPAIEMBqr4qXxeyM4cOovBvzaBky9H-metaU2NoYXJmZW5iZXJnZXJfS2FtNCAgLSBBbSBUZWdlbGVyIFNlZSAtIEUmVi5qcGc=-.jpg"
                },
                {
                    "id": "99b758ae-72e4-4a02-a6e3-3a2012f5be8b",
                    "name": "Luxury living for sea lovers",
                    "url": "https://estater.de/storage/attachment/5/55937/lTi3byKkwTVFF3IPqAhiZ7VQMnDW8x-metaU2NoYXJmZW5iZXJnZXJfV0UgMi4xLjEgIC0gQW0gVGVnZWxlciBTZWUgLSBFJlYuanBn-.jpg"
                },
                {
                    "id": "99b75834-318e-4e68-8b25-b057fa436fd8",
                    "name": "Private wellness oasis",
                    "url": "https://estater.de/storage/attachment/5/55935/h1mUyd2QvnGICN5oKM8MJskbzBmKop-metaU2NoYXJmZW5iZXJnZXJfV0UgMi4xLjFfQmFkMSAgLSBBbSBUZWdlbGVyIFNlZSAtIEUmVi5qcGc=-.jpg"
                }
            ]
        }
    ],
    "links": {
        "first": "https://estater.de/api/v1/projects?page=1",
        "last": null,
        "prev": null,
        "next": "https://estater.de/api/v1/projects?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "https://estater.de/api/v1/projects",
        "per_page": 1,
        "to": 1
    }
}
 

Example response (404, Project not found):

{
    "message": "Project not found",
    "errors": null
}
 

Example response (422, Validation error):

{
    "message": "Validation error",
    "errors": {
        "locale": [
            "The selected locale is invalid."
        ]
    }
}
 

Request      

GET api/v1/projects

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

locale   string  optional  

Optional. The language locale for translatable fields (e.g., de, en, es). Example: en

Response

Response Fields

id   string   

Internal ID of the project.

id_public   string   

Public ID of the project.

url   string   

Public URL of the project.

pdf_fact_sheet_url   string   

Public PDF Fact Sheet URL of the project.

headline   object   

Translated short headlines per language.

headline_long   object   

Translated long headlines per language.

strasse   string   

Street name of the project's location.

hausnummer   string   

House number of the project's location.

plz   string   

Postal code of the project's location.

ort   string   

City name of the project's location.

bundesland   string   

Federal state of the project's location.

geolocation   string[]   

The assigned location of the unit. Can be a city, district, or other defined region.

id   string   

Unique identifier of the geolocation entity.

name   string   

Human-readable name of the geolocation (e.g., "Berlin", "Mitte", "Charlottenburg").

latitude   number   

Latitude coordinate of the project.

longitude   number   

Longitude coordinate of the project.

description   string   

Detailed HTML description of the project.

rooms   object   

Range of room counts across all available units.

from   number   

Minimum number of rooms.

to   number   

Maximum number of rooms.

living_spaces   object   

Range of living spaces (m²) across available units.

from   number   

Minimum living space in square meters.

to   number   

Maximum living space in square meters.

purchase_prices_from   number   

Minimum purchase price across all units.

image_main   string[]   

Main image(s) of the project.

id   string   

ID of the image.

name   string   

Descriptive name of the image.

url   string   

Public URL of the image (max width: 1280px).

images   string[]   

Additional images of the project.

id   string   

ID of the image.

name   string   

Descriptive name of the image.

url   string   

Public URL of the image (max width: 1280px).

List Units (Estates)

Retrieves a list of all currently active real estate units including metadata, location, and associated project information. No authentication is required.

Object types (definitions for AI understanding):
Flats: Flats, penthouse flats, top-floor flats, ground-floor flats, maisonettes, penthouses, etc.
Houses: detached houses, mid-terrace houses, end-terrace houses, semi-detached houses, etc.
Plots of land: Undeveloped or developable areas without residential buildings, e.g. building plots

Example request:
curl --request GET \
    --get "https://estater.de/api/v1/estates?purchasePriceFrom=250000&purchasePriceTo=750000&roomsFrom=2&roomsTo=5&geolocations[]=architecto&locale=en" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (422, Validation error):

{
    "message": "Validation error",
    "errors": {
        "locale": [
            "The selected locale is invalid."
        ]
    }
}
 

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
access-control-allow-origin: *
 
{
    "message": "The selected geolocations.0 is invalid.",
    "errors": {
        "geolocations.0": [
            "The selected geolocations.0 is invalid."
        ]
    }
}
 

Request      

GET api/v1/estates

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

purchasePriceFrom   number  optional  

Minimum purchase price in Euros. Must be greater than or equal to 0 and less than or equal to 10,000,000. If both purchasePriceFrom and purchasePriceTo are provided, purchasePriceFrom must be less than or equal to purchasePriceTo. Must be at least 0. Must not be greater than 10000000. Example: 250000

purchasePriceTo   number  optional  

Maximum purchase price in Euros. Must be greater than or equal to 0 and less than or equal to 10,000,000. If both purchasePriceFrom and purchasePriceTo are provided, purchasePriceTo must be greater than or equal to purchasePriceFrom. Must be at least 0. Must not be greater than 10000000. Example: 750000

roomsFrom   number  optional  

Minimum number of rooms. Must be between 0 and 20. If both roomsFrom and roomsTo are provided, roomsFrom must be less than or equal to roomsTo. Must be at least 0. Must not be greater than 20. Example: 2

roomsTo   number  optional  

Maximum number of rooms. Must be between 0 and 20. If both roomsFrom and roomsTo are provided, roomsTo must be greater than or equal to roomsFrom. Must be at least 0. Must not be greater than 20. Example: 5

geolocations   string[]   

The id of an existing record in the geolocations table.

locale   string  optional  

Optional. The language locale for translatable fields (e.g., de, en, es). Example: en

Response

Response Fields

id   string   

Internal unique identifier of the unit.

id_public   string   

Public-facing identifier of the unit.

project   string[]   

The project associated with this unit.

id   string   

Unique identifier of the associated project.

headline   string   

Headline or title of the project (e.g., "Modern Living in Berlin-Mitte").

Additional project details are available via the endpoint: /api/v1/projects/{project_id}

url   string   

Public URL linking to the unit's detailed page.

etage   integer   

Floor number on which the unit is located.

portalobjektart   string   

Type of the unit. Example values:

  • GRST-KF-SB: Grundstück Kauf (land for purchase)
  • HAUS-KF-KA: Haus Kauf Kapitalanlage (house for purchase as investment)
  • HAUS-KF-SB: Haus Kauf Selbstbezug (house for purchase for own use)
  • WHNG-KF-KA: Wohnung Kauf Kapitalanlage (apartment for purchase as investment)
  • WHNG-KF-SB: Wohnung Kauf Selbstbezug (apartment for purchase for own use)
anzahl_etagen   string   

Total number of floors in the building.

wohnflaeche   string   

Living area of the unit in square meters.

nutzflaeche   string   

Usable area of the unit in square meters.

gartenflaeche   string   

Garden area in square meters (if available).

anzahl_zimmer   string   

Total number of rooms in the unit.

anzahl_schlafzimmer   string   

Number of bedrooms in the unit.

anzahl_badezimmer   string   

Number of bathrooms in the unit.

kaufpreis   string   

Purchase price of the unit, including currency.

anzahl_balkone   string   

Number of balconies.

anzahl_logia   string   

Number of loggias.

anzahl_terrassen   string   

Number of terraces.

einbaukueche   string   

Indicates whether a built-in kitchen is included ("true" or "false").

wohnungstyp   string   

Type of apartment (e.g. Etagenwohnung, Dachgeschoss, etc.).

gaeste_wc   string   

Indicates whether a guest toilet is present ("true" or "false").

personenaufzug   string   

Indicates whether a passenger elevator is available ("true" or "false").

provisionsfrei   string   

Indicates whether the unit is commission-free ("true" or "false").

ki_en_suite_badezimmer   boolean   

Indicates whether the unit includes an en suite bathroom, automatically detected via AI ("true" or "false").

ki_ankleidezimmer   boolean   

Indicates whether the unit includes a walk-in closet or dressing room, automatically detected via AI ("true" or "false").

floor_plans   string[]   

Array of floor plans associated with the unit.

id   string   

Internal ID of the floor plan.

name   string   

Descriptive name or label of the floor plan.

url   string   

Publicly accessible URL to the floor plan image (max width: 1280px).

List Geolocations

Returns a list of available geolocations used to categorize and filter real estate units. A geolocation can represent a city, district, or region.

Example request:
curl --request GET \
    --get "https://estater.de/api/v1/geolocations?locale=en" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
access-control-allow-origin: *
 
{
    "data": [
        {
            "id": "983eb948-0b97-4b83-b5f5-b7c6345ac342",
            "name": "Berlin-Charlottenburg"
        }
    ],
    "links": {
        "first": "https://estater.de/api/v1/geolocations?page=1",
        "last": null,
        "prev": null,
        "next": "https://estater.de/api/v1/geolocations?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "https://estater.de/api/v1/geolocations",
        "per_page": 1,
        "to": 1
    }
}
 

Request      

GET api/v1/geolocations

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

locale   string  optional  

optional The language locale for translatable fields (e.g., de, en, es). Used to translate fields like name. Example: en

Response

Response Fields

id   string   

Unique identifier of the geolocation.

name   string   

Human-readable name of the geolocation in the requested locale.