Platform

Casafari is the AI agent-native real estate data intelligence platform. The most complete property index in Europe: a deduplicated, cleaned property graph of residential and commercial property, for sale and for rent, in 16 countries.The most complete property index in Europe: a deduplicated, cleaned property graph.

How the graph is built

REST API · Location Lookup

Search locations by name or postcode

GEThttps://platform.casafari.com/v1/locations/search
API keyfree (0 tokens)6 parameters

Send Authorization: Bearer $CASAFARI_API_KEY: a platform API key (cf_sk_...) from the console, or an OAuth access token; X-API-Key carries the key too. See platform API keys. Free: 0 tokens.

Over MCP: locations_search, on every product's server.

Description

Free (uses no tokens). Search by name, by postcode, or both. Each result has a kind (country, region, province, city, district, neighbourhood, development or other), the same in every country, and level, its depth in the tree (the country is 1; depths differ between countries). Results come exact name or alias first, then cities before districts, regions and provinces, neighbourhoods and developments. Postcodes: Spain, France (partly) and Portugal (parts of Lisbon) only; other countries have none, and country with postcode for one answers 400. Pass country when you know it.

Query parameters

querystring
A place name or alias; misspellings are tolerated. Required unless postcode is given.
1–100 characters
postcodestring
The places this postcode covers, smallest area first (for example 28019 or 1950-102). One postcode matches several places. Postcodes: Spain, France (partly) and Portugal (parts of Lisbon) only; other countries have none, and country with postcode for one answers 400. Pass country when you know it.
3–10 characters
postcode_matchstring
exact (default) matches a full-length code; prefix matches the start of one (280, 1950). 2-digit Spanish province prefixes are not postcodes. Needs postcode.
exact prefix
default "exact"
countrystring
ISO 3166-1 alpha-2 country code to restrict the search to; must be entitled. Pass it when you know it; with postcode it must be ES, FR or PT.
2–2 characters
langstring
Language of the names returned.
en es pt fr de it pl
default "en"
sizeinteger
Page size, at most 25 (a Free plan account is capped lower).
1–25

Example request

Placeholders only: replace the token and the values with your own.

curl
curl "https://platform.casafari.com/v1/locations/search" \
  -H "Authorization: Bearer $CASAFARI_API_KEY"

Responses

200 Success.

Type: object.

Errors

Every error is an application/problem+json body (RFC 9457) with type (a page that explains it), title, status, detail (what to do), instance, code and request_id (what to quote to support). A 402 carries an upgrade_url, a 429 a Retry-After header. The codes each status can carry:

Tip: add .md to any URL to read it as Markdown.