Search profiles
7 tools. Generated from the MCP server: names, inputs and prices match the code.
Create Search Profile
Save a search profile. Create one only when the person asks and gives the values; do not invent criteria. Free on every plan. checks take any criterion of the deals_search catalog, one per check_type, percentages as 0-1 fractions (0.05 = 5 %). Rates and shares of the assumptions are 0-1 fractions; financing is all three of loan_amount_percentage, interest_rate, repayment_rate or none. agent_enabled (the daily mail, free) needs a place and one of the plan’s mailing slots. Storing a market-value or cashflow criterion or sort needs a plan that shows market values. Judging what a mail delivers is a routine (routines_create with trigger deal_arrived and source search_agent, whose search_agent_id is this id).
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | yes | |
| location_label | string | null | no | |
| search_area | object | null | no | A drawn area as a GeoJSON Polygon or MultiPolygon. A place is this OR a centre with a radius, never both; none at all is a Suchprofil without a place, which cannot mail or be public. |
| centre_latitude | number | null | no | |
| centre_longitude | number | null | no | |
| search_distance | number | null | no | Radius in km around the centre; required with a centre. |
| property_types | array<string> | no | The property types searched; empty means every type.Values:multi_family_househouseapartment |
| calculation_strategy | string | null | no | The strategy the metrics are modelled with. Null: the account’s default strategy. A fix-and-flip criterion needs fix_and_flip.Values:buy_and_holdfix_and_flip |
| interest_rate | number | null | no | |
| repayment_rate | number | null | no | |
| loan_amount_percentage | number | null | no | |
| buyhold_building_share | number | null | no | |
| purchase_price_discount | number | null | no | |
| estimated_rent_net_per_sqm | number | null | no | |
| estimated_operating_costs_per_sqm | number | null | no | |
| estimated_operating_costs_transferable_per_sqm | number | null | no | |
| maintenance_reserve_per_sqm | number | null | no | |
| imputed_rental_loss | number | null | no | |
| buyhold_estimated_rental_increase | number | null | no | |
| buyhold_estimated_market_value_increase | number | null | no | |
| buyhold_estimated_cost_increase | number | null | no | |
| fixflip_target_selling_price_per_sqm | number | null | no | |
| fixflip_target_rent_net_per_sqm | number | null | no | |
| fixflip_project_duration_in_months | integer | null | no | |
| fixflip_operating_costs_per_sqm | number | null | no | |
| checks | array<object> | no | The criteria, one per check_type: a deal must meet all of them. Replaces the whole set; leave out to keep it. Percentages are 0-1 fractions (0.05 = 5 %). |
| search_order_by | string | null | no | Values:distancestartDatesalePricesalePricePerSqmrentalYieldGrosspurchasePriceFactorcashflowmarketDiscountfixflipMarginfixflipProfitrentalYieldGrossActualrentalYieldGrossYearOnereturnOnEquitycrawledAtpurchasePriceVsMarketrentVsMarkettotalInvestmentCostsPerSqmfixflipBestCaseMarginfixflipBestCaseProfit |
| search_order_by_direction | string | null | no | Values:ascdesc |
| agent_enabled | boolean | no | The daily mail of new hits. Needs a place; switching it on uses one of the plan’s active Suchprofil slots. |
| agent_time_local | string | null | no | |
| agent_timezone | string | no | |
| public_enabled | boolean | no | Shown on the owner’s public investor page. Needs a place. |
| public_note | string | null | no |
RESTPOST /api/v1/search-profiles
Delete Search Profile
Delete a search profile: it disappears, stops mailing and leaves the investor page. Its delivered listings, runs and routines stay. Confirm with the person first; it cannot be restored here.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | The search profile id. |
RESTDELETE /api/v1/search-profiles/{id}
Get Search Profile
Get one search profile with its checks, assumptions, mail schedule and investor-page settings.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | The search profile id. |
RESTGET /api/v1/search-profiles/{id}
List Search Profiles
List the user’s search profiles (Suchprofile), oldest first. A search profile is a saved deal search: a place (a drawn area or a centre with a radius, or none yet: has_place false), property_types (empty = every type), checks (the criteria, as deals_search takes them), calculation assumptions (null = the account’s defaults), an optional daily mail of new hits (agent_enabled) and an optional card on the investor page (public_enabled). Pass one to deals_search as search_profile_id.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| limit | integer | no | |
| offset | integer | no | |
| source_acquisition_profile_id | integer | no | The id of an acquisition profile from before the merge: returns the Suchprofil that carries it (old links). |
RESTGET /api/v1/search-profiles
Update Search Profile
Update a search profile: fields left out stay, null clears one (an assumption falls back to the account’s number). Rates, shares and percentages are 0-1 fractions. checks replaces the whole set, so call search_profiles_get first and send the checks to keep. Switching agent_enabled on checks the plan’s mailing slots and starts the daily mail; off stops it. A profile with provided_by_customer_id is provided and edited by a Vertrieb seller: only agent_enabled, agent_time_local and agent_timezone may change (otherwise search_profile_provided_by_seller; Duplizieren in the app makes an editable copy), and its mail takes no mailing slot.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | no | |
| location_label | string | null | no | |
| search_area | object | null | no | A drawn area as a GeoJSON Polygon or MultiPolygon. A place is this OR a centre with a radius, never both; none at all is a Suchprofil without a place, which cannot mail or be public. |
| centre_latitude | number | null | no | |
| centre_longitude | number | null | no | |
| search_distance | number | null | no | Radius in km around the centre; required with a centre. |
| property_types | array<string> | no | The property types searched; empty means every type.Values:multi_family_househouseapartment |
| calculation_strategy | string | null | no | The strategy the metrics are modelled with. Null: the account’s default strategy. A fix-and-flip criterion needs fix_and_flip.Values:buy_and_holdfix_and_flip |
| interest_rate | number | null | no | |
| repayment_rate | number | null | no | |
| loan_amount_percentage | number | null | no | |
| buyhold_building_share | number | null | no | |
| purchase_price_discount | number | null | no | |
| estimated_rent_net_per_sqm | number | null | no | |
| estimated_operating_costs_per_sqm | number | null | no | |
| estimated_operating_costs_transferable_per_sqm | number | null | no | |
| maintenance_reserve_per_sqm | number | null | no | |
| imputed_rental_loss | number | null | no | |
| buyhold_estimated_rental_increase | number | null | no | |
| buyhold_estimated_market_value_increase | number | null | no | |
| buyhold_estimated_cost_increase | number | null | no | |
| fixflip_target_selling_price_per_sqm | number | null | no | |
| fixflip_target_rent_net_per_sqm | number | null | no | |
| fixflip_project_duration_in_months | integer | null | no | |
| fixflip_operating_costs_per_sqm | number | null | no | |
| checks | array<object> | no | The criteria, one per check_type: a deal must meet all of them. Replaces the whole set; leave out to keep it. Percentages are 0-1 fractions (0.05 = 5 %). |
| search_order_by | string | null | no | Values:distancestartDatesalePricesalePricePerSqmrentalYieldGrosspurchasePriceFactorcashflowmarketDiscountfixflipMarginfixflipProfitrentalYieldGrossActualrentalYieldGrossYearOnereturnOnEquitycrawledAtpurchasePriceVsMarketrentVsMarkettotalInvestmentCostsPerSqmfixflipBestCaseMarginfixflipBestCaseProfit |
| search_order_by_direction | string | null | no | Values:ascdesc |
| agent_enabled | boolean | no | The daily mail of new hits. Needs a place; switching it on uses one of the plan’s active Suchprofil slots. |
| agent_time_local | string | null | no | |
| agent_timezone | string | no | |
| public_enabled | boolean | no | Shown on the owner’s public investor page. Needs a place. |
| public_note | string | null | no | |
| id | integer | yes | The search profile id. |
RESTPATCH /api/v1/search-profiles/{id}
Run Search Profile
Run a search profile now, off schedule, with the rules of the daily mail: only listings it never delivered are mailed. Free. Needs a place. On a search profile whose mail was never on, the first run sets a baseline (mode baseline): it records the current listings and mails nothing; later runs mail what is new. The run is asynchronous: search_profiles_runs_list shows its outcome.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | The search profile id. |
RESTPOST /api/v1/search-profiles/{id}/run
List Search Profile Runs
Run history of a search profile, newest first. skipped_reason says why a run delivered nothing: no_new_deals, inactive, baseline, tier_unresolved (the plan did not resolve and the profile has criteria only some plans may use) or seller_inactive (a Vertrieb seller provided the profile and no longer carries it: the connection ended or their plan has no Vertrieb); no_credits only on runs from before mails were free.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | The search profile id. |
| limit | integer | no | |
| offset | integer | no |
RESTGET /api/v1/search-profiles/{id}/runs