CasafariMCP
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

Properties · REST API

Create a smart link (BETA) (v1)

POSThttps://api.casafari.com/api/v1/properties/smart-links
Bearer token17 parameters

Send Authorization: Bearer $CASAFARI_TOKEN; see how to get a token.

Over MCP: no tool does this. MCP and REST compared.

Description

Generates a smart link that provides detailed property information with customizable components, branding, and user/company information overrides.

Request body

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

primary_listing_idsinteger[]required
List of primary listing ids to include in the smart link.
1–10 items
settingsobjectrequired
5 properties
is_indexing_by_search_engineboolean
Determines whether a share page should be indexed by search engines.
default false
is_hide_sourceboolean
Removes the "Sourced by Casafari" label from the Smartlink page.
default false
languagestringrequired
Language of the share page.
en fr it pt es de
brand_colorstring
Main color of graphical elements in the report.
at most 9 characters
components_to_includestring[]
List of components to include in the smart link.
price days_on_market price_change sources history location_intelligence comparables valuation market_analytics
default ["price"]
userobjectrequired
6 properties
first_namestringrequired
last_namestringrequired
emailstring (email)required
phonestringrequired
photo_urlstring (uri)
pattern ^(?:[a-z0-9.+-]*)://(?:[^\s:@/]+(?::[^\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\.(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\[[0-9a-f:.]+\]|([a-z¡-￿0-9](?:[a-z¡-￿0-9-]{0,61}[a-z¡-￿0-9])?(?:\.(?!-)[a-z¡-￿0-9-]{1,63}(?<!-))*\.(?!-)(?:[a-z¡-￿-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\.?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\s]*)?\z
about_mestring
companyobject
2 properties
namestringrequired
logo_urlstring (uri)
pattern ^(?:[a-z0-9.+-]*)://(?:[^\s:@/]+(?::[^\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\.(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\[[0-9a-f:.]+\]|([a-z¡-￿0-9](?:[a-z¡-￿0-9-]{0,61}[a-z¡-￿0-9])?(?:\.(?!-)[a-z¡-￿0-9-]{1,63}(?<!-))*\.(?!-)(?:[a-z¡-￿-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\.?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\s]*)?\z

Example request

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

curl
curl -X POST "https://api.casafari.com/api/v1/properties/smart-links" \
  -H "Authorization: Bearer $CASAFARI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "primary_listing_ids": [
    111111111,
    222222222
  ],
  "settings": {
    "brand_color": "#000000",
    "language": "pt",
    "is_indexing_by_search_engine": true,
    "is_hide_source": true,
    "components_to_include": [
      "price",
      "days_on_market",
      "price_change",
      "sources",
      "history",
      "location_intelligence",
      "comparables",
      "valuation",
      "market_analytics"
    ]
  },
  "user": {
    "first_name": "Test",
    "last_name": "Test",
    "email": "user@casafari.com",
    "phone": "+111111111111",
    "photo_url": "https://www.photos-cdn.com/user-photo.png",
    "about_me": "about me text info"
  },
  "company": {
    "name": "Company Name",
    "logo_url": "https://www.photos-cdn.com/company-logo.png"
  }
}'

Responses

200 OK

Type: object.

Show the response shape (2 fields)
idstringrequired
urlstringrequired
Example from the API description
JSON
{
  "id": "68d119290bc138b51fc58f4c",
  "url": "https://www.casafari.com/estate/sharepage/68d119290bc138b51fc58f4c"
}

401 Unauthorized

Type: object.

Show the response shape (1 fields)
detailstring
Description of the error encountered.

403 Forbidden

Type: object.

Show the response shape (1 fields)
detailstring
Description of the error encountered.

Questions about this

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