Search commercial plots (Germany)
https://platform.casafari.com/v1/claro/plots/searchSend Authorization: Bearer $CASAFARI_API_KEY: a platform API key or OAuth access token, metered in platform units; see platform sign-in and Claro AI. On the platform this is POST https://platform.casafari.com/v1/claro/plots/search; POST /v1/plots/search is Claro's own path, which the platform adds /claro to. The platform forwards the call to Claro unchanged: Claro's Claro-Version header and its error bodies ({"error":{"code","message"}}, with rate_limited and quota_reached on a 429) pass through.
Over MCP: search_plots (equivalent). MCP and REST compared.
Description
Find plots of land for sale or rent in Germany for a commercial building, from Casafari's property graph. Plots only, never premises: counts and results come from a separate set, one result per plot however many agencies advertise it (the others in also_listed_by). Criteria are data: Länder (regions), municipalities, postcodes, plot type, operation, plot area, sale price and price per m², keywords in the property's own words, and commercial_use, how far the property's own text says a commercial building can go on the plot. Levels: zoned_commercial (GE, GI, MK, MU stated), zoned_mixed_or_special (MI, SO, MD stated: check the plan), commercial_use_stated (commercial use stated as allowed or suitable, no class: read the quote), building_land_use_not_stated, residential_only_stated, zoned_leisure_special (SO for recreation), not_building_land_stated, not_stated. The default is the first three; send "all" or any list to widen it. Each result gives its level with the quote it rests on and, for a stated class, zoning_source (a Flächennutzungsplan is not binding), the facts read from the text (zoning class, serviced, B-Plan, §34/§35, building permit, GRZ, GFZ), an excerpt and the agency's link. The level is what the property's text says, not a zoning check; coordinates are approximate.
Request body
Content type application/json. Required. Type: object.
criteriaobject13 properties
regionsstring[]municipalitiesstring[]zipcodesstring[]plot_typesstring[]building_plot rural_plotoperationstringsale rent eitherplot_area_minnumberplot_area_maxnumbersale_price_minnumbersale_price_maxnumbersale_price_m2_maxnumbercommercial_usestring | string[]servicedbooleankeywordsstring[]limitintegeroffsetintegersortstringcommercial_use newest price_asc area_desc price_m2_ascExample request
Placeholders only: replace the token and the values with your own.
curl -X POST "https://platform.casafari.com/v1/claro/plots/search" \
-H "Authorization: Bearer $CASAFARI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"criteria": {
"regions": [
"<regions>"
]
}
}'Responses
200 Search commercial plots (Germany)
No body.
Example from the API description
{
"scope": "plots",
"country": "de",
"count": 1,
"returned": 1,
"offset": 0,
"criteria": {
"regions": [
"bayern"
],
"plot_area_min": 2000
},
"note": "Plots only, never premises.",
"results": [
{
"id": "pm_Qw7rT2xLmN8bV4cZ1aYs0e",
"title": "Gewerbegrundstück im Gewerbegebiet Nord",
"plot_type": "building_plot",
"country": "de",
"region": "Bayern",
"municipality": "Ingolstadt",
"zipcode": "85055",
"location_precision": "approximate",
"coordinates": {
"lat": 48.79,
"lon": 11.45,
"precision": "approximate"
},
"for_sale": true,
"for_rent": false,
"sale_eur": 1200000,
"rent_eur_month": null,
"plot_area_m2": 6000,
"sale_eur_per_m2": 200,
"commercial_use": {
"level": "zoned_commercial",
"meaning": "The plot's text states a commercial zoning class: GE, GI, MK or MU (Gewerbe-, Industrie-, Kerngebiet, urbanes Gebiet).",
"evidence": "Das Grundstück liegt im Gewerbegebiet (GE)",
"facts_read": true
},
"facts_from_text": {
"zoning_class": "GE",
"serviced": true
},
"excerpt": "Voll erschlossenes Gewerbegrundstück, ca. 6.000 m², direkte Anbindung an die A9.",
"agency": {
"name": "Muster Immobilien",
"listing_url": "https://muster-immobilien.de/expose/1"
},
"agency_links": [
{
"name": "Muster Immobilien",
"listing_url": "https://muster-immobilien.de/expose/1"
}
]
}
]
}400 Invalid request
Type: object.
Show the response shape (3 fields)
errorobject2 properties
codestringrequiredmessagestringrequired401 Missing or invalid key
Type: object.
Show the response shape (3 fields)
errorobject2 properties
codestringrequiredmessagestringrequired403 No access
Type: object.
Show the response shape (3 fields)
errorobject2 properties
codestringrequiredmessagestringrequired429 Rate limited
Type: object.
Show the response shape (3 fields)
errorobject2 properties
codestringrequiredmessagestringrequired