Grounded property tool for an AI assistant
For Builders of AI agents and assistants. Expose Casafari's describe search, property read and resolve as tools; the agent learns them from /openapi.json and /llms.txt and handles 402 and 429.
Why does the assistant hallucinate properties?
Asked for "a 3-bedroom flat in Porto with a terrace under 400k", an LLM with no grounded tool invents addresses and prices. It needs a tool that accepts words rather than a rigid filter schema, returns one record per real property and fails with errors it can act on.
How does it work step by step?
- Teach the schema. Load /openapi.json for request and response shapes and /llms.txt for the documentation; every hub page is also available as Markdown (.md). Property Sourcing is REST only, with no MCP tools.
- Tool 1, locate.
GET /v1/locations/searchturns "Porto" intolocation_ids. - Tool 2, search by words.
POST /v1/property-sourcing/searches/describewith up to 20tagstaken from the prompt (for example "3 bedrooms", "terrace") or the prompt asdescription, pluslocation_idsand an optionalpricerange; each result carriesmatched_tagsthe assistant can quote. - Tool 3, details.
GET /v1/property-sourcing/properties/{property_id}?expand=listings,historygrounds any answer about price history, energy rating, condition or where the home is advertised. - Tool 4, pasted links.
POST /v1/property-sourcing/properties/resolvemaps a URL, agency reference or listing id the user pastes to itsprop_…id. - Handle errors. Responses are RFC 9457 problem+json: on 429
request_limit_reached, wait for the named window; on 402payment_required, show the human theupgrade_url.
curl -X POST https://platform.casafari.com/v1/property-sourcing/searches/describe \
-H "Authorization: Bearer $CASAFARI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"location_ids": [12345], "tags": ["3 bedrooms", "terrace"], "price": {"max": 400000}, "page_size": 25}'The exact shape of the price range is in /openapi.json.
What do you get?
Answers grounded in the deduplicated, cleaned property graph: id, type, operation, price (null when on request), bedrooms, living_area_sqm, location, first_seen, listings_count and matched_tags per property, with ids the assistant can cite across turns. For "homes likely to sell near this point" in Spain, France, Italy, Germany, Greece and Andorra, add High Potential Seller Leads as a fifth tool; see Compliant seller-prospecting workflow for an AI agent.
What are the limits?
Authenticate with a platform API key (cf_sk_…) or an OAuth access token as Authorization: Bearer or X-API-Key (Platform API keys). Guards: Free 10 distinct places a day, 10 requests a minute, 2 concurrent; Agent (EUR 70 a month) and pay as you go 50 places, 20 a minute, 3 concurrent. Describe pages cost 100 units, property reads 10, resolves 25. The API returns no seller contact details, so the assistant must never present any.