# Objekte

## Objekte lesen

<mark style="color:blue;">`GET`</mark> `https://api.propstack.de/v1/units?with_meta=1`

#### Query Parameters

| Name                  | Type    | Description                                                                                                                                                                                                 | Usage Example                |
| --------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
| expand                | boolean | um das ausführliche JSON (einschließlich custom Felder) zu erhalten                                                                                                                                         | expand=1                     |
| include\_translations | string  | <p>Einschließen von Übersetzungen<br>z.B <code>en,de</code></p>                                                                                                                                             | include\_translations=en     |
| order                 | string  | Aufsteigend oder absteigend sortieren. Entweder `asc` oder `desc`                                                                                                                                           | order=asc                    |
| sort\_by              | string  | Feld wonach sortiert werden soll. Siehe unten für mögliche Optionen (Default ist `unit_id.raw`)                                                                                                             | sort\_by=construction\_year  |
| status                | string  | ID des Statuses, in welchem sich das Objekt befinden muss. Mehrere Stati übergibt man kommagetrennt                                                                                                         | status=274                   |
| group                 | integer | Merkmal-ID, die das Objekt haben muss. Kommagetrennt, wenn es eines von mehreren Merkmalen haben muss                                                                                                       | group=234                    |
| q                     | string  | Volltextsuche: Sucht in `unit_id`, `street`, `zip_code`, `city`, `Bezirk`, `exposee_id`                                                                                                                     | q=Berlin                     |
| country               | string  | 2-stelliger ISO Code des Landes, zB `DE` oder `FR`                                                                                                                                                          | country=DE                   |
| project\_id           | integer | nur zu einem bestimmten Projekt die Einheiten                                                                                                                                                               | project\_id=123              |
| marketing\_type       | string  | ob Kauf (`BUY`) oder Miete (`RENT`)                                                                                                                                                                         | marketing\_type=BUY          |
| rs\_type              | string  | siehe unten für mögliche Werte (z.B. `HOUSE`, um nur Häuser zu erhalten)                                                                                                                                    | rs\_type=HOUSE               |
| archived              | string  | wenn `-1`, dann werden alle Objekte gezogen, bei `1`, nur die archivierten. Ansonsten standardmäßig erhält man nur die **Nicht-Archivierten**                                                               | archived=-1                  |
| property\_ids         | array   | Array aus IDs, um nur die Objekte mit bestimmten Propstack-IDs aufzurufen                                                                                                                                   | property\_ids=1986,1987,1988 |
| include\_variants     | boolean | Varianten einbeziehen                                                                                                                                                                                       | include\_variants=1          |
| exact                 | boolean | Für die Abfrage benutzerdefinierter Eigenschaftsfelder vom Typ `STRING` / `TEXT`. Ermöglicht eine exakte, case-sensitive Übereinstimmung mit dem vollständigen, nicht-analysierten Feldwert, z.B. für URLs. | exact=1                      |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": [
        {
            "id": 5,
            "name": "001",
            "title": "Traumhafte Familienwohnung im klassischen Altbau in ruhiger Lage!",
            "unit_id": "001",
            "exposee_id": "",
            "project_id": 2,
            "street": "Gottschalkstraße",
            "house_number": "7",
            "district": null,
            "region": "Berlin",
            "zip_code": "13359",
            "city": "Berlin",
            "country": "DEU",
            "address": "Gottschalkstraße 7, 13359 Berlin, Deutschland",
            "short_address": "Gottschalkstraße 7, 13359 Berlin",
            "lat": null,
            "lng": null,
            "number_of_rooms": 3,
            "price": null,
            "base_rent": 400,
            "living_space": 77,
            "number_of_bed_rooms": 2,
            "number_of_bath_rooms": 2,
            "property_space_value": 77,
            "images": [
                {
                    "original": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/Objekt.jpg",
                    "big": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/big_Objekt.jpg",
                    "medium": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/medium_Objekt.jpg",
                    "thumb": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/thumb_Objekt.jpg",
                    "tags": null,
                    "is_floorplan": false,
                    "is_private": false
                }
            ],
            "status": {
                "id": 2,
                "name": "In Vorbereitung",
                "color": "#ed892b"
            }
        },
    ],
    "meta": {
        "total_count": 150
    }
}
```

{% endtab %}
{% endtabs %}

Eine Excel-Datei mit allen relevanten Felder eines Objektes, gruppiert nach Objekttyp:

{% file src="/files/-Loymnd4Wjxxr1S8TNY6" %}
Objekt-Felder (für Exposés speziell)
{% endfile %}

### Mehrsprachigkeit

In Propstack kann man bestimmte Texte eines Objektes in mehreren Sprachen einstellen. Folgende Felder können übersetzt werden:

1. Überschrift (title)
2. Objektbeschreibung (description\_note)
3. Lagebeschreibung (location\_note)
4. Ausstattung (furnishing\_note)
5. Sonstiges (other\_note)
6. Käuferprovision (courtage)
7. Provisionshinweis (courtage\_note)

Um die Objekte in einer anderen Sprache zu erhalten gibt man einen weiteren Parameter `locale` mit. Standardmäßig erhält man die deutsche Sprache. Über `locale=en` würde man die englischen Texte erhalten. Es ist auch möglich, mehrere Sprachen zu erhalten. Beispiel: `locale=de,en`

### Weitere Filtermöglichkeiten

Folgende Felder kann man zusätzlich über die API filtern anhand von "ab-bis" Angaben:

* Kaufpreis: price
* Kaltmiete: base\_rent
* Warmmiete: total\_rent
* Fläche: property\_space\_value
* Wohnfläche: living\_space
* Grundstücksfläche: plot\_area
* Zimmer: number\_of\_rooms
* Schlafzimmer: number\_of\_bed\_rooms
* Badezimmer: number\_of\_bath\_rooms
* Etage: floor
* Baujahr: construction\_year

Die Parameter dafür haben immer ein `_from` *oder* `_to` angehängt, um zu bestimmen ob es ab diesem Wert gilt oder bis zu diesem Wert. Beispiel:

`?price_from=300000&price_to=350000` wirft alle Objekte aus, deren Preis zwischen 300.000 und 350.000 € liegen. `?plot_area=1500` wirft alle Objekte aus, deren Grundstücksfläche über 1.500qm beträgt.

### Sortierungsmöglichkeiten

* Auftragsnummer: `exposee_id`
* Baujahr: `construction_year`
* Einheitenummer: `unit_id.raw`
* Etage: `floor`
* Erstellungsdatum: `created_at`
* Fläche: `property_space_value`
* Grundstücksfläche: `plot_area`
* Kaltmiete: `base_rent`
* Kaufpreis: `price`
* Preis: `object_price`
* Fläche/qm: `price_per_sqm`
* Status: `property_status_position`
* Straße: `street_number.raw`
* Verkaufsdatum: `sold_date`
* Warmmiete: `total_rent`
* Zimmer: `number_of_rooms`
* Zuletzt bearbeitet: `updated_at`

Mögliche Vermarktungsart (`marketing_type`):&#x20;

1. `BUY`&#x20;
2. `RENT`

Mögliche Oberkategorie für Objekttypen `object_type`:

1. `LIVING`
2. `COMMERCIAL`
3. `INVESTMENT`

Mögliche Objekttypen (`rs_type`):

1. `APARTMENT`
2. `HOUSE`
3. `TRADE_SITE`
4. `GARAGE`
5. `SHORT_TERM_ACCOMODATION`
6. `OFFICE`
7. `GASTRONOMY`
8. `INDUSTRY`
9. `STORE`
10. `SPECIAL_PURPOSE`
11. `INVESTMENT`

(Text-)Felder, die in verschiedenen Sprachen hinterlegt werden können:

* title
* description\_note
* location\_note
* furnishing\_note
* other\_note
* long\_description\_note
* long\_location\_note
* long\_furnishing\_note
* long\_other\_note
* courtage
* courtage\_note

Mögliche Objektarten (`rs_category`):

* `ROOF_STOREY` - Dachgeschoss
* `LOFT` - Loft
* `MAISONETTE` - Maisonette
* `PENTHOUSE` - Penthouse
* `TERRACED_FLAT` - Terrassenwohnung
* `GROUND_FLOOR` - Erdgeschosswohnung
* `APARTMENT` - Etagenwohnung
* `RAISED_GROUND_FLOOR` - Hochparterre
* `HALF_BASEMENT` - Souterrain
* `ATTIKA` -Attikawohnung
* `OTHER` - Sonstige
* `SINGLE_FAMILY_HOUSE` - Einfamilienhaus
* `TWO_FAMILY_HOUSE` - Zweifamilienhaus
* `TERRACE_HOUSE` - Reihenhaus
* `MID_TERRACE_HOUSE` - Reihenmittelhaus
* `TERRACE_END_HOUSE` - Reihenendhaus
* `END_TERRACE_HOUSE` - Reiheneckhaus
* `MULTI_FAMILY_HOUSE` - Mehrfamilienhaus
* `TOWNHOUSE` - Stadthaus
* `FINCA` - Finca
* `BUNGALOW` - Bungalow
* `FARMHOUSE` - Bauernhaus
* `SEMIDETACHED_HOUSE` - Doppelhaushälfte
* `VILLA` - Villa
* `CASTLE_MANOR_HOUSE` - Burg/Schloss
* `SPECIAL_REAL_ESTATE` - Besondere Immobilie
* `TWIN_SINGLE_FAMILY_HOUSE` - Doppeleinfamilienhaus
* `SUMMER_RESIDENCE` - Ferienhaus
* `GARAGE` - Garage
* `STREET_PARKING` - Außenstellplatz
* `CARPORT` - Carport
* `DUPLEX` - Duplex
* `CAR_PARK` - Parkhaus
* `UNDERGROUND_GARAGE` - Tiefgarage
* `DOUBLE_GARAGE` - Doppelgarage
* `NO_INFORMATION` - Keine Angabe
* `OFFICE_LOFT` - Loft
* `STUDIO` - Atelier
* `OFFICE` - Büro
* `OFFICE_FLOOR` - Büroetage
* `OFFICE_BUILDING` - Bürohaus
* `OFFICE_CENTRE` - Bürozentrum
* `OFFICE_STORAGE_BUILDING` - Büro-/ Lagergebäude
* `SURGERY` - Praxis
* `SURGERY_FLOOR` - Praxisetage
* `SURGERY_BUILDING` - Praxishaus
* `COMMERCIAL_CENTRE` - Gewerbezentrum
* `LIVING_AND_COMMERCIAL_BUILDING` - Wohn- und Geschäftsgebäude
* `OFFICE_AND_COMMERCIAL_BUILDING` - Büro- und Geschäftsgebäude
* `BAR_LOUNGE` - Barbetrieb/Lounge
* `CAFE` - Café
* `CLUB_DISCO` - Club/Diskothek
* `GUESTS_HOUSE` - Gästehaus
* `TAVERN` - Gaststätte
* `HOTEL` - Hotel
* `HOTEL_RESIDENCE` - Hotelanwesen
* `HOTEL_GARNI` - Hotel garni
* `PENSION` - Pension
* `RESTAURANT` - Restaurant
* `SHOWROOM_SPACE` - Ausstellungsfläche
* `HALL` - Halle
* `HIGH_LACK_STORAGE` - Hochregallager
* `INDUSTRY_HALL` - Industriehalle
* `INDUSTRY_HALL_WITH_OPEN_AREA` - Industriehalle mit Freifläche
* `COLD_STORAGE` - Kühlhaus
* `MULTIDECK_CABINET_STORAGE` - Kühlregallager
* `STORAGE_WITH_OPEN_AREA` - Lager mit Freifläche
* `STORAGE_AREA` - Lagerfläche
* `STORAGE_HALL` - Lagerhalle
* `SERVICE_AREA` - Servicefläche
* `SHIPPING_STORAGE` - Speditionslager
* `REPAIR_SHOP` - Werkstatt
* `SHOPPING_CENTRE` - Einkaufszentrum
* `FACTORY_OUTLET` - Factory Outlet
* `DEPARTMENT_STORE` - Kaufhaus
* `KIOSK` - Kiosk
* `STORE` - Laden
* `SELF_SERVICE_MARKET` - SB-Markt
* `SALES_AREA` - Verkaufsfläche
* `SALES_HALL` - Verkaufshalle
* `RESIDENCE` - Anwesen
* `FARM` - Bauernhof
* `LEISURE_FACILITY` - Freizeitanlage
* `COMMERCIAL_UNIT` - Gewerbeeinheit
* `INDUSTRIAL_AREA` - Gewerbefläche
* `NURSING_HOME` - Pflegeheim
* `ASSISTED_LIVING` - Betreutes Wohnen
* `HORSE_FARM` - Reiterhof
* `VINEYARD` - Weingut
* `REPAIR_SHOP` - Werkstatt
* `SPECIAL_ESTATE` - Spezialobjekt
* `INVEST_LIVING_BUSINESS_HOUSE` - Wohn-/Geschäftshaus
* `INVEST_HOUSING_ESTATE` - Wohnanlage
* `INVEST_MICRO_APARTMENTS` - Micro-Apartments
* `INVEST_OFFICE_BUILDING` - Bürohaus
* `INVEST_COMMERCIAL_BUILDING` - Geschäftshaus
* `INVEST_OFFICE_AND_COMMERCIAL_BUILDING` - Büro- und Geschäftshaus
* `INVEST_SHOP_SALES_FLOOR` - Laden/Verkaufsfläche
* `INVEST_SUPERMARKET` - Supermarkt
* `INVEST_SHOPPING_CENTRE` - Einkaufszentrum
* `INVEST_RETAIL_PARK` - Fachmarktzentrum
* `INVEST_HOTEL` - Hotel
* `INVEST_BOARDING_HOUSE` - Boarding House
* `INVEST_SURGERY_BUILDING` - Ärztehaus
* `INVEST_CLINIC` - Klinik
* `INVEST_REHAB_CLINIC` - Rehaklinik
* `INVEST_MEDICAL_SERVICE_CENTER` - MVZ
* `INVEST_INTEGRATION_ASSISTANCE` - Eingliederungshilfe
* `INVEST_DAY_NURSERY` - Kita
* `INVEST_DAY_CARE` - Tagespflege
* `INVEST_NURSING_HOME` - Pflegeheim
* `INVEST_ASSISTED_LIVING` - Betreutes Wohnen
* `INVEST_COMMERCIAL_CENTRE` - Gewerbepark
* `INVEST_HALL_STORAGE` - Halle/Logistik
* `INVEST_INDUSTRIAL_PROPERTY` - Produktion/Fertigung
* `INVEST_CAR_PARK` - Parkhaus
* `INVEST_PLOT` - Grundstück
* `INVEST_COMMERCIAL_UNIT` - Gewerbeeinheit
* `INVEST_OTHER` - Sonstiges

## Objekt anlegen

<mark style="color:green;">`POST`</mark> `https://api.propstack.de/v1/units`

