Bien'ici Universal Scraper
Pricing
from $0.61 / 1,000 results
Bien'ici Universal Scraper
🏠 Scrape Bien'ici real-estate listings by filters — rent or buy. Get price, surface, rooms, DPE/energy, photos, location, coordinates and the agency, as clean structured data. Pay per result.
Pricing
from $0.61 / 1,000 results
Rating
5.0
(1)
Developer
Scrapifier
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Bien'ici Scraper
Scrape real-estate listings from Bien'ici by filters (buy or rent, locations, property types, price, surface, rooms) and export them as JSON, CSV or Excel, or pull them straight from the API.
⚡ For every listing you get the price, price per m² and price excluding fees, the surface, rooms, bedrooms and floor, the DPE energy and greenhouse-gas ratings, the title and full description, city, postal code, district and department, GPS coordinates, new-build and condominium flags, annual condominium fees, publication and update dates, the photo URLs and the agency name. Locations are resolved to Bien'ici zones automatically, big searches are split by price so the full result set is reachable past Bien'ici's per-search cap, and there is no login and no cookies. You pay per listing.
🎯 Why scrape Bien'ici real-estate listings?
- Price monitoring: track asking prices and price per m² for flats and houses in a city, week after week, and spot listings that drop in price.
- Investment screening: pull every property under a price ceiling with a minimum surface, then rank by price per m², DPE rating and condominium fees.
- Market research: measure supply per district, the share of new builds and the split between agencies and private sellers.
- Lead generation: build lists of active agencies and new listings in your area for prospecting (movers, renovation, energy audits).
- Rental search automation: get notified when a rental matching your filters appears in your target arrondissement.
- Data science and academic work: assemble clean datasets of French housing listings with coordinates, energy ratings and prices for modelling and mapping.
📊 What data does Bien'ici Scraper extract?
| Field | Description |
|---|---|
id | Bien'ici listing id (for example immo-facile-60587888) |
url | Direct link to the listing on bienici.com |
reference | Agency reference |
title, description | Listing title and full description |
transaction | buy or rent |
propertyType | flat, house, terrain, parking, loft, building, shop, office, castle, annexe, premises, townhouse, others |
price, priceWithoutFees, pricePerSquareMeter | Price in EUR (monthly rent or sale price), price excluding agency fees, price per m². A range (array) for new-build programs |
agencyFeePercentage, feesChargedTo | Agency fee percentage and who pays the fees |
surfaceArea, roomsQuantity, bedroomsQuantity | Living surface in m², rooms and bedrooms (ranges for new-build programs) |
floor, floorQuantity | Floor of the property and number of floors in the building |
energyClassification, greenhouseGazClassification, energyValue | DPE energy rating (A to G), greenhouse-gas rating (A to G) and the energy consumption value |
city, postalCode, district, departmentCode | Location of the property |
latitude, longitude, isApproximatePosition | Coordinates, and whether Bien'ici blurred the position for privacy |
newProperty, isInCondominium, annualCondominiumFees, isBienIciExclusive | New-build flag, condominium flag, annual condominium fees in EUR, exclusive to Bien'ici |
publicationDate, modificationDate | Publication and last update dates (ISO 8601) |
agency, accountType, byPro | Advertiser name, account type and whether it is a professional |
photos[], photoCount | Photo URLs and their count |
hasVirtualTour, with360, with3dModel | Media flags: virtual tour, 360° media, 3D model |
The dataset's Overview view shows the key columns (title, type, price, surface, rooms, city, DPE, URL); the full item holds every field above.
🚀 How to scrape Bien'ici real-estate listings
- Open the Actor and pick the Transaction:
buyfor sales orrentfor rentals. - Add one or more Locations: city names, districts or postal codes (for example
Bordeaux,Paris 15,33000). Each one is resolved to its Bien'ici zone automatically, and all zones are searched together. - Pick the Property types (leave empty for flats and houses) and refine with Min / Max price, Min / Max surface, Min rooms, Min bedrooms and New builds only.
- Set Max results:
100by default,0to collect every listing that matches. Searches above Bien'ici's cap of 2,400 results are split by price range until every listing is reachable. - Click Start. Listings are pushed to the dataset in batches of 200 as the run progresses.
- Open the Storage tab to preview the listings and export them as JSON, CSV, Excel or XML, or read them from the dataset API.
The same run can be started from the Apify API, the Python or JavaScript client, or put on a schedule for daily monitoring.
📥 Input parameters
| Field | Key | Type | Default | Description |
|---|---|---|---|---|
| Transaction | transaction | select | buy | buy (sale) or rent. |
| Locations | locations | array of strings | ["Bordeaux"] | Cities, districts or postal codes (Bordeaux, Paris 15, 33000), each resolved to its Bien'ici zone. |
| Property types | property_types | array of strings (select) | none | One or more of flat, house, terrain, parking, loft, building, shop, office, castle, annexe, premises, townhouse, others. Empty = flats and houses. |
| Min price | price_min | integer | none | Lowest price to include, in EUR (monthly rent or sale price). |
| Max price | price_max | integer | none | Highest price to include, in EUR. |
| Min surface | surface_min | integer | none | Minimum living surface in m². |
| Max surface | surface_max | integer | none | Maximum living surface in m². |
| Min rooms | rooms_min | integer | none | Minimum number of rooms. |
| Min bedrooms | bedrooms_min | integer | none | Minimum number of bedrooms. |
| New builds only | new_only | boolean | false | Only new-build (neuf) properties. |
| Max results | max_results | integer | 100 | Listings to collect. 0 = as many as possible; big searches are split by price so the full set is reachable. |
| Report empty searches | emit_input_status | boolean | true | Add an input_status report to the run's OUTPUT record. |
| Proxy | proxyConfiguration | object | { "useApifyProxy": true } | Apify Proxy (automatic) rotates IPs to keep large runs reliable. Switch to Residential (country FR) for very big jobs. |
Example input:
{"transaction": "buy","locations": ["Bordeaux"],"property_types": ["flat"],"price_max": 500000,"rooms_min": 2,"max_results": 100}
Locations are free text: a city (Bordeaux), a city with an arrondissement (Paris 15) or a postal code (33000) all work, and the run log shows the Bien'ici zone each one resolved to. A location that cannot be resolved is reported as not_found in input_status and skipped. Unknown property type values are ignored, and an empty list falls back to flats and houses.
📤 Output example
Each listing is one dataset item, exportable as JSON, CSV, Excel or via the API.
{"id": "immo-facile-60587888","url": "https://www.bienici.com/annonce/immo-facile-60587888","title": "CHARTRONS - DUPLEX RÉNOVÉ - TERRASSE SUD-OUEST","transaction": "buy","propertyType": "flat","price": 470000,"pricePerSquareMeter": 4451.3,"surfaceArea": 102.52,"roomsQuantity": 4,"bedroomsQuantity": 3,"energyClassification": "C","city": "Bordeaux","postalCode": "33300","district": "Bordeaux - Grand Parc","latitude": 44.8575,"longitude": -0.5739,"agency": "Côté Particuliers Bordeaux Chartrons","photoCount": 12}
The run's OUTPUT record holds the run statistics (unique_ads, duplicates, requests, errors), the effective configuration and, when emit_input_status is on, an input_status list: one not_found entry per location that could not be resolved, and a summary entry with the resolved zones, the number of matching listings, the number collected and a status of ok or empty.
💡 Ready-to-run examples
Flats for sale in Bordeaux under 500,000 EUR with at least 2 rooms
{ "transaction": "buy", "locations": ["Bordeaux"], "property_types": ["flat"], "price_max": 500000, "rooms_min": 2, "max_results": 100 }
Flats to rent in the 15th arrondissement of Paris
{ "transaction": "rent", "locations": ["Paris 15"], "property_types": ["flat"], "max_results": 100 }
Every house for sale in postal code 33000
{ "transaction": "buy", "locations": ["33000"], "property_types": ["house"], "max_results": 0 }
New-build flats and houses in Bordeaux
{ "transaction": "buy", "locations": ["Bordeaux"], "property_types": ["flat", "house"], "new_only": true, "max_results": 100 }
💰 Pricing: how much does it cost to scrape Bien'ici?
From $0.90 per 1,000 listings on the free plan, with automatic volume discounts down to $0.61 per 1,000 on higher Apify plans. You pay only for the results you receive, there is no subscription and no start fee. New Apify accounts get free monthly platform credits to try it.
Cost is driven by the number of listings returned: max_results caps a run (100 by default), and the price, surface, rooms and property type filters are applied by Bien'ici's search before any listing is counted, so filter first rather than trimming the export afterwards.
⚙️ Performance, proxies and limits
- Proxy and access: the Actor calls Bien'ici's public JSON search and geo-suggest endpoints, 100 listings per request, with no login or cookies. Apify Proxy (automatic) is on by default and rotates IPs to keep large runs reliable; for very big jobs switch to Residential with country FR.
- Per-search cap: a single Bien'ici search exposes at most 2,400 results. The Actor first probes the total; when it exceeds the cap it bisects the price range (from
price_minor 0 up toprice_maxor 50,000,000 EUR) into sub-ranges that each fit under the cap, then pages through every sub-range. - Edge case: a 1 EUR wide price range that still holds more than 2,400 listings yields only its first 2,400; the run log warns about it.
- Retries: each request is retried up to 4 times with a 30 second timeout before the page is skipped and counted in
errors. - Deduplication: listings are deduplicated by
idwithin a run, and duplicates are counted in the OUTPUT statistics. - Empty results: with
emit_input_statuson, unresolved locations are listed asnot_foundand a search that matched nothing ends with statusempty. A run with no location at all stops with the errorno_locations. - Run options: the default run uses 4,096 MB of memory and a 3,600 second timeout. Raise the timeout for large
max_results: 0jobs over several cities.
🔌 Integrations and API
Run Bien'ici Scraper from the Apify API, the Python or JavaScript client, or on a schedule. Connect it to Make, Zapier, n8n, Google Sheets, Slack or any webhook through Apify integrations. Every run's dataset is available as JSON, CSV, Excel or XML from the dataset API.
curl -X POST "https://api.apify.com/v2/acts/scrapifier~bien-ici-universal-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{ "transaction": "buy", "locations": ["Bordeaux"], "property_types": ["flat"], "price_max": 500000, "rooms_min": 2, "max_results": 100 }'
❓ FAQ
Is it legal to scrape Bien'ici?
The Actor only reads listings that Bien'ici publishes to anyone without logging in. Listings can contain personal data (advertiser names, blurred positions), so process them in line with GDPR and other privacy laws, respect Bien'ici's terms of use, and stay responsible for how you use the data. This is not legal advice.
Do I need a Bien'ici account, login or cookies?
No. The Actor talks to Bien'ici's public search API: nothing to log in to and no cookies to paste.
Can I export Bien'ici listings to Excel or Google Sheets?
Yes. Every run's dataset downloads as CSV, XLSX, JSON or XML from the Storage tab, and the Google Sheets integration can push new listings to a sheet automatically.
How many listings can I scrape?
Set max_results to 0 to collect every listing that matches your filters. Bien'ici caps a single search at 2,400 results, so the Actor splits the price range into sub-searches until the whole set is reachable. Keep a cap on first runs to control cost and runtime.
How do I target a specific city, district or postal code?
Type it in locations: Bordeaux, Paris 15 or 33000. Each entry is resolved to its Bien'ici zone through the geo-suggest API, and several entries are searched together in one run.
Does it work outside France?
Bien'ici lists properties in France, so the Actor covers French cities, districts and postal codes.
Why is price sometimes an array instead of a number?
New-build programs on Bien'ici are advertised with a range: price, surfaceArea and roomsQuantity then come as a [min, max] array instead of a single value. Resale listings always have single numbers.
How fresh is the data?
Every run queries Bien'ici live. Schedule it daily to keep a rolling history of new listings and price changes.
🔗 Related scrapers
- SeLoger Scraper: real-estate listings from SeLoger.
- PAP Scraper: private-seller real estate from pap.fr.
- Leboncoin Real Estate Scraper: Leboncoin real estate by filters, no URL needed.
- Leboncoin Scraper: any Leboncoin search URL, all categories.
- Welcome to the Jungle Jobs Scraper: jobs and company profiles in France and Europe.
🇫🇷 En français
Bien'ici Scraper permet d'extraire les annonces immobilières de Bien'ici (bienici.com) à partir de filtres simples, sans URL à copier. Vous choisissez la transaction (achat ou location), une ou plusieurs localités (ville, quartier ou code postal, par exemple Bordeaux, Paris 15 ou 33000), puis les types de biens, le budget, la surface, le nombre de pièces et de chambres, et éventuellement le neuf uniquement. Chaque localité est résolue automatiquement en zone Bien'ici, et les grandes recherches sont découpées par tranche de prix pour dépasser le plafond de 2 400 résultats par recherche. Pour chaque annonce vous obtenez le prix, le prix au m², la surface, les pièces, l'étage, le DPE et le GES, la description, les photos, les coordonnées GPS et l'agence. Les résultats s'exportent en CSV, Excel ou JSON, ou se récupèrent par l'API Apify. La tarification est au résultat: vous ne payez que les annonces récupérées, sans abonnement.
💬 Support
Questions, bugs or a feature request? Open an issue in the Issues tab of this Actor, I answer quickly. If Bien'ici Scraper saves you time, a rating on the Store helps others find it.