Platform
Get started

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

Claro AI · REST API

Your own stores

PUThttps://platform.casafari.com/v1/claro/stores
API key4 parameters

Send 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 PUT https://platform.casafari.com/v1/claro/stores; PUT /v1/stores 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: no tool does this. MCP and REST compared.

Description

PUT replaces the list: text/csv with a header naming name, lat and lon (latitude/longitude also work; comma, semicolon or tab separated), or JSON {"stores": [{"name", "lat", "lon"}]}. Up to 5,000 stores, in Spain, coordinates only (no addresses); the body under 1 MB. GET returns the list; DELETE removes it. Only your account's searches read it.

Published summary: Your own stores, for "not within N m of our stores" (own_stores_away_m)

Request body

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

storesobject[]required
1–5000 items
3 properties
namestringrequired
Named in the own_stores_within_Nm verdict's evidence (nearest store and distance); cut at 120 characters.
1–120 characters
latnumberrequired
Latitude, decimal degrees (a numeric string with a decimal comma is read too).
27.4–44
lonnumberrequired
Longitude, decimal degrees (a numeric string with a decimal comma is read too).
-18.4–4.6

Example request

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

curl
curl -X PUT "https://platform.casafari.com/v1/claro/stores" \
  -H "Authorization: Bearer $CASAFARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "stores": [
    {
      "name": "Gran Vía 28",
      "lat": 40.42,
      "lon": -3.7051
    },
    {
      "name": "Diagonal 471",
      "lat": 41.3942,
      "lon": 2.1457
    }
  ]
}'

Responses

200 How many stores are stored and when the list was written

Type: object.

Show the response shape (2 fields)
countintegerrequired
Stores in the list now.
1–5000
updated_atstring (date-time)required
When this list replaced the previous one (UTC).
Example from the API description
JSON
{
  "count": 2,
  "updated_at": "2026-10-15T09:00:00.000Z"
}

400 Invalid request

Type: object.

Show the response shape (3 fields)
errorobject
2 properties
codestringrequired
messagestringrequired

401 Missing or invalid key

Type: object.

Show the response shape (3 fields)
errorobject
2 properties
codestringrequired
messagestringrequired

403 No access

Type: object.

Show the response shape (3 fields)
errorobject
2 properties
codestringrequired
messagestringrequired

413 Body over 1 MB

Type: object.

Show the response shape (3 fields)
errorobject
2 properties
codestringrequired
messagestringrequired

429 Rate limited

Type: object.

Show the response shape (3 fields)
errorobject
2 properties
codestringrequired
messagestringrequired

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