Bienici Scraper avatar

Bienici Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Bienici Scraper

Bienici Scraper

Scrapes realestate listings from Bienici.com website. Supports keyword search, categories, price filters, item conditions, pagination, and rate-limit handling. Designed for stable, production-scale scraping.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

locas mora

locas mora

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Bienici Scraper — French Real Estate Listings API

Extract structured property data from Bienici.com, France's leading real estate aggregator. Scrape apartments, houses, and villas listed for sale or rent across all French cities — no API key, no login, no limits.


Performance Overview:

This run demonstrates the actor’s production-grade efficiency, processing 3000 listings in 23 seconds with low memory usage (~90 MB avg) and stable CPU utilization, confirming strong scalability and I/O-optimized architecture.

production-grade efficiency

What This Actor Does

The Bienici Scraper sends requests directly to Bienici's internal search API and returns clean, structured JSON for every listing it finds. You control what you scrape: transaction type (buy or rent), property type (apartment, house, land…), sort order, and how many results you need.

Each output record contains everything a real estate data pipeline needs: price, surface area, number of rooms, GPS coordinates, energy rating (DPE), condominium fees, photos, and publication date — ready to load into a database, spreadsheet, or BI tool.


Key Features

  • Buys and rentals — scrape buy and rent listings independently or together
  • All property types — apartments, houses, lofts, land, parking, buildings, castles ...
  • Flexible sorting — by publication date, price, surface area, or price per m²
  • Up to 15,000 listings per run — configurable batch size for safe, respectful scraping
  • Automatic retries — exponential back-off on rate limits and server errors
  • Clean output — nested JSON flattened into analysis-ready fields

Output Fields

Each scraped listing returns a flat JSON object with the following fields:

FieldTypeDescription
idstringBienici listing ID
referencestringAgency reference number
titlestringListing title
descriptionstringFull listing description
adTypestringbuy or rent
propertyTypestringflat, house, loft, etc.
citystringCity name
postalCodestringFrench postal code
districtstringNeighborhood name
departmentCodestringFrench department number
lat / lonfloatApproximate GPS coordinates
priceintegerListing price in EUR
pricePerSquareMeterfloatEUR/m²
priceWithoutFeesintegerPrice net of agency fees
feesChargedTostringseller or buyer
annualCondominiumFeesintegerAnnual copro charges in EUR
surfaceAreafloatTotal area in m²
roomsQuantityintegerTotal rooms
bedroomsQuantityintegerBedrooms
floorintegerFloor number
floorQuantityintegerBuilding floors
yearOfConstructionintegerYear built
hasElevatorbooleanElevator in building
hasCellarbooleanPrivate cellar
parkingPlacesQuantityintegerParking spots
heatingstringHeating type description
energyClassificationstringDPE energy class (A–G)
greenhouseGazClassificationstringGES class (A–G)
energyValueintegerPrimary energy consumption (kWh/m²/year)
newPropertybooleanNew-build flag
isInCondominiumbooleanPart of a condominium
accountTypestringagency or private
publicationDateISO 8601Date listed
modificationDateISO 8601Date last updated
photosarrayList of photo URLs
photoCountintegerNumber of photos
opticalFiberStatusstringFiber availability status

Sample Output

{
"id": "immo-facile-60851947",
"reference": "P20590",
"title": "Appartement Troyes 4 pièce(s)",
"adType": "buy",
"propertyType": "flat",
"city": "Troyes",
"postalCode": "10000",
"district": "Troyes - Charmilles",
"departmentCode": "10",
"lat": 48.29785,
"lon": 4.09137,
"price": 160000,
"pricePerSquareMeter": 2170.67,
"priceWithoutFees": 160000,
"feesChargedTo": "seller",
"annualCondominiumFees": 936,
"surfaceArea": 73.71,
"roomsQuantity": 4,
"bedroomsQuantity": 2,
"floor": 1,
"floorQuantity": 4,
"yearOfConstruction": 1955,
"hasElevator": false,
"hasCellar": true,
"parkingPlacesQuantity": 1,
"heating": "radiateur gaz individuel",
"energyClassification": "C",
"greenhouseGazClassification": "C",
"energyValue": 122,
"newProperty": false,
"isInCondominium": true,
"accountType": "agency",
"publicationDate": "2026-06-24T09:23:26.519Z",
"photos": [
"https://file.bienici.com/photo/immo-facile-60851947_..._a.jpg",
"https://file.bienici.com/photo/immo-facile-60851947_..._b.jpg"
],
"photoCount": 10,
"opticalFiberStatus": "en cours de deploiement"
}

Input Parameters

ParameterTypeRequiredDefaultDescription
adTypearray["buy"]Transaction type: buy, rent, or both
propertyTypesarray["flat"]Property types to scrape (see options below)
sortBystringpublicationDateSort field
sortOrderstringdescasc or desc
maxItemsinteger500Max listings per transaction type (500 – 15,000)

Supported Property Types

ValueLabel
flatApartment
houseHouse / Villa
parkingParking space
terrainLand / Plot
loftLoft
buildingEntire building
castleCastle
prestigePrestige property
townhouseTownhouse
shopShop
premiseLocal Commercial
officeOffices
othersOthers

How to Use

Via Apify Console

  1. Click Try for free
  2. Select your transaction type and property types
  3. Set maxItems (start with 500 to test)
  4. Click Start and wait for results
  5. Export as JSON, CSV, or connect directly via the Apify API

Common Use Cases

Market analysis — pull all listings in a département, calculate median price/m², track how prices change week over week.

Lead generation for real estate agencies — identify newly listed properties in a target area sorted by publicationDate desc to catch fresh inventory before competitors.

Investment research — filter apartments in a city, cross-reference DPE ratings with price to find undervalued energy-efficient properties.

Automated price alerts — schedule daily runs, compare new listings against a stored baseline, trigger a webhook when a property matches your criteria.

Training data for property valuation models — collect thousands of labeled examples (price, surface, location, features) to train regression or neural network models.

Rental yield mapping — combine buy and rent prices for the same zones to estimate gross rental yields by city or neighborhood.


Scheduler & Automation Tips

  • Freshness monitoring: schedule a daily run with sortBy: publicationDate, sortOrder: desc, maxItems: 500 to capture new listings
  • Full market snapshot: run weekly with maxItems: 15000 across all property types for a complete dataset
  • Incremental deduplication: use the id field as a unique key to upsert into your database and avoid duplicate records
  • Webhook integration: connect to Zapier, Make, or a custom endpoint via Apify's built-in webhook system to trigger actions on new data

Performance & Reliability

  • Each API request fetches up to 500 listings
  • Automatic exponential back-off on 429, 403, and 5xx responses (up to 5 retries)
  • A run of 3000 listings completes in under 23 seconds
  • A full run of 15,000 listings typically completes in under 3 minutes
  • Results are pushed to Apify's dataset in batches of 50, so partial results are always saved even if a run is interrupted

This actor accesses publicly available listing data that Bienici displays to all visitors. It respects the site's rate limits through automatic throttling and does not access any authenticated or private content.

Users are responsible for ensuring their use of scraped data complies with applicable laws (including GDPR for personal data) and Bienici's terms of service. This actor is intended for research, analytics, and business intelligence use cases.


Support

Found a bug or need a custom field? Open an issue or reach out via the Apify contact form on this actor's page. Feature requests (additional filters, webhook support, Google Sheets integration) are welcome.