# How do I find properties newly advertised by private owners?

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

Use New Market Leads, Casafari's alert feeds over the REST API. Create a feed with `POST /alerts-api/feeds` filtered to your area and private sellers, set your endpoint with `PUT /alerts-api/webhooks`, and each property newly advertised by a private individual arrives as one alert. Casafari client accounts can also query `POST /api/v1/listing-alerts/search` with `private: true`.

Products: [New Market Leads](/docs/alerts), [Property Sourcing](/docs/property-sourcing), [References](/docs/references), [Area Insights](/docs/area-insights).

## Short answer

The `private` filter marks properties advertised by a private individual rather than an agent or a professional. It is a field of `POST /api/v1/listing-alerts/search`, of `POST /api/v2/properties/search` and of the Area Insights tools. A New Market Leads feed follows the property graph for the filters you set and sends each new matching property to your webhook. You hear about an owner selling alone without polling.

## Steps

### Create a feed with `POST /alerts-api/feeds` (feed_name, filters) for your area and private sellers

1. Get a token with `POST /login` (your Casafari `email` and `password`) and send it as `Authorization: Bearer <access_token>`. An unattended integration can use an API client token instead (see [REST authentication](/docs/faq/rest-authentication)).
2. Find the location id of your area. Casafari client accounts use `POST /api/v1/references/locations` (`name`) or `POST /api/v1/references/locations/typeahead` (`country_codes` ES or PT, `name`).
3. Call `POST /alerts-api/feeds` with a `feed_name` and `filters` that hold your area, the property type and the private-seller condition. `filters` accepts `private` (set it to true), `location_ids`, `types` and `business_type`, which is required. It also accepts `has_agency_name`, `has_phone` and `has_email`. The full key list is on the [Create feed](/docs/rest/alerts/create-feed) page. Set the webhook first (`PUT /alerts-api/webhooks`): creating a feed before any webhook is set answers `409` with `No webhook configured`.

### Set your webhook with `PUT /alerts-api/webhooks`

4. Call `PUT /alerts-api/webhooks` with `url`, the endpoint that will receive alerts. Deliveries are signed. When you need a new signing secret, call `POST /alerts-api/webhooks/rotate-secret`. See [Set webhook URL](/docs/rest/alerts/set-webhook-url) and [alerts to a webhook](/docs/faq/alerts-webhook).

### Or query on demand: `POST /api/v1/listing-alerts/search` with private true, alert_date_from, has_phone, has_email

5. With a Casafari client account, send `private: true` with `location_ids`, `operation`, `types`, `alert_date_from` and `alert_date_to` (`YYYY-MM-DD`).
6. Add `has_phone: true` or `has_email: true` to keep only alerts whose advertisement carries a phone number or an email. Details are on [Search alerts (v1)](/docs/rest/alerts/search-alerts-v1).

### Or search the graph: `POST /api/v2/properties/search` with private true and created_date_from

7. With a Casafari client account, send `private: true`, `location_ids` and `created_date_from` (`YYYY-MM-DDTHH:mm:ss`). The search returns properties from private individuals that entered the graph since that moment. Each comes back as one record with its price and status history. Details are on [Search properties (v2)](/docs/rest/property-sourcing/search-properties-v2).

## Example: private sellers of apartments in Cascais, last 7 days

A Casafari client account asks for the last seven days of alerts on apartments for sale in Cascais. The request keeps only private sellers who left a phone number. Replace `<CASCAIS_LOCATION_ID>` with the id from the location lookup in step 2, and replace the dates with your own window.

```json
{
  "operation": "sale",
  "location_ids": [<CASCAIS_LOCATION_ID>],
  "types": ["apartment"],
  "private": true,
  "has_phone": true,
  "alert_date_from": "2026-10-01",
  "alert_date_to": "2026-10-07"
}
```

Send it to `POST /api/v1/listing-alerts/search`.

For a standing version, put the same area, type and private-seller condition in the `filters` of `POST /alerts-api/feeds`. Alerts then arrive at your webhook.

