saved_queries

List search profiles, including Commercial criteria and recipients

Changed on

Search profiles support Commercial and Residential criteria. All operations are scoped to the API key's shop.

Endpoints and permissions

OperationPermission
GET /v2/saved_queriesv2_saved_queries#index
GET /v2/saved_queries/optionsv2_saved_queries#index
GET /v2/saved_queries/:idv2_saved_queries#show
POST /v2/saved_queriesv2_saved_queries#create
PUT /v2/saved_queries/:idv2_saved_queries#update
DELETE /v2/saved_queries/:idv2_saved_queries#destroy

Send X-Api-Key and JSON request bodies. List responses contain data; pass with_total=true for total, and page/per for pagination. Lists can filter by client_id, broker_id, team_id and active. Individual reads and writes return the profile directly. Delete returns HTTP 204.

Create a Commercial search profile

{
  "client_id": 123,
  "marketing_type": "RENT",
  "rs_type_categories": [["OFFICE", "OFFICE"]],
  "net_floor_space": 100,
  "net_floor_space_to": 500,
  "industrial_area": 70,
  "recipient_id": 456,
  "to_client_ids": [456],
  "cc_client_ids": [789],
  "broker_id": 12
}

Replace example IDs with records in your shop. client_id identifies the profile owner. It is required unless is_master_template is true. A profile needs at least one criterion; Commercial area criteria count. recipient_id, to_client_ids and cc_client_ids configure recipients. Recipient arrays are returned as empty arrays after clearing. The domain removes archived recipients and deactivates profiles whose owner is archived.

Set either broker_id or team_id as the supervisor, never both. To change from a broker to a team, send both broker_id: null and the new team_id. Client, property, recipient and supervisor references must belong to the same shop; invalid assignments return HTTP 422. Access to another shop's profile returns HTTP 404. Missing API permissions return HTTP 403.

New property assignments must reference a non-deleted property. A profile with an existing link to a subsequently deleted property remains editable.

Criteria, clearing and options

GET /v2/saved_queries/options?locale=de returns the same grouped form metadata as GraphQL shop.queryFormSchema: field key, label, field type, conditions and selectable values. Types ending in _from_to have a lower-bound field and an upper-bound field with _to appended, such as net_floor_space and net_floor_space_to. Existing numeric, selection, geometry and category normalization rules apply. rs_type_categories uses nested type/category arrays; polygon uses the existing array of coordinate pairs.

PUT changes only supplied fields. Explicit null clears nullable values; [] clears recipient or multi-select arrays. Clearing all criteria is rejected. The API also exposes notes, custom fields, perfect_match_settings and expires_at. Use partial_custom_fields to merge individual custom-field values instead of replacing the complete custom_fields object.

Both custom-field payloads must be objects or null. Keys must reference the current shop's property custom fields enabled for search profiles and supported by the search-profile form. Numeric fields additionally accept <field_name>_to for the upper bound. Unknown, foreign, disabled or unsupported keys return HTTP 400 before any changes are saved; GraphQL reports the same validation as an execution error.

custom_fields: null or custom_fields: {} clears custom-field values. partial_custom_fields: null or partial_custom_fields: {} leaves them unchanged; use { "<field_name>": null } to clear one allowed field. Only submitted keys are validated, so unrelated updates and valid partial updates remain possible when stored data still contains a previously removed field.

The existing /api/v1/saved_queries contract remains available. GraphQL uses the equivalent camelCase fields on SavedQueryAttributes with createSavedQuery, updateSavedQuery, destroySavedQuery, and savedQuery(id:).

get/saved_queries

Request

  • Base URL
    https://api.propstack.de/v2
  • Auth
    API key in header X-Api-Key

Query parameters

pageinteger

Page number

perinteger

Entities per page

with_totalboolean

Show the total count of entities

client_idinteger
broker_idinteger
team_idinteger
activeboolean

Response

List search profiles, including Commercial criteria and recipients

idinteger
living_spacenumber float
living_space_tonumber float
number_of_roomsnumber float
number_of_rooms_tonumber float
number_of_bed_roomsinteger
number_of_bed_rooms_tointeger
number_of_bath_roomsinteger
number_of_bath_rooms_tointeger
pricenumber float
price_tonumber float
base_rentnumber float
base_rent_tonumber float
floorinteger
floor_tointeger
plot_areanumber float
plot_area_tonumber float
construction_yearinteger
construction_year_tointeger
conditionstring[]
energy_efficiency_classstring[]
liftstring
balconystring
balcony_spacenumber float
balcony_space_tonumber float
gardenstring
swimming_poolstring
built_in_kitchenstring
cellarstring
rentedstring
parking_spacestring
barrier_freestring
monumentstring
net_floor_spacenumber float
net_floor_space_tonumber float
min_divisiblenumber float
total_floor_spacenumber float
total_floor_space_tonumber float
industrial_areanumber float
industrial_area_tonumber float
price_per_sqmnumber float
price_per_sqm_tonumber float
price_multiplierinteger
price_multiplier_tointeger
yield_actualnumber float
yield_actual_tonumber float
investment_categorystring[]
purchase_formstring[]
tenant_structurestring
waltstring
single_rooms_quotanumber float
single_rooms_quota_tonumber float
occupancy_ratenumber float
occupancy_rate_tonumber float
conservation_areasstring
number_of_parking_spacesinteger
number_of_parking_spaces_tointeger
number_of_apartmentsinteger
number_of_apartments_tointeger
number_of_commercialsinteger
number_of_commercials_tointeger
number_of_unitsinteger
number_of_units_tointeger
gfznumber float
gfz_tonumber float
grznumber float
grz_tonumber float
building_permissionstring
demolitionstring
bgfnumber float
bgf_tonumber float
recommended_use_typesstring[]
utilization_trade_sitestring[]
short_term_constructiblestring
site_development_typestring[]
preliminary_enquirystring
client_idinteger
property_idinteger
broker_idinteger
team_idinteger
recipient_idinteger
to_client_idsinteger[]
cc_client_idsinteger[]
marketing_typestring
activeboolean
guardedboolean
is_master_templateboolean
location_idsinteger[]
citiesstring[]
regionsstring[]
countriesstring[]
group_idsinteger[]
rs_type_categoriesobject
latnumber float
lngnumber float
radiusinteger
polygonobject
notestring
public_notestring
custom_fieldsobject
perfect_match_settingsobject
expires_atunknown
rs_typesstring[]
rs_categoriesstring[]
created_atstring
updated_atstring

Changes