#### Path Parameters

| Name     | Type   | Description                               |
| -------- | ------ | ----------------------------------------- |
| property | object | siehe alle möglichen Werte für ein Objekt |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### Objekt anlegen mit Eigentümer

Beim Anlegen eines Objektes kann auch gleichzeitig ein Eigentümer mitverknüpft werden. Der Payload dafür sieht wie folgt aus:

```javascript
{
  "property": {
    "title": "Nice apartment",
    // ...
    "relationships_attributes": [{
        "internal_name": "owner",
        "related_client_id": 123
    }]
  }
}
```

Der Eigentümer muss vorher in Propstack existieren. Die ID des Kontaktes wird dann unter `related_client_id` mitgegeben.

### Objekt anlegen mit einem verknüpften Kontakt

Beim Anlegen eines Objektes kann auch gleichzeitig ein Kontakt (Partner) mitverknüpft werden. Der Payload dafür sieht wie folgt aus:

<pre class="language-javascript"><code class="lang-javascript"><strong>{
</strong>  "property": {
    "title": "Nice apartment",
    // ...
    "relationships_attributes": [{
        "internal_name": "partner",
        "name": "Käufer",
        "related_client_id": 123
    }]
  }
}
</code></pre>

Der Kontakt muss vorher in Propstack existieren. Die ID des Kontaktes wird dann unter `related_client_id` mitgegeben.

