# Get a seller lead

> **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).

`GET https://platform.casafari.com/v1/seller-leads/{lead_id}`

[High Potential Seller Leads](/docs/seller-leads) · [REST API](/docs/rest/seller-leads). Send `Authorization: Bearer $CASAFARI_API_KEY`: a platform API key or OAuth access token; see [platform sign-in](/docs/rest#platform-api-keys). Costs 10 units (1 unit = EUR 0.04).

Over MCP: none; this product is REST only.

## Description

One lead by its `lead_` id: the home, with the same fields as `GET /v1/property-sourcing/properties/{property_id}`, and its dated price and status history. 10 units.

## Path parameters

- `lead_id` (string, required): A `lead_` id from `GET /v1/seller-leads`.

## Example request

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

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

## Responses

### 200 The lead.

Type: `object`.

- `id` (string, optional)
- `property` (any, optional)
- `history` (object[], optional)
  - `date` (string, optional, nullable)
  - `event` (string, optional, nullable): What changed, e.g. a new listing, a price change, a status change.
  - `action` (string, optional, nullable)
  - `operation` (string, optional, nullable)
  - `old_value` (any, optional): The value before the change.
  - `new_value` (any, optional): The value after the change.
  - `source` (string, optional, nullable)
  - `agency` (string, optional, nullable)

Example with sample values (ids and figures are illustrative) (long arrays shortened):

```json
{
  "id": "lead_5Tn3wK8pR2yH6mQ1vX9cBe",
  "property": {
    "id": "prop_9Rk4tW2nP7xM3cL6vB1qZs",
    "type": "apartment",
    "operation": "sale",
    "price": {
      "amount": 350000,
      "currency": "EUR",
      "per_sqm": 4375
    },
    "bedrooms": 2,
    "living_area_sqm": 80,
    "location": {
      "id": 12345,
      "name": "Sample district",
      "coordinates": {
        "lat": 40.4172,
        "lon": -3.7051
      }
    },
    "first_seen": "2026-03-02",
    "listings_count": null,
    "matched_tags": null,
    "bathrooms": 1,
    "total_area_sqm": 86,
    "plot_area_sqm": null,
    "construction_year": 1965,
    "energy_rating": null,
    "condition": "good",
    "features": [
      "elevator"
    ],
    "address": null,
    "description": "Sample description.",
    "status": "active"
  },
  "history": [
    {
      "date": "2026-03-02",
      "event": "new",
      "action": null,
      "operation": "sale",
      "old_value": null,
      "new_value": 400000,
      "source": "Sample agency website",
      "agency": "Sample agency"
    },
    {
      "date": "2026-05-11",
      "event": "price_change",
      "action": "decrease",
      "operation": "sale",
      "old_value": 400000,
      "new_value": 375000,
      "source": "Sample agency website",
      "agency": "Sample agency"
    }
  ]
}
```

### 401 Missing or unknown API key or token.

Type: `object`.

- `type` (string, optional): The problem's documentation URL.
- `title` (string, optional)
- `status` (integer, optional)
- `detail` (string, optional): What happened and how to fix it.
- `instance` (string, optional)
- `code` (string, optional): e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
- `request_id` (string, optional)
- `errors` (object[], optional): One entry per field to fix.
  - `field` (string, optional)
  - `message` (string, optional)

### 402 No units left to fund the call (`payment_required`).

Type: `object`.

- `type` (string, optional): The problem's documentation URL.
- `title` (string, optional)
- `status` (integer, optional)
- `detail` (string, optional): What happened and how to fix it.
- `instance` (string, optional)
- `code` (string, optional): e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
- `request_id` (string, optional)
- `errors` (object[], optional): One entry per field to fix.
  - `field` (string, optional)
  - `message` (string, optional)

### 403 The account is not entitled to this lead's country (`not_entitled`).

Type: `object`.

- `type` (string, optional): The problem's documentation URL.
- `title` (string, optional)
- `status` (integer, optional)
- `detail` (string, optional): What happened and how to fix it.
- `instance` (string, optional)
- `code` (string, optional): e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
- `request_id` (string, optional)
- `errors` (object[], optional): One entry per field to fix.
  - `field` (string, optional)
  - `message` (string, optional)

### 404 No lead has this id (`not_found`).

Type: `object`.

- `type` (string, optional): The problem's documentation URL.
- `title` (string, optional)
- `status` (integer, optional)
- `detail` (string, optional): What happened and how to fix it.
- `instance` (string, optional)
- `code` (string, optional): e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
- `request_id` (string, optional)
- `errors` (object[], optional): One entry per field to fix.
  - `field` (string, optional)
  - `message` (string, optional)

## Related pages

- [List seller leads (GET /v1/seller-leads)](/docs/rest/seller-leads/list-seller-leads)
- [High Potential Seller Leads REST API: all operations](/docs/rest/seller-leads)
- [How to get a bearer token for the Casafari REST API](/docs/rest)
- [MCP vs REST API compared](/docs/parity)
