Skip to content

Bien'ici Property Scraper

Try for free

Scrape property listings for sale and rent from bienici.com, a leading French real estate portal. Search by city, arrondissement, department or postal code with price, area, rooms, type and energy-class filters, or paste search and listing URLs. Get prices, areas, rooms, DPE ratings, GPS, photos and optional agency phone and address.

🏠 Bien'ici Property Scraper

Pull property listings for sale and for rent from bienici.com, one of France's leading real estate portals: price, €/m², living and land area, rooms, bedrooms, DPE energy and GES ratings, GPS position, photos, condominium fees and, on request, the agency's phone number and address. Type a city, arrondissement, department or postal code (or paste a Bien'ici search link) and get clean rows in seconds. No login, no browser, and you pay only for the listings you get.

✨ Why use Bien'ici Property Scraper?

  • ⚡ Fast — 1,000 listings in about 10 seconds and 10,000 in under a minute in our test runs.
  • 🗺️ No URL building needed — type Paris, Lyon 3e, Gironde or 75011 and the location is resolved for you; or paste any bienici.com search or listing URL.
  • 📈 Goes past the 2,500 cap — Bien'ici shows at most 2,500 results per search. Bigger searches are split into price ranges automatically, so a whole city or the whole of France can be collected in one run.
  • 🔋 Energy and cost data on every row — DPE and GES classes and values, yearly energy cost estimate, €/m², fees and who pays them, condominium charges, rent charges and deposit.
  • 📞 Optional agency contacts — switch on agency details to add phone, contact person, postal address, company registration (RCS / SIRET) and website, at the same price per listing.
  • 💸 Cheap and fair — a flat price per saved listing, and you never pay for more listings than you asked for.

🎯 Use cases

  • 📊 Market research — compare asking prices and €/m² across arrondissements, cities and departments.
  • 🏷️ Price monitoring — schedule a daily run sorted by newest and track new listings and price drops (priceHasDecreased).
  • 🧮 Valuation and comparables — feed area, rooms, floor, DPE class and price into your pricing models.
  • 🤝 Lead generation for agencies and services — build lists of the agencies active in an area with their phone and address.
  • 🔌 Energy renovation targeting — find F and G rated homes (energyClasses) for insulation, heat-pump or audit offers.
  • 🚚 Relocation and rentals — shortlist furnished flats under a budget with rent, charges and deposit.

🚀 How to use

  1. Enter one or more Locations (for example Paris, Bordeaux, Lyon 3e, Hauts-de-Seine, 75011), or paste Search or listing URLs from bienici.com.
  2. Choose For sale or For rent, and optionally set filters: property types, price, living area, rooms, bedrooms, land area, energy classes, new builds, furnished.
  3. Set Maximum results (0 = everything the search holds).
  4. Turn on Include agency contact details if you need phone numbers and addresses.
  5. Click Start, then download the data as JSON, CSV, Excel or HTML, or read it through the API.

📥 Input

FieldWhat it does
locationsCities, arrondissements, departments or postal codes in France, one per line. France searches the whole country.
startUrlsbienici.com search URLs (they keep their own filters) and listing URLs.
transactionTypebuy (for sale) or rent.
maxResultsMost listings to save in total (default 20; 0 = all).
propertyTypesflat, house, loft, townhouse, castle, terrain, parking, building, shop, office, premises. Empty = all.
priceMin / priceMaxPrice in € (monthly rent for rentals).
surfaceMin / surfaceMax, roomsMin / roomsMax, bedroomsMin, landSurfaceMinSize filters.
energyClassesDPE classes to keep, A to G.
newBuildOnly, furnishedOnlyOnly new builds / only furnished properties.
sortByrelevance, newest, priceAsc, priceDesc, surfaceDesc, pricePerSquareMeterAsc.
includeDetailsAdds the agency's phone, contact person, address, RCS and website.
maxResultsPerSearchOptional cap per location or URL.
{
  "locations": ["Lyon"],
  "transactionType": "rent",
  "propertyTypes": ["flat"],
  "priceMax": 1500,
  "roomsMin": 2,
  "sortBy": "priceAsc",
  "includeDetails": true,
  "maxResults": 100
}

📤 Output

One row per listing. The main fields:

FieldDescription
id, reference, urlListing id, the agency's reference and the listing link
transactionType, propertyType, title, descriptionSale or rent, kind of property, title and full text
price, pricePerSquareMeter, priceWithoutFees, feesChargedTo, agencyFeePercentagePrice and fees
charges, rentWithoutCharges, safetyDeposit, agencyRentalFeeRental costs
surfaceArea, landSurfaceArea, roomsQuantity, bedroomsQuantity, bathroomsQuantity, floor, floorQuantity, yearOfConstructionSize and layout
hasElevator, hasBalcony, hasTerrace, hasCellar, hasGarden, hasPool, parkingPlacesQuantity, isFurnishedFeatures
energyClassification, energyValue, greenhouseGazClassification, greenhouseGazValue, minEnergyConsumption, maxEnergyConsumptionDPE / GES ratings and yearly energy cost
isInCondominium, annualCondominiumFeesCondominium
city, postalCode, district, departmentCode, latitude, longitude, exactLocationLocation (approximate position unless exactLocation is true)
publicationDate, modificationDate, priceHasDecreased, newProperty, photos, photosCount, virtualTourUrlDates, status and media
agencyName, accountTypeAdvertiser
agencyPhone, agencyContactName, agencyStreet, agencyPostalCode, agencyCity, agencyRcs, agencyWebsiteAgency contact (with agency details on, and always for listing URLs)

New-build programmes give ranges: price / surfaceArea / roomsQuantity hold the low end and priceMax / surfaceAreaMax / roomsQuantityMax the high end.

Example row from a test run (trimmed; agency contact replaced with fictional values):

{
  "id": "ag696097-554750699",
  "url": "https://www.bienici.com/annonce/location/lyon-9e/appartement/5pieces/ag696097-554750699",
  "transactionType": "rent",
  "propertyType": "flat",
  "title": "T5",
  "price": 1305,
  "pricePerSquareMeter": 13.32,
  "isFurnished": true,
  "surfaceArea": 98,
  "roomsQuantity": 5,
  "bedroomsQuantity": 3,
  "bathroomsQuantity": 1,
  "floor": 20,
  "floorQuantity": 27,
  "yearOfConstruction": 1971,
  "hasElevator": true,
  "hasCellar": true,
  "energyClassification": "C",
  "energyValue": 144,
  "greenhouseGazClassification": "B",
  "greenhouseGazValue": 10,
  "city": "Lyon 9e",
  "postalCode": "69009",
  "district": "La Duchère",
  "departmentCode": "69",
  "latitude": 45.784020394646525,
  "longitude": 4.79435896701209,
  "publicationDate": "2026-10-18T11:58:35.849Z",
  "photosCount": 21,
  "photos": ["https://file.bienici.com/photo/ag696097-554750699_photos.ubiflow.net_696097_554750699_photos_1.jpg_INSOON_EB_5512801818_20261018125631"],
  "virtualTourUrl": "https://tour.giraffe360.com/6634487df22941f79a5f767ccf509de4",
  "agencyName": "Agence Exemple Lyon",
  "accountType": "agency",
  "agencyContactName": "Agence Exemple Lyon - Marie Dupont",
  "agencyPhone": "04 00 00 00 00",
  "agencyStreet": "1 Rue de l'Exemple",
  "agencyPostalCode": "69001",
  "agencyCity": "Lyon",
  "searchSource": "Lyon (rent)"
}

💰 Pricing

$2.00 per 1,000 listings ($0.002 per saved listing), the same with or without agency contact details. There is no start fee. Platform usage (compute and proxy traffic) is billed on top and is small: our 1,000-listing test run used about 0.002 GB of datacenter proxy traffic and 0.0015 compute units, about $0.0025 in total.

  • 100 listings ≈ $0.20
  • 1,000 listings ≈ $2.00
  • 10,000 listings ≈ $20.00

You set the maximum: the run stops cleanly when it reaches Maximum results or your maximum charge, and you are never charged for listings that were not saved.

❓ FAQ

Is it legal to scrape bienici.com? The actor reads only public listing pages that anyone can open without an account. Check that your use of the data, especially agency contact details, follows the GDPR and the site's terms.

Do I need a login or my own proxy? No. No account or cookies are used. The default datacenter proxy works well; if the site starts refusing requests the run moves to French residential proxies by itself.

How many results can I get? As many as the search holds. Bien'ici serves at most 2,500 results per search, so larger searches are split into price ranges automatically (a single price with more than 2,500 listings is the only case that stays capped, and the status message says so).

Why are some fields empty? Agencies fill different fields. For example the floor, condominium fees or energy values are missing when the advertiser did not give them. Empty fields are null.

Can I schedule it or use the API? Yes. Save a task with your input and schedule it (for example daily with sortBy: newest), or start runs and read the dataset through the API.

Coming from a similar actor on another platform? The main inputs use the same names (startUrls, transactionType, propertyTypes, priceMin, priceMax, roomsMin, bedroomsMin, surfaceMin, surfaceMax, sortBy, includeDetails, maxResults), and a single location text is accepted too.

⚠️ Limits

  • France only, like bienici.com itself. Regions (Île-de-France, Bretagne) are not a location type on the site: use departments or cities.
  • Listings without a price can be missed when a search is split into price ranges (only in searches with more than 2,500 results).
  • When a large search is split, the order is kept for price sorting only; other sort orders hold within each price range.
  • Exact street addresses are not published by most advertisers; latitude and longitude are then the site's approximate position.
  • Agency e-mail addresses are not shown on bienici.com (only whether the agency accepts e-mail through the site).
  • Sold listings and listings under offer are not included.

Related actors

//From the blog\\

Latest articles

All articles
G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.