Contents
View as Markdown

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

NameTypeRequiredDescription
namestringyes
location_labelstring | nullno
search_areaobject | nullnoA 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_latitudenumber | nullno
centre_longitudenumber | nullno
search_distancenumber | nullnoRadius in km around the centre; required with a centre.
property_typesarray<string>noThe property types searched; empty means every type.Values:multi_family_househouseapartment
calculation_strategystring | nullnoThe 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_ratenumber | nullno
repayment_ratenumber | nullno
loan_amount_percentagenumber | nullno
buyhold_building_sharenumber | nullno
purchase_price_discountnumber | nullno
estimated_rent_net_per_sqmnumber | nullno
estimated_operating_costs_per_sqmnumber | nullno
estimated_operating_costs_transferable_per_sqmnumber | nullno
maintenance_reserve_per_sqmnumber | nullno
imputed_rental_lossnumber | nullno
buyhold_estimated_rental_increasenumber | nullno
buyhold_estimated_market_value_increasenumber | nullno
buyhold_estimated_cost_increasenumber | nullno
fixflip_target_selling_price_per_sqmnumber | nullno
fixflip_target_rent_net_per_sqmnumber | nullno
fixflip_project_duration_in_monthsinteger | nullno
fixflip_operating_costs_per_sqmnumber | nullno
checksarray<object>noThe 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_bystring | nullnoValues:distancestartDatesalePricesalePricePerSqmrentalYieldGrosspurchasePriceFactorcashflowmarketDiscountfixflipMarginfixflipProfitrentalYieldGrossActualrentalYieldGrossYearOnereturnOnEquitycrawledAtpurchasePriceVsMarketrentVsMarkettotalInvestmentCostsPerSqmfixflipBestCaseMarginfixflipBestCaseProfit
search_order_by_directionstring | nullnoValues:ascdesc
agent_enabledbooleannoThe daily mail of new hits. Needs a place; switching it on uses one of the plan’s active Suchprofil slots.
agent_time_localstring | nullno
agent_timezonestringno
public_enabledbooleannoShown on the owner’s public investor page. Needs a place.
public_notestring | nullno

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

NameTypeRequiredDescription
idintegeryesThe 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

NameTypeRequiredDescription
idintegeryesThe 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

NameTypeRequiredDescription
limitintegerno
offsetintegerno
source_acquisition_profile_idintegernoThe 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

NameTypeRequiredDescription
namestringno
location_labelstring | nullno
search_areaobject | nullnoA 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_latitudenumber | nullno
centre_longitudenumber | nullno
search_distancenumber | nullnoRadius in km around the centre; required with a centre.
property_typesarray<string>noThe property types searched; empty means every type.Values:multi_family_househouseapartment
calculation_strategystring | nullnoThe 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_ratenumber | nullno
repayment_ratenumber | nullno
loan_amount_percentagenumber | nullno
buyhold_building_sharenumber | nullno
purchase_price_discountnumber | nullno
estimated_rent_net_per_sqmnumber | nullno
estimated_operating_costs_per_sqmnumber | nullno
estimated_operating_costs_transferable_per_sqmnumber | nullno
maintenance_reserve_per_sqmnumber | nullno
imputed_rental_lossnumber | nullno
buyhold_estimated_rental_increasenumber | nullno
buyhold_estimated_market_value_increasenumber | nullno
buyhold_estimated_cost_increasenumber | nullno
fixflip_target_selling_price_per_sqmnumber | nullno
fixflip_target_rent_net_per_sqmnumber | nullno
fixflip_project_duration_in_monthsinteger | nullno
fixflip_operating_costs_per_sqmnumber | nullno
checksarray<object>noThe 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_bystring | nullnoValues:distancestartDatesalePricesalePricePerSqmrentalYieldGrosspurchasePriceFactorcashflowmarketDiscountfixflipMarginfixflipProfitrentalYieldGrossActualrentalYieldGrossYearOnereturnOnEquitycrawledAtpurchasePriceVsMarketrentVsMarkettotalInvestmentCostsPerSqmfixflipBestCaseMarginfixflipBestCaseProfit
search_order_by_directionstring | nullnoValues:ascdesc
agent_enabledbooleannoThe daily mail of new hits. Needs a place; switching it on uses one of the plan’s active Suchprofil slots.
agent_time_localstring | nullno
agent_timezonestringno
public_enabledbooleannoShown on the owner’s public investor page. Needs a place.
public_notestring | nullno
idintegeryesThe 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

NameTypeRequiredDescription
idintegeryesThe 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

NameTypeRequiredDescription
idintegeryesThe search profile id.
limitintegerno
offsetintegerno

RESTGET /api/v1/search-profiles/{id}/runs