### Objekt anlegen mit Custom Feldern

Beim Anlegen eines Objekts können benutzerdefinierte Felder verwendet werden, um zusätzliche Informationen hinzuzufügen. Der Payload für die Anfrage könnte folgendermaßen aussehen:

```json
{
  "property": {
    "title": "Nice apartment",
    // ...
    "partial_custom_fields": {
      "my_custom_field": "description"
    }
  }
}
```

Die benutzerdefinierten Felder werden im `partial_custom_fields`-Objekt angegeben und können je nach Bedarf angepasst werden.

## Objekt bearbeiten

<mark style="color:orange;">`PUT`</mark> `https://api.propstack.de/v1/units/:id`

Ein vorhandendes Objekt bearbeiten

#### Request Body

| Name     | Type   | Description                               |
| -------- | ------ | ----------------------------------------- |
| property | object | siehe alle möglichen Werte für ein Objekt |

#### Hinweis

Die Payloads, die für die Erstellaktion verwendet werden, können auch für die Aktualisierungsaktion verwendet werden.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Objekt löschen

<mark style="color:red;">`DELETE`</mark> `https://api.propstack.de/v1/units/:id`

Ein vorhandenes Objekt löschen

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Objekt lesen

<mark style="color:blue;">`GET`</mark> `https://api.propstack.de/v1/units/:id?new=1`

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "id": 5,
    "name": "001",
    "title": {
        "label": "Überschrift",
        "value": "Traumhafte Familienwohnung im klassischen Altbau in ruhiger Lage!"
    },
    "unit_id": "001",
    "exposee_id": "",
    "project_id": 2,
    "broker_id": 1,
    "archived": false,
    "street": "Gottschalkstraße",
    "house_number": "7",
    "zip_code": "13359",
    "city": "Berlin",
    "address": "Gottschalkstraße 7, 13359 Berlin, Deutschland",
    "short_address": "Gottschalkstraße 7, 13359 Berlin",
    "marketing_type": "RENT",
    "object_type": "LIVING",
    "rs_type": "APARTMENT",
    "rs_category": "PENTHOUSE",
    "custom_fields": {
        "gebaudeversicherung": {
            "value": null,
            "pretty_value": null
        }
    },
    "created_at": "2019-06-04T17:09:21.109+02:00",
    "updated_at": "2019-10-08T14:16:29.488+02:00",
    "description_note": {
        "label": "Beschreibung",
        "value": "Die bezugsfreie Eigentumswohnung befindet sich im Hochparterre und EG in einem gepflegten Jugendstilgebäude. The dwelling is located in the 1. floor in a building of 1908."
    },
    "broker": {
        "id": 1,
        "salutation": "mr",
        "academic_title": null,
        "first_name": "Max",
        "last_name": "Mustermann",
        "name": "Max Mustermann",
        "avatar": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/avatar/ASLYoUSnKDYGZR2ZuA7cB19e/thumb_profilbild.jpg",
        "avatar_url": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/avatar/ASLYoUSnKDYGZR2ZuA7cB19e/profilbild.jpg",
        "old_crm_id": null,
        "position": "CEO",
        "email": "makler@propstack.de",
        "phone": "+49 030 399 282 39",
        "color": "#0d68de",
        "connected": true,
        "team_id": null,
        "department_ids": [],
        "abstract": null,
        "description": null,
        "custom_fields": {}
    },
    "project": {
        "title": "Colors of Reinickendorf"
    },
    "property_groups": [
        {
            "id": 23,
            "name": "foo",
            "super_group_id": null
        }
    ],
    "documents": [],
    "floorplans": [
        {
            "id": 5,
            "name": "niceundriss.pdf",
            "title": "niceundriss.pdf",
            "url": "https://dev-propstack.s3.eu-central-1.amazonaws.com/floorplans/EKuaWsFFoCcwrYd92KRfaQ9B/plan/FWpUaaDpwKgkCrHXr4zf3Lxg/grundriss.pdf",
            "position": 1,
            "updated_at": "2019-10-08T14:16:29.481+02:00"
        }
    ],
    "links": [],
    "images": [
        {
            "id": 8,
            "is_floorplan": false,
            "is_private": false,
            "title": "Objekt",
            "tags": null,
            "position": 1,
            "url": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/Objekt.jpg",
            "updated_at": "2019-07-16T21:46:13.892+02:00",
            "big_url": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/big_Objekt.jpg",
            "medium_url": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/medium_Objekt.jpg",
            "thumb_url": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/thumb_Objekt.jpg",
            "small_thumb_url": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/small_thumb_Objekt.jpg",
            "square_url": "https://dev-propstack.s3.eu-central-1.amazonaws.com/photos/EKuaWsFFoCcwrYd92KRfaQ9B/photo/bayDE6L8RZYbimGFH4mJtgNV/square_Objekt.jpg"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Objekt-Stati lesen

<mark style="color:blue;">`GET`</mark> `https://api.propstack.de/v1/property_statuses`

Ein Objekt hat in der Regel immer einen Status, z.B. "Verfügbar" oder "Verkauft". Über diesen Endpoint kann man sich alle möglichen Objekt-Stati ziehen, die ein Objekt haben kann.

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": [
        {
            "id": 274,
            "name": "Verfügbar",
            "position": 1,
            "color": "#009cde",
            "nonpublic": false
        },
        {
            "id": 276,
            "name": "Reserviert",
            "position": 3,
            "color": "#f55753",
            "nonpublic": false
        },
        {
            "id": 278,
            "name": "Verkauft",
            "position": 5,
            "color": "#10cfbd",
            "nonpublic": true
        }
    ]
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.propstack.de/reference/objekte.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