The fields of a returned or delivered alert are documented on the operation page and on the [Alert](/docs/data-export/alert) entity page. This page does not reproduce a sample payload.

An AI assistant connected to the Casafari MCP server cannot list private owners, because alerts and property search are not offered over MCP. It can count them. Ask *"How many new apartments for sale from private sellers appeared in Cascais each week this quarter?"* The assistant then:

1. Calls `ma_get_location_typeahead` for Cascais.
2. Calls `ma_get_time_series_data` with `data_point` `new`, `private` true, `type_group` `apartment`, `business_type` `sale` and `date_interval` `week`.

## How to read the result

### One alert per property, not per advertisement

The property graph merges every advertisement of a property into one record. An owner who posts the same flat on several portals is one property, so you get one lead, not one per portal. Count properties, not advertisements.

### Contact fields: has_phone, has_email, has_agency_name filters

`has_phone` and `has_email` return only alerts from advertisements with (true) or without (false) a phone number or an email.

`has_agency_name` does the same for an agency name. Set it to false to drop advertisements that name an agency.

These are filters. The contact fields an alert actually returns are shown on the [Search alerts (v1)](/docs/rest/alerts/search-alerts-v1) page. Work the newest leads that have a phone number first.

## Limits

### Alert feeds are REST only

Feeds and webhooks on `/alerts-api/*` are available to Casafari clients with their Casafari account.

`POST /api/v1/listing-alerts/search` and `POST /api/v2/properties/search` are for Casafari client accounts. Property Sourcing is a REST product for Casafari clients. For the feeds and the property search, self-serve access for new users is coming soon.

None of these is offered over MCP (see [alerts over MCP](/docs/faq/alerts-over-mcp)). The property graph is built from sources in 16 countries.

### The filter fields of /alerts-api/feeds are those on its operation page

The sources give only `feed_name` and `filters` for `POST /alerts-api/feeds`. `filters` has a `private` boolean, plus `has_agency_name`, `has_phone` and `has_email`. The full key list is on [Create feed](/docs/rest/alerts/create-feed).

The `private` flag comes from how the property is advertised. It cannot tell you whether the owner would work with an agent.

The sources publish no data refresh frequency, quotas, prices or SLAs. For those, ask [Casafari](https://www.casafari.com/).

## Questions

### Can I get private-seller alerts inside Claude or ChatGPT?

No. Private-seller alerts come from New Market Leads, which is offered over the REST API only, not over the Casafari MCP server. Inside Claude or ChatGPT, the Area Insights tools do accept a `private` filter, so an assistant can chart how many new properties from private sellers appear in an area with `ma_get_time_series_data`. To receive the individual leads, use a feed on `POST /alerts-api/feeds` with a webhook.

### How quickly after a property appears is the alert created?

The sources publish no figure for how quickly an alert is created after a property first appears, and no data refresh frequency or SLA. The property graph collects advertisements as they appear and as they change, and a feed sends matching alerts to your webhook, but no timing is documented. For timing and service terms, ask Casafari at https://www.casafari.com/.

### Can I exclude properties also advertised by an agency?

Partly. On `POST /api/v1/listing-alerts/search`, combine `private: true` with `has_agency_name: false` to keep alerts from advertisements that name no agency, and use `without_agencies` to drop named agencies, companies or sources. On `POST /api/v2/properties/search`, `exclusive` returns properties offered exclusively by a single agency. A feed accepts `private` and `has_agency_name` inside `filters`. The sources describe no single filter for a property never advertised by any agency, so check each operation page.

### Can I filter to private sellers with a phone number?

Yes, with a Casafari client account. On `POST /api/v1/listing-alerts/search`, set `has_phone` to true together with `private: true`. That keeps only alerts from advertisements by private individuals that include a phone number. `has_email` works the same way for email. A standing feed takes the same three keys, `private`, `has_phone` and `has_email`, inside `filters`.

All use cases: [Use cases](/docs/use-cases#leads).
