> For the complete documentation index, see [llms.txt](https://docs.propstack.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.propstack.de/reference/objekte.md).

# 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`

#### Request Body

| 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 %}
