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

High Potential Seller Leads · REST API

List seller leads

GEThttps://platform.casafari.com/v1/seller-leads
API key100 tokens a call13 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 100 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: response 200: the hub's fragment from the platform's contract.

Over MCP: none; this product is REST only.

Description

Costs 100 tokens a call. Each page is a call. One search reaches at most 1000 results. Each lead is {id, property_id, coordinates, price_cuts, price_cuts_since}: the property id, its coordinates and its price reductions, no property details (type, price, size, address). For a lead's details, pass its property_id to Property Sourcing's GET /v1/property-sourcing/properties/{property_id} (10 tokens).

Query parameters

page_sizeinteger
Page size, at most 100 (a Free plan account is capped lower).
1–100
cursorstring
Position of the next page, copied from the previous response.
countrystring
ISO 3166-1 alpha-2 code of the point's country (ES, FR, IT, DE, GR or AD). Needed when the account covers several.
2–2 characters
latnumber
Latitude of the point to search around. Required unless cursor is sent.
-90–90
lonnumber
Longitude of the point to search around. Required unless cursor is sent.
-180–180
radius_minteger
Radius in metres.
50–300default 300
operationstring
sale or rent.
sale rent
default "sale"
min_price_cutsinteger
Fewest price cuts.
1–100default 1
min_price_cut_pctnumber
Smallest total cut, in percent.
0.1–100default 5
sincestring (date)
YYYY-MM-DD: also count the cuts since this date (price_cuts_since).
typesstring
Comma-separated property types, e.g. apartment,house.
price_mininteger
Lowest asking price.
≥ 1
price_maxinteger
Highest asking price.
≥ 1

Example request

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

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

Responses

200 Success.

Type: object.

Show the response shape (14 fields)
resultsobject[]
5 properties
idstring
Opaque lead id, lead_....
property_idstring
The property's prop_ id, readable with GET /v1/property-sourcing/properties/{property_id}.
coordinatesobjectnullable
2 properties
latnumber
lonnumber
price_cutsobjectnullable
Price cuts over the home's whole time on the market.
2 properties
countnumbernullable
Number of price cuts.
percentagenumbernullable
Total cut, in percent.
price_cuts_sinceobjectnullable
Price cuts since the since date; null without it.
2 properties
countnumbernullable
Number of price cuts.
percentagenumbernullable
Total cut, in percent.
totalinteger
How many leads the area has.
nextstringnullable
URL of the next page (valid one hour), or null.
Example with sample values (ids and figures are illustrative)
JSON
{
  "results": [
    {
      "id": "lead_5Tn3wK8pR2yH6mQ1vX9cBe",
      "property_id": "prop_9Rk4tW2nP7xM3cL6vB1qZs",
      "coordinates": {
        "lat": 40.4172,
        "lon": -3.7051
      },
      "price_cuts": {
        "count": 3,
        "percentage": 12.5
      },
      "price_cuts_since": null
    }
  ],
  "total": 14,
  "next": "https://platform.casafari.com/v1/seller-leads?cursor=cur_SAMPLE"
}

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.