# Suchprofile

## Suchprofile lesen

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

Suchprofile lassen sich paginieren über die Parameter `page` und `per`. Standardmäßig werden die ersten 25 Suchprofile angezeigt.

#### Query Parameters

| Name   | Type   | Description                 |
| ------ | ------ | --------------------------- |
| client | number | <p>ID des Kontaktes<br></p> |

{% tabs %}
{% tab title="200 Cake successfully retrieved." %}

```javascript
{
    "data": [
        {
            "id": 1,
            "created_at": "2018-01-19T18:51:43.133+01:00",
            "updated_at": "2018-12-07T18:34:28.075+01:00",
            "broker_id": 2,
            "client_id": 3,
            "price": null,
            "price_to": null,
            "base_rent": 1520.496,
            "base_rent_to": 1858.384,
            "total_rent": 1815.093,
            "total_rent_to": 2218.447,
            "living_space": 0,
            "living_space_to": null,
            "number_of_rooms": 2.5,
            "number_of_rooms_to": 5,
            "property_status_ids": [],
            "location_ids": [],
            "cities": [
                "Berlin",
                "Frankfurt"
            ],
            "regions": [],
            "marketing_type": "RENT",
            "rs_types": [],
            "rs_categories": [],
            "note": "Sucht sehr dringend",
            "number_of_bedrooms": "",
            "number_of_bedrooms_to": "",
            "floor": "",
            "floor_to": "",
            "plot_area": "",
            "plot_area_to": "",
            "total_floor_space": null,
            "total_floor_space_to": null,
            "construction_year": null,
            "construction_year_to": null,
            "lift": "",
            "balcony": "",
            "garden": "",
            "built_in_kitchen": "",
            "cellar": "",
            "rented": "",
            "price_per_sqm": null,
            "price_per_sqm_to": null,
            "net_floor_space": null,
            "net_floor_space_to": null,
            "price_multiplier": null,
            "price_multiplier_to": null,
            "yield_actual": null,
            "yield_actual_to": null,
            "investment_category": null,
            "purchase_form": null,
            "industrial_area": null,
            "industrial_area_to": null,
            "tenant_structure": null,
            "walt": null,
            "single_rooms_quota": null,
            "single_rooms_quota_to": null,
            "occupancy_rate": null,
            "occupancy_rate_to": null,
            "monument": null,
            "conservation_areas": null,
            "condition": null,
            "number_of_parking_spaces": null,
            "number_of_parking_spaces_to": null,
            "short_term_constructible": null,
            "recommended_use_types": null,
            "site_development_type": null,
            "building_permission": null,
            "preliminary_enquiry": null
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Suchprofil erstellen

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

#### Request Body

| Name         | Type   | Description                                     |
| ------------ | ------ | ----------------------------------------------- |
| saved\_query | object | siehe alle möglichen Felder zu einem Suchprofil |

{% tabs %}
{% tab title="201 Es wird die ID des angelegten Suchprofils zurückgegeben" %}

```
{
    "ok": true,
    "id": 123
}
```

{% endtab %}
{% endtabs %}

## Suchprofil aktualisieren

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

#### Request Body

| Name         | Type   | Description                                     |
| ------------ | ------ | ----------------------------------------------- |
| saved\_query | object | siehe alle möglichen Felder zu einem Suchprofil |

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

```
```

{% endtab %}
{% endtabs %}

## Suchprofil löschen

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

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

```javascript
{
    "ok": true,
    "id": 123,
}
```

{% endtab %}
{% endtabs %}

## Das Suchprofil Objekt

| Attribut        | Typ        | Beschreibung                                                                                                          |
| --------------- | ---------- | --------------------------------------------------------------------------------------------------------------------- |
| client\_id      | integer    | ID des Kontaktes, zu welches das Suchprofil gehört                                                                    |
| active          | boolean    | Soll das Suchprofil für das Matching von Objekten genutzt werden?                                                     |
| cities          | string\[]  | Eine Liste von Städten (einfache Strings, wie Berlin oder München)                                                    |
| regions         | string\[]  | Eine Liste von Regionen/Bundesländern                                                                                 |
| lat             | float      | Breitengrad (für Radiussuche)                                                                                         |
| lng             | float      | Längengrad (für Radiussuche)                                                                                          |
| radius          | integer    | Radius in Meter (für Radiussuche)                                                                                     |
| marketing\_type | string     | eines von `BUY`, oder `RENT` oder leer lassen                                                                         |
| rs\_types       | string\[]  | eine Liste von Objektypen, siehe [hier](https://propstack.gitbook.io/docs/reference/objekte) für alle möglichen Werte |
| rs\_categories  | string\[]  | eine Liste von Objektarten, siehe unten für mögliche Werte                                                            |
| group\_ids      | integer\[] | eine Liste von Objektmerkmalen                                                                                        |
| note            | string     | Notizfeld für weitere Anmerkungen                                                                                     |

### Weitere Felder vom Suchprofil, die für Wohnobjekte interessant sind:

| Attribut                 | Typ     | Beschreibung                                                                           |
| ------------------------ | ------- | -------------------------------------------------------------------------------------- |
| living\_space            | float   | Mindest(wohn)fläche, die das Objekt haben muss                                         |
| living\_space\_to        | float   | Maximale Fläche, die das Objekt haben kann                                             |
| price                    | float   | Mindestpreis des Objektes                                                              |
| price\_to                | float   | Maximaler Kaufpreis, welche das Objekt haben kann                                      |
| number\_of\_rooms        | float   | Mindest- Zimmeranzahl                                                                  |
| number\_of\_rooms\_to    | float   | Maximale Anzahl an Zimmer                                                              |
| number\_of\_bedrooms     | float   | Mindest-Schlafzimmeranzahl                                                             |
| number\_of\_bedrooms\_to | float   | Maximale Anzahl an Schlafzimmer                                                        |
| base\_rent               | float   | Mindestkaltmiete des Objektes                                                          |
| base\_rent\_to           | float   | Maximale Kaltmiete des Objektes                                                        |
| floor                    | integer | Mindest Etage des Objekte (`2` => ab 2. Etage)                                         |
| floor\_to                | integer | Maximale Etage                                                                         |
| plot\_area               | float   | Mindest Grundstücksfläche                                                              |
| plot\_area\_to           | float   | Maximale Grundstücksfläche                                                             |
| construction\_year       | integer | Mindest Baujahr (z.B. `2018`)                                                          |
| construction\_year\_to   | integer | Maximales Baujahr                                                                      |
| lift                     | string  | Muss einen Fahrstuhl haben? `true`, `false` oder einfach leer lassen, wenn es egal ist |
| balcony                  | string  | Muss ein Balkon haben? s. lift für mögliche Optionen                                   |
| garden                   | string  | Muss einen Garten haben? s. lift für mögliche Optionen                                 |
| built\_in\_kitchen       | string  | Einbauküche? s. lift für mögliche Optionen                                             |
| cellar                   | string  | Keller? s. lift für mögliche Optionen                                                  |
| rented                   | string  | Soll das Objekt vermietet sein? s. lift für mögliche Optionen                          |

## Anmerkungen

**Verfügbare Objektarten (`rs_categories`):**

```javascript
{
  "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",
  "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": "Gewerbepark",
  "LIVING_AND_COMMERCIAL_BUILDING": "Wohn- und Geschäftsgebäude",
  "OFFICE_AND_COMMERCIAL_BUILDING": "Büro- und Geschäftshaus",
  "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",
  "SPECIAL_ESTATE": "Spezialobjekt",
  "VINEYARD": "Weingut",
  "INVEST_FREEHOLD_FLAT": "Eigentumswohnung",
  "INVEST_SINGLE_FAMILY_HOUSE": "Einfamilienhaus",
  "INVEST_MULTI_FAMILY_HOUSE": "Mehrfamilienhaus",
  "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",
  "SHORT_TERM_APARTMENT": "Apartment",
  "SHORT_TERM_ROOM": "Zimmer",
  "SHORT_TERM_HOUSE": "Haus",
  "SHORT_TERM_FLAT": "Wohnung",
  "TRADE_SITE": "Grundstück"
}
```
