France Real Estate Scraper — 5 Sources + DVF Prices
Pricing
Pay per usage
France Real Estate Scraper — 5 Sources + DVF Prices
Scrape French real estate from 5 sites + DVF price comparison. Find underpriced properties. $0.008/listing.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Ken Digital
Actor stats
1
Bookmarked
15
Total users
6
Monthly active users
21 days
Issues response
21 days ago
Last modified
Categories
Share
France Real Estate Scraper — Find Underpriced Properties 🏠🇫🇷
Scrape 5 French real estate sites and automatically compare prices with official government transaction data (DVF) to spot deals below market value.
🇫🇷 Scraper immobilier français — 5 sources + données DVF officielles pour trouver les biens sous-évalués. Score d'opportunité automatique.
✨ Key Features / Fonctionnalités
- 🏘️ 5 sources — LeBonCoin, SeLoger, Bien'ici, PAP, Logic-Immo in one run
- 📊 DVF price comparison — auto-compare with official government sale prices
- 🎯 Opportunity score — instantly spot listings priced below market median
- 🗺️ Geo-enriched — coordinates + population data from geo.api.gouv.fr
- 🧹 Deduplicated — no duplicates across the 5 sources
- 🆓 No API keys — all public data, no login needed
💰 How Much Does It Cost? / Combien ça coûte ?
| Listings scraped | This Actor | Scraping 5 sites manually |
|---|---|---|
| 50 | ~$0.15 | 2+ hours of work |
| 100 | ~$0.25 | 4+ hours of work |
| 500 | ~$1.00 | Days of work |
5 sources + DVF analysis for the price of a single scraper. The opportunity score alone saves you hours of manual research.
🚀 Getting Started / Démarrage rapide
- Enter a city — e.g., "Paris", "Lyon", or a department number like "75"
- Set your filters — property type, price range, surface area
- Run — get listings with automatic DVF price comparison and opportunity scores
📥 Input Example / Exemple d'entrée
{"location": "Paris","propertyType": "apartment","maxPrice": 500000,"minSurface": 30,"maxResults": 100}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location | string | ✅ | — | City name or department number (e.g., "Lyon", "75") |
propertyType | enum | ❌ | all | apartment, house, land, building |
minPrice | integer | ❌ | — | Minimum price (€) |
maxPrice | integer | ❌ | — | Maximum price (€) |
minSurface | integer | ❌ | — | Min surface (m²) |
maxSurface | integer | ❌ | — | Max surface (m²) |
maxResults | integer | ❌ | 100 | Maximum results |
📤 Example Output / Exemple de sortie
{"title": "Appartement 3 pièces 65m² — Paris 11e","price": 420000,"pricePerSqm": 6461,"surface": 65,"rooms": 3,"location": "Paris 11e","postalCode": "75011","url": "https://www.leboncoin.fr/ventes_immobilieres/...","source": "leboncoin","description": "Bel appartement traversant, 3 pièces au 4e étage avec ascenseur...","dvfMedianPrice": 9800,"opportunityScore": 0.66,"latitude": 48.8596,"longitude": 2.3784,"scrapedAt": "2026-03-27T15:00:00Z"}
🎯 Understanding the Opportunity Score / Comprendre le score
| Score | Meaning | Signification |
|---|---|---|
| < 0.6 | 🔥 Excellent deal (40%+ below median) | Affaire exceptionnelle |
| 0.6 – 0.8 | ✅ Good deal (20-40% below median) | Bonne affaire |
| 0.8 – 1.0 | ➡️ Fair price (near median) | Prix juste |
| 1.0 – 1.2 | ⬆️ Slightly above market | Légèrement au-dessus |
| > 1.2 | ⚠️ Above market | Au-dessus du marché |
🎯 Use Cases / Cas d'usage
| Who / Qui | Use Case / Cas d'usage |
|---|---|
| 🏦 Investors / Investisseurs | Find underpriced properties before others — filter by opportunity score < 0.8 |
| 📊 Analysts / Analystes | Real estate market analysis by city, price/m², trends vs DVF data |
| 🏠 Relocators / Expatriés | Compare prices across neighborhoods and sources for relocation |
| 🏗️ Developers / Promoteurs | Identify land and building opportunities in target areas |
| 🔬 Researchers / Chercheurs | Housing market studies with structured, exportable datasets |
❓ FAQ
Q: What is DVF data? DVF (Demandes de Valeurs Foncières) is the official French government database of all property transactions. It's published by data.gouv.fr and gives real sale prices — not listing prices. We use 2024 data (latest available).
Q: What does the opportunity score mean? It's the ratio of listing price per m² to the DVF median price per m² for the same area. A score of 0.7 means the listing is 30% below the area's recent transaction median.
Q: What export formats? JSON, CSV, Excel (XLSX), XML, RSS — all from the Apify console.
Q: What if a source is down? The actor handles failures gracefully. If one source is temporarily unavailable, you still get results from the other 4.
📋 Output Fields / Champs de sortie
| Field | Type | Description |
|---|---|---|
title | string | Listing title / Titre de l'annonce |
price | integer | Asking price (€) / Prix demandé |
pricePerSqm | integer | Price per m² / Prix au m² |
surface | integer | Surface area (m²) / Surface |
rooms | integer | Number of rooms / Nombre de pièces |
location | string | City/neighborhood / Ville/quartier |
postalCode | string | Postal code / Code postal |
url | string | Original listing URL / Lien annonce |
source | string | leboncoin, bienici, seloger, pap, logicimmo |
description | string | Listing description (truncated) |
dvfMedianPrice | integer | DVF median €/m² for the area |
opportunityScore | float | Price ratio vs DVF median (lower = better deal) |
latitude | float | GPS latitude |
longitude | float | GPS longitude |
scrapedAt | string | Scraping timestamp |
📚 Data Sources / Sources de données
| Source | Monthly visits | Strength |
|---|---|---|
| LeBonCoin | ~28M | Largest classifieds platform in France |
| SeLoger | ~21M | #2 real estate site, professional agencies |
| Bien'ici | ~15M | Major portal, good data quality |
| PAP | ~9M | Private sellers only — no agency fees |
| Logic-Immo | ~6M | Part of SeLoger/Aviv group |
| DVF | — | Official government transaction records |
🔗 Integration Examples
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("joyouscam35875/france-real-estate-scraper").call(run_input={"searchUrl": "https://www.bienici.com/recherche/achat/paris", "maxResults": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('joyouscam35875/france-real-estate-scraper').call({"searchUrl": "https://www.bienici.com/recherche/achat/paris", "maxResults": 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Make / Zapier / n8n
Use the Apify integration — search for this actor by name in the Apify app connector. No code needed.
🔗 More Scrapers by Ken Digital
| Scraper | What it does | Price |
|---|---|---|
| YouTube Channel Scraper | Videos, stats, metadata via official API | $0.001/video |
| France Job Scraper | WTTJ + France Travail + Hellowork | $0.005/job |
| France Real Estate Scraper | 5 sources + DVF price analysis | $0.008/listing |
| Website Content Crawler | HTML to Markdown for AI/RAG | $0.001/page |
| Google Trends Scraper | Keywords, regions, related queries | $0.002/keyword |
| GitHub Repo Scraper | Stars, forks, languages, topics | $0.002/repo |
| RSS News Aggregator | Multi-source feed parsing | $0.0005/article |
| Instagram Profile Scraper | Followers, bio, posts | $0.0015/profile |
| Google Maps Scraper | Businesses, reviews, contacts | $0.002/result |
| TikTok Scraper | Videos, likes, shares | $0.001/video |
| Google SERP Scraper | Search results, PAA, snippets | $0.003/search |
| Trustpilot Scraper | Reviews, ratings, sentiment | $0.001/review |