BureauxLocaux Scraper - French Commercial Property
Pricing
from $1.20 / 1,000 result scrapeds
BureauxLocaux Scraper - French Commercial Property
Scrape commercial property listings from BureauxLocaux.com, the French portal for immobilier d'entreprise: bureaux, locaux commerciaux, entrepôts, coworking and terrains for rent or sale. Rent per m2, sale prices, surfaces, agency contacts.
Pricing
from $1.20 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Features
Share
BureauxLocaux Scraper
Scrape commercial property listings from BureauxLocaux.com, one of the largest French portals for immobilier d'entreprise. The portal carries around 63,000 active listings from professional agencies across France: offices (bureaux), retail space (locaux commerciaux, boutiques), warehouses and industrial units (entrepôts, locaux d'activités), coworking space and commercial land (terrains), for rent and for sale. Paris inventory is particularly deep, with several thousand office listings alone.
Each result comes from the portal's own structured data feed, so you get clean numbers instead of parsed page text: rent in EUR per m2 per year (the standard French commercial quote), monthly rents, sale prices, surfaces, divisibility, full addresses, agency names and phone numbers, photos and building characteristics.
Why use it
- Market research — track asking rents per m2 and sale prices per city, arrondissement or department across France.
- Lead generation — every listing includes the agency name and phone number.
- Site selection — filter offices, retail or warehouse space by location and surface, and compare rent per m2 across markets.
- Investment screening — sale listings include the asking price and a computed price per m2.
- Monitoring — run it on a schedule and diff against yesterday's dataset to catch new listings the day they appear.
How to scrape BureauxLocaux data
- Set Location to a French city (
Paris,Lyon,Bordeaux), an arrondissement (Paris 8,Marseille 12), a 5-digit postal code (75008), or a department name or number (Hauts-de-Seine,92). Accents are optional (OrléansandOrleansboth work). Leave it empty to scrape the whole country. - Pick a Listing Type: rent (location), sale (vente) or both.
- Pick a Property Segment: office, retail, warehouse & industrial, coworking, land, or all segments.
- Optionally set Min/Max Surface in m2.
- Set Max Results and run. Results land in the dataset as one flat JSON object per listing.
Example: bureaux à louer in Paris:
{"searchQuery": "Paris","listingType": "rent","segment": "office","maxResults": 200}
Example: entrepôts and locaux d'activités around Lyon, 200 m2 or more:
{"searchQuery": "Lyon","listingType": "rent","segment": "warehouse","minSurface": 200,"maxResults": 100}
Example: locaux commerciaux for sale in Bordeaux:
{"searchQuery": "Bordeaux","listingType": "sale","segment": "retail","maxResults": 100}
An empty input {} works as well — it returns listings from all of France up to the default cap of 100.
Input options
| Field | Type | Description |
|---|---|---|
searchQuery | string | City, arrondissement (Paris 8), postal code (75008) or department (Hauts-de-Seine, 92). Empty = all of France. |
listingType | string | all (default), rent (location) or sale (vente). |
segment | string | all (default), office, retail, warehouse, coworking, land. warehouse covers both entrepôts and locaux d'activités, as the site groups them. |
minSurface | integer | Minimum floor area in m2. |
maxSurface | integer | Maximum floor area in m2. |
maxResults | integer | Cap on returned listings. Default 100, hard maximum 60,000. |
proxyConfiguration | object | Apify proxy settings. French residential proxy is the default. |
If the location is not recognized by the portal, the run fails with a clear message instead of silently returning listings from all of France.
Output fields
| Field | Example | Description |
|---|---|---|
title | "Location bureau Paris 75008" | Listing headline |
segment | "office" | office, retail, warehouse, activity, coworking, land, ephemeral-retail |
listingType | "rent" | rent, sale, or rent+sale for dual listings |
price | 850 | Rent: EUR per m2 per year. Sale: total EUR. Null when price on request |
priceUnit | "EUR/m2/an" | EUR/m2/an for rentals, EUR (total) for sales |
currency | "EUR" | Always EUR |
priceOnRequest | false | True when the advertiser publishes no price at all |
rentPerM2Year | 850 | Rent in EUR per m2 per year (rentals only) |
monthlyRent | 5454.17 | Advertised monthly rent in EUR. For divisible buildings this corresponds to the smallest available lot |
salePrice | 1200000 | Total asking price in EUR (sales only) |
salePricePerM2 | 4854.37 | Computed sale price per m2 |
seatPrice / numSeats | 390 / 24 | Coworking listings |
surface | 5711 | Total floor area in m2 |
minimalSurface | 2000 | Smallest divisible lot in m2 |
isDivisible | true | Space can be split into smaller lots |
address | "88-90 Rue Cardinet, 75017 Paris" | Display address |
street / city / zipCode / department | "Rue Cardinet" / "Paris" / "75017" / "75" | Address parts |
characteristics | {"has_optic_fiber": true} | Raw building characteristics as published |
agencyName | "Savills" | Agency or broker |
contactName / phone | "Jean Dupont" / "06 12 34 56 78" | Listing contact. phone is on every listing, contactName on about a third |
buildingName | "SOLAIR" | Branded office buildings. Filled for about 1 in 10 office listings |
description | "Située au coeur de Paris..." | Full listing text in French, filled on nearly all listings |
tagline | "Immeuble de prestige" | Advertiser's short line. Rarely filled |
entranceFee / leasingRightPrice | 45000 / null | Key money (pas-de-porte) and leasing right, when published. Seen on retail rentals, not on office rentals |
imageUrl / imageUrls | "https://imagescdn.bureauxlocaux.com/..." | Photos |
virtualTourUrls | ["https://my.matterport.com/..."] | Virtual tours when published |
adLevel | 4 | Portal ad placement level (higher = paid placement) |
url | "https://www.bureauxlocaux.com/annonce/..." | Listing on the portal |
id | 38852046 | Portal listing id |
source | "bureauxlocaux.com" | Data source |
scrapedAt | "2026-08-18T10:00:00.000Z" | Scrape timestamp |
Example output
{"id": 41747344,"title": "Location bureau Paris 75001","segment": "office","listingType": "rent","price": 692.31,"priceUnit": "EUR/m2/an","currency": "EUR","priceOnRequest": false,"rentPerM2Year": 692.31,"monthlyRent": 7500,"salePrice": null,"surface": 130,"minimalSurface": null,"isDivisible": false,"address": "Rue du Louvre, 75001 Paris","street": "Rue du Louvre","city": "Paris","zipCode": "75001","department": "75","agencyName": "Arthur Loyd","phone": "01 44 88 51 51","imageUrl": "https://imagescdn.bureauxlocaux.com/i2/...","url": "https://www.bureauxlocaux.com/annonce/location-bureau-paris-75001--41747344","source": "bureauxlocaux.com","scrapedAt": "2026-08-18T10:00:00.000Z"}
Pricing and cost estimate
Pay per event: $0.005 per GB of run memory when the run starts (the default memory is 4 GB, so $0.02), plus $0.002 per listing on the Free and Bronze plans. The per-listing price is $0.0015 on Silver and $0.0012 on Gold and above. Apify platform usage for a run is about $0.002 per 100 listings.
| Run | Listings | Run time | Approximate cost |
|---|---|---|---|
| Paris 8, offices for rent | 100 | 16 seconds | $0.22 |
| 500 listings, Bronze plan | 500 | not measured | about $1.03 |
| Full-country rental offices (~21,000) | 21,000 | not measured | about $42 on Bronze |
The runs read the portal's JSON feed directly, 60 listings per request, without a browser.
A run's usage cost only settles after the run reports SUCCEEDED. A run still in progress shows a lower number than the final one.
Limitations
priceis null when an advertiser lists "prix sur demande" — this is the portal's data, not a scrape failure. In commercial real estate this is common; a small share of rental listings have no published rent figure (a few percent in our Paris office and Bordeaux retail runs).monthlyRentis the figure as advertised. For divisible buildings it corresponds to the smallest available lot, not the total surface — userentPerM2Yeartimessurfacefor the full-building figure.- The search feed does not carry publication dates or coordinates; those only exist on detail pages, which this actor does not fetch.
- Regions (e.g. Île-de-France) are not a supported location filter on the portal — use a department or run per city instead.
segmentfollows the portal's own categories, so a search for one segment can return a few listings tagged with a neighbouring one (for exampleofficein a retail search). Filter on thesegmentfield afterwards if you need an exact split.- With
listingTypeset toall, a smallmaxResultscan be filled by rentals alone. Runrentandsaleseparately when you need both. - A search returns fewer listings than
maxResultswhen fewer exist: Lyon warehouse sales of 200 m2 or more returned 11. - The portal groups entrepôts and locaux d'activités into one warehouse segment; the output
segmentfield still tells them apart per listing.
Fair use
The actor scrapes only publicly visible listing data at a polite request rate. Respect BureauxLocaux's terms of service and French law when using the data, especially agency contact details.