# Capifrance Advisors · Real Estate Agent Emails & Phones (`corent1robert/capifrance-advisors-scraper`) Actor

Export Capifrance real estate advisors across France: name, direct email, mobile phone, city, SIREN, client rating, specialties and social links. Filter by department, city or specialty. One row per advisor. No login.

- **URL**: https://apify.com/corent1robert/capifrance-advisors-scraper.md
- **Developed by:** [Corentin Robert](https://apify.com/corent1robert) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.10 / 1,000 advisor with contacts

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Capifrance Advisors · Real Estate Agent Emails & Phones

Turn the **Capifrance advisor network** (one of France's largest networks of independent real estate agents) into a **clean lead list**: every advisor with **direct email, mobile phone, city, SIREN, rating, specialties and social links**.

**Direct emails and mobiles. No login. No API key.**

**Free Apify plan:** 20 advisors per run. Paid plans export every advisor (about 2,700 across France).

***

### Who is this for?

| You are… | Typical goal | Suggested setup |
|----------|--------------|-----------------|
| Proptech / real estate software vendor | Prospect independent agents who buy their own tools | All of France, **Contacts (CRM)** view |
| Mortgage broker, bank, insurer | Partner with local agents for referrals | Your departments |
| Diagnostics, movers, home staging, photographers | Become the go-to supplier of agents in your area | **Departments** + **Cities** |
| Luxury services (concierge, drone video) | Reach advisors selling prestige homes | **Specialties** = Luxury |
| Competing networks and recruiters | Map advisors, ratings and activity by area | Turn on **Count listings for sale** |
| Social media agency | Agents already active on Facebook or Instagram | **Social links** view |

**What you get by default:** one row per advisor with the direct email and mobile phone published on their Capifrance page, city, department, SIREN, rating and specialties.

**Honest fill rates** (October 2026, 20-advisor runs in Paris and Finistere):

| Field | Fill rate |
|-------|-----------|
| Name, city, department | 100% |
| Email (direct @capifrance.fr mailbox) | **100%** |
| Mobile phone | **100%** |
| SIREN (RSAC) | 80-95% |
| Rating and review count | 50-80% |
| Specialties | 100% |
| Facebook / LinkedIn | 0-30% / 10-25% |

Turn off **Add email, SIREN, rating and social links** for a faster name + phone list (no email).

***

### Quick start

1. Pick one or more **departments** (or leave empty for all of France).
2. Click **Start**.
3. Open the **Contacts (CRM)** view and export to CSV, Excel or JSON.

About 15 seconds for 20 advisors, a few minutes for a large department.

***

### Ready-made examples

Example tasks are prepared in `published-tasks/` and will be linked here once live:

| Example | What it does |
|---------|--------------|
| Paris Capifrance advisors with emails and phones | Every advisor in Paris (75) with email and mobile |
| Bordeaux and Gironde Capifrance real estate agents | Every advisor in Gironde (33) |
| Capifrance luxury (Prestige) property advisors | Prestige specialists in 06, 83 and 75 |
| Fast Capifrance agent phone list | Name, city and mobile only, Bouches-du-Rhone |
| Capifrance advisors with Facebook, Instagram, LinkedIn | Social links of advisors in Rhone |

***

### What it extracts

- **Identity:** full, first and last name, photo, profile and contact page links, advisor ID.
- **Contact:** direct email, mobile phone (+33 format and 06 display format).
- **Location:** city, postal code, department code and name, region.
- **Business:** legal form (EI, EIRL...), SIREN (RSAC number) and registry.
- **Reputation:** rating and number of reviews.
- **Profile:** specialties (French and English), tagline, headline, bio, optional count of listings for sale.
- **Social:** Facebook, Instagram, LinkedIn, YouTube, TikTok, X (Capifrance corporate accounts are ignored).

***

### How much does it cost to scrape Capifrance advisors?

Pay per event: a small start fee per run, then a price per advisor. Advisors with an email or phone (almost all of them) use the "with contact" price.

| Event | Free | Bronze | Silver | Gold | Platinum | Diamond |
|-------|------|--------|--------|------|----------|---------|
| Run started (once per run) | $0.05 | $0.05 | $0.05 | $0.05 | $0.05 | $0.05 |
| Advisor with email or phone | $0.0030 | $0.0027 | $0.0024 | $0.0021 | $0.0020 | $0.0020 |
| Advisor without contact (rare) | $0.0015 | $0.0013 | $0.0012 | $0.0010 | $0.0010 | $0.0010 |

| Scenario | Advisors | Free plan | Bronze | Gold | Diamond |
|----------|----------|-----------|--------|------|---------|
| One department (e.g. Paris) | ~100 | $0.05 + 20 max = $0.11 | $0.32 | $0.26 | $0.25 |
| Five large departments | ~600 | $0.11 (20 advisors) | $1.67 | $1.31 | $1.25 |
| All of France | ~2,700 | $0.11 (20 advisors) | $7.34 | $5.72 | $5.45 |

Platform usage is included in the price.

***

### Is it legal to scrape Capifrance?

This Actor reads public pages of capifrance.fr and the advisors' public mini-sites, the same pages anyone can open in a browser, without logging in. Advisors publish their professional email and phone so that clients can reach them. The data is professional, not private.

You remain responsible for how you use the data. Under the GDPR, B2B prospecting of professionals is generally allowed when the message is relevant to their profession and every message offers an easy opt-out. Do not spam, and respect the Capifrance terms of use. If in doubt, ask a lawyer.

***

### Limitations

- Emails are the advisors' Capifrance mailboxes (`first.last@capifrance.fr`); personal mailboxes are not published.
- Ratings exist only for advisors who collected reviews.
- Specialty labels stay in French in `specialties`; `specialties_en` gives the English label.
- Advisors are listed by department; one listed on a neighbouring department page is kept only under its own department.

***

### Input

| Field | Type | Description |
|-------|------|-------------|
| `departments` | array | Department codes (`75`, `13`, `2A`, `974`...). Empty = all of France. |
| `cities` | array | Optional city names; accents and case ignored. |
| `specialties` | array | `traditional`, `new`, `business`, `location`, `prestige`, `lifeannuity`, `hunter`. |
| `includeProfileDetails` | boolean | Add email, SIREN, rating, bio and social links. Default `true`. |
| `countListings` | boolean | Add the number of listings for sale. Default `false`. |
| `maxItems` | integer | Stop after this many advisors. `0` = no cap. Default 50. |

API-only: `verboseLogs` (boolean) adds technical debug lines; `concurrency` (1-16, default 6).

```json
{
  "departments": ["33", "13"],
  "specialties": ["prestige"],
  "maxItems": 0
}
```

***

### How it works

The Actor reads the public Capifrance advisor directory department by department, then opens each advisor page for the email and business details. No browser, no login. Rows are exported as soon as they are ready.

***

### Output sample

Real row from a Paris run (October 2026, `bio` omitted):

```json
{
  "full_name": "Madona ABOU-JAOUDÉ",
  "first_name": "Madona",
  "last_name": "ABOU-JAOUDÉ",
  "email": "madona.aboujaoude@capifrance.fr",
  "phone": "+33698033242",
  "phone_display": "06 98 03 32 42",
  "city": "Paris 14e Arrondissement",
  "postal_code": "75014",
  "department_code": "75",
  "department": "Paris",
  "region": "Paris",
  "legal_form": "EI",
  "rsac_siren": null,
  "rsac_registry": null,
  "rating": null,
  "reviews_count": null,
  "specialties": [
    "Ancien"
  ],
  "specialties_en": [
    "Resale homes"
  ],
  "tagline": "À Paris 14e Arrondissement, un suivi immobilier personnalisé et rigoureux.",
  "headline": "Conseiller immobilier Capifrance, je vous accompagne dans votre projet immobilier à Paris 14e Arrondissement et ses environs",
  "bio_short": "Passionné par l'immobilier, je suis là pour vous accompagner dans toutes les étapes de votre projet immobilier à Paris 14e Arrondissement (75014). Ma mission est de vous offrir un service personnalisé et professionnel, en mettant à profit mes connaissances approfondies du marché immobilier local...",
  "listings_for_sale_count": null,
  "facebook_url": null,
  "instagram_url": "https://instagram.com/madonaaboujaoude?igshid=xwu5fsyu9cp9",
  "linkedin_url": "https://www.linkedin.com/in/madonaaboujaoude",
  "youtube_url": null,
  "tiktok_url": null,
  "x_url": null,
  "photo_url": "https://durtepqo099rl.cloudfront.net/P2/Zz4JvpqoC3/Madona_ABOU_JAOUDE_Conseiller_Capifrance.webp",
  "profile_url": "https://madona-aboujaoude.capifrance.fr",
  "contact_url": "https://madona-aboujaoude.capifrance.fr/fr/contact",
  "advisor_id": "7818",
  "network": "Capifrance",
  "scraped_at": "2026-10-11T08:08:55.446Z"
}
```

***

### Local development

```bash
npm install
npm test                      # unit tests (node --test)
echo '{"departments":["75"],"maxItems":20}' > storage/key_value_stores/default/INPUT.json
node src/main.js              # or: apify run
```

***

### Also available

- [SAFTI · French Real Estate Agents](https://apify.com/corent1robert/safti-france-consultants)
- [FR Realty Agents Hub](https://apify.com/corent1robert/fr-realty-agents-hub)
- [French Companies · Search & SIREN Enrich](https://apify.com/corent1robert/recherche-entreprises-scraper)
- [Commissaires de Justice France · Official Directory Emails](https://apify.com/corent1robert/commissaires-justice-france-annuaire)

***

### Support

Questions, a missing field or a custom export? Email **corentin@outreacher.fr** or open an issue on the Actor page.

# Changelog

This Actor's version history is a separate document: https://apify.com/corent1robert/capifrance-advisors-scraper/changelog.md

# Actor input Schema

## `departments` (type: `array`):

Get advisors based in these departments. Empty = all of France (about 2,700 advisors).

## `cities` (type: `array`):

Only keep advisors whose city contains one of these names, e.g. Brest, Quimper. Accents and case are ignored.

## `specialties` (type: `array`):

Keep advisors declaring at least one of these specialties. Empty = every advisor.

## `includeProfileDetails` (type: `boolean`):

Open each advisor page to add the direct email, SIREN, rating, bio and social links. Turn off for a faster name + phone list.

## `countListings` (type: `boolean`):

Add how many properties each advisor currently has for sale (slower).

## `maxItems` (type: `integer`):

Stop after this many advisors. 0 = no cap.

## Actor input object example

```json
{
  "departments": [
    "75"
  ],
  "includeProfileDetails": true,
  "countListings": false,
  "maxItems": 50
}
```

# Actor output Schema

## `overview` (type: `string`):

All exported advisors (overview).

## `contacts` (type: `string`):

Email, phone and SIREN per advisor.

## `social` (type: `string`):

Facebook, Instagram, LinkedIn and more.

## `results` (type: `string`):

Every field for every advisor.

## `runLog` (type: `string`):

Readable summary of the run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "departments": [
        "75"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("corent1robert/capifrance-advisors-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "departments": ["75"],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("corent1robert/capifrance-advisors-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "departments": [
    "75"
  ],
  "maxItems": 50
}' |
apify call corent1robert/capifrance-advisors-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,corent1robert/capifrance-advisors-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XNHl911avKEMqcf7G/builds/9sQ1hR3Sh6Ly7IhJ4/openapi.json
