# Create a smart link (BETA) (v1)

> **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. Every property is one record with its full price and market history. [How the property graph is built](/docs/property-graph).

`POST https://api.casafari.com/api/v1/properties/smart-links`

[Properties](/docs/properties) · [REST API](/docs/rest/properties). Send `Authorization: Bearer $CASAFARI_TOKEN`; see [how to get a token](/docs/rest#get-a-token).

Over MCP: no tool does this. See [MCP and REST compared](/docs/parity#properties).

## 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_ids` (integer[], required): List of primary listing ids to include in the smart link. 1–10 items.
- `settings` (object, required)
  - `is_indexing_by_search_engine` (boolean, optional): Determines whether a share page should be indexed by search engines. default false.
  - `is_hide_source` (boolean, optional): Removes the "Sourced by Casafari" label from the Smartlink page. default false.
  - `language` (string, required): Language of the share page. Values: `en`, `fr`, `it`, `pt`, `es`, `de`.
  - `brand_color` (string, optional): Main color of graphical elements in the report. at most 9 characters.
  - `components_to_include` (string[], optional): List of components to include in the smart link. Values: `price`, `days_on_market`, `price_change`, `sources`, `history`, `location_intelligence`, `comparables`, `valuation`, `market_analytics`. default ["price"].
- `user` (object, required)
  - `first_name` (string, required)
  - `last_name` (string, required)
  - `email` (string (email), required)
  - `phone` (string, required)
  - `photo_url` (string (uri), optional) 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_me` (string, optional)
- `company` (object, optional)
  - `name` (string, required)
  - `logo_url` (string (uri), optional) 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.

```bash
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`.

- `id` (string, required)
- `url` (string, required)

Example from the API description:

```json
{
  "id": "68d119290bc138b51fc58f4c",
  "url": "https://www.casafari.com/estate/sharepage/68d119290bc138b51fc58f4c"
}
```

### 401 Unauthorized

Type: `object`.

- `detail` (string, optional): Description of the error encountered.

### 403 Forbidden

Type: `object`.

- `detail` (string, optional): Description of the error encountered.

## Questions about this

- [Can I search properties over Casafari MCP?](/docs/faq/properties-over-mcp)
- [How do I look up one property and its price history?](/docs/faq/example-property-lookup)
