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

Private Seller Leads · REST API

Search private-seller listings by place and date

POSThttps://platform.casafari.com/v1/private-sellers/search
API key10 tokens a call8 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. Costs 10 tokens a call (1 token = EUR 0.04).

The platform's OpenAPI file leaves the shape open; what is shown comes from the same definitions the platform publishes elsewhere: request: the MCP tool private-sellers_search's input.

Over MCP: private-sellers_search (equivalent). See MCP and REST compared.

Description

Costs 10 tokens a call. Each page is a call. Page size: page_size in the body, at most 50 (a Free plan account is capped lower).

Request body

Content type application/json. Optional. Type: object.

location_idintegerrequired
Location id of a country, city, district or neighbourhood, from locations_search (Location Lookup).
≥ 1
sincestringrequired
Only listings first seen on or after this date, YYYY-MM-DD, at most 90 days back.
pattern ^\d{4}-\d{2}-\d{2}$
untilstring
Only listings first seen on or before this date, YYYY-MM-DD. Optional.
pattern ^\d{4}-\d{2}-\d{2}$
operationstring
Homes for sale or for rent. Optional: both.
sale rent
property_typestring
Property type group, lower case, e.g. "apartment" or "house". Optional.
pattern ^[a-z_]{1,32}$
confirmed_onlyboolean
true: only listings whose private seller is confirmed. Default false.
page_sizeinteger
Listings per page, 1 to 50 (default 20). Every page costs the same.
1–50
cursorstring
The next value of the previous page, as it came. Valid for an hour. Leave out for the first page.
1–4096 characters

Example request

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

curl
curl -X POST "https://platform.casafari.com/v1/private-sellers/search" \
  -H "Authorization: Bearer $CASAFARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "location_id": 1,
  "since": "<since>"
}'

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.