Bpifrance Transmission Scraper - Businesses for Sale France avatar

Bpifrance Transmission Scraper - Businesses for Sale France

Pricing

from $2.10 / 1,000 listings

Go to Apify Store
Bpifrance Transmission Scraper - Businesses for Sale France

Bpifrance Transmission Scraper - Businesses for Sale France

Scrape businesses for sale in France from Bpifrance's Bourse de la Transmission (~45,000 listings from approved partners): price, revenue, EBE, staff, sector, department, region and partner. Filter by sector, region, city, price or keyword. Export to Excel, CSV or API.

Pricing

from $2.10 / 1,000 listings

Rating

0.0

(0)

Developer

Shivam Prajapati

Shivam Prajapati

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Security

Limited permissions

Share

Bpifrance Transmission Scraper - Businesses for Sale in France

Get businesses for sale in France from Bpifrance's Bourse de la Transmission, the public bank's marketplace that gathers about 45,000 listings (entreprises et commerces à vendre) from approved partners such as Cession PME, Transentreprise and Les annonces du commerce: asking price, revenue (CA), EBE, staff, surface, sector, department, region and the partner who published it. Filter by sector, region, city, price or keyword, and export to Excel, CSV, JSON or the API.

Actively maintained. Last update: 2026-11-04. Every release passes 190+ automated tests on saved Bpifrance pages plus a check against the live site, and Apify test-runs it every day.

What can you use it for?

  • Find a business to buy in France. Screen every bakery, bar, restaurant, shop or service business in your region by price, revenue and EBE, from one place instead of five partner sites.
  • Deal flow for buyers, brokers and advisers. Schedule a daily run and send new listings to Google Sheets, Slack or your CRM.
  • Valuation research. Price, revenue and EBE as numbers for thousands of small businesses: compare multiples by sector and region.
  • Market research. Count listings by sector, department, region and partner; see what comes to market where.

What data do you get?

Fields marked details are filled when Open each listing for its description is on (the default). Everything else comes from the list pages.

FieldWhat it is
listingIdBpifrance listing ID
urlLink to the listing
titleListing title
sectorCommerce, Restauration, Tourisme, Production or Services
offerTypebusiness or franchise
priceAsking price in EUR (empty when not disclosed)
priceTextThe price as shown, e.g. "155 K€"
revenue / revenueTextYearly revenue (CA) in EUR, and as shown
ebitda / ebitdaTextEBE (French EBITDA) in EUR, and as shown
employeesMin / employeesMax / employeesTextStaff
surfaceM2Surface in m², when given
locationDepartment as shown, e.g. "Nord (59)"
departmentCodeDepartment number
departmentDepartment name
regionRegion
partnersApproved partner(s) that published the listing
publishedAge as shown, e.g. "Publié il y a 1 jour"
isNewMarked "Nouveau"
descriptionShort description (details)
hasDetailstrue if the listing page was opened
foundOnThe list page where the listing was found
scrapedAtWhen it was scraped (UTC)

Privacy

Listings are anonymous. The scraper never reads the contact forms or follows the partners' tracking links, and it removes any e-mail address, phone number or web link from the description (replaced with [removed]).

Example result

{
"listingId": "663153",
"title": "Boucherie - Charcuterie Dechy",
"sector": "Commerce",
"offerType": "business",
"price": 155000,
"priceText": "155 K€",
"revenue": 310000,
"surfaceM2": 120,
"location": "Nord (59)",
"department": "Nord",
"region": "Hauts-de-France",
"partners": ["Cession PME"],
"published": "Publié il y a 1 jour",
"isNew": true
}

How to use it

  1. Pick Sectors and/or Regions / cities (or leave both empty for every sector in all of France).
  2. Optionally add a Keyword (e.g. boulangerie, bar, garage) and a price range.
  3. Set Maximum listings, click Start, and download the results.

With several sectors or places, Maximum listings is shared fairly between them.

Input options

OptionWhat it does
sectorscommerce, restauration, production, services (empty = all four)
locationsRegions or big cities with their own page on the site, e.g. Auvergne-Rhône-Alpes, Lyon, Paris
keywordOnly listings that mention this word (title and description; title only in fast mode)
minPrice / maxPriceAsking price range in EUR (listings without a price are kept)
startUrlsA sector or region/city list, or single listing URLs, scraped as given
includeDetailsOpen each listing for its description (default on). Turn off for a fast, cheaper run
onlyNewSkip listings that earlier runs of the same search returned: you get and pay only for ones you haven't had (the first run works as usual)
maxItemsStop after this many listings
maxConcurrencyPages loaded at the same time (keep low to be polite)

Fast mode vs. details

  • Details (default): adds the short description from each listing page (the full file is on the partner's site).
  • Fast mode (includeDetails off): reads only the list pages, 60 listings per request: everything except the description.

How much does it cost?

You pay $3.00 per 1,000 listings returned (plus a tiny $0.00005 per run start). Platform usage is included.

ListingsCost
100$0.30
One city (e.g. Lyon, ~750)about $2.25
One region (e.g. Auvergne-Rhône-Alpes, ~5,700)about $17

Apify's free plan gives you $5 of credit every month. Set a spending limit on any run and the scraper stops exactly there.

Use it via API, on a schedule, or with your tools

  • Schedule it daily or weekly to catch every new listing (newest come first).
  • Only new listings: turn it on in a scheduled run or task and each run returns only listings you haven't had yet, so you never pay twice for the same listing.
  • Integrations: send results to Google Sheets, Slack, e-mail, Zapier, Make or a webhook.
  • API: run it from your own code and download results as JSON, CSV or Excel.
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("pshivam/bpifrance-transmission-scraper").call(run_input={"locations": ["Lyon"], "sectors": ["restauration"], "maxItems": 100})
for business in client.dataset(run["defaultDatasetId"]).iterate_items():
print(business["title"], business["price"], business["revenue"], business["partners"])

Use it in Clay, n8n, Make or Zapier

Actor: pshivam/bpifrance-transmission-scraper. Paste this input and change the filters to yours:

{"locations": ["Lyon"], "onlyNew": true, "maxItems": 1000, "includeDetails": false}
  • Clay: create a table from an Apify source to pull in the results of a scheduled run of this Actor (it refreshes every 24 hours by default), or use the Run Apify Actor enrichment and paste the input.
  • n8n: add the Apify node, choose Run Actor and get dataset items, pick this Actor and paste the input.
  • Make: use Run an Actor with Run synchronously on, then Get Dataset Items with the run's dataset ID.
  • Zapier: schedule this Actor in Apify, then use the Finished Actor Run trigger and Fetch Dataset Items. (Zapier stops waiting for Run Actor after 30 seconds, and a run usually takes about a minute.)

Good to know

  • It is an aggregator: listings come from Bpifrance's approved partners, and the same business can also appear on the partner's own site (e.g. Transentreprise). The partners field says where.
  • Sector and place lists are the site's own. With both a place and sectors, the scraper reads the place list and keeps the sectors you chose.
  • Figures are the seller's own. When a published EBE is impossible (higher than the revenue, a partner typo), ebitda is left empty and ebitdaText shows what the site says.
  • Places are the ones the site has pages for: all regions and about 70 big cities.

This scraper vs. the alternatives

This scraperCopying from Bpifrance by handBuilding your own scraper
1,000 listings (fast mode)About 1 minuteDaysDays to build, then upkeep
OutputExcel, CSV, JSON or API; 26 fields per listingA spreadsheet you typeWhatever you code
Price, revenue, EBENumbers in EUR, ready to sortRetyped by handYou write the parsing
Only new listings each dayBuilt in (onlyNew)Compare lists yourselfYou build it
When the site changesWe fix it; Apify test-runs it daily-You fix it
Contact detailsRemovedYour responsibilityYour responsibility
Cost$3.00 per 1,000 listingsYour timeYour time plus hosting

FAQ

How many listings are there?

About 45,000 across the four sectors (Restauration, Tourisme alone has about 23,000), from approved partners all over France.

How much does it cost?

$3.00 per 1,000 listings (less on paid Apify plans), so 100 listings cost $0.30 and a big city like Lyon about $2.25.

Who publishes the listings?

Bpifrance's approved partners, for example Cession PME, Transentreprise, Les annonces du commerce, Place des Commerces and CRA. The partners field names them.

This scraper reads public listing pages at a polite speed, follows the site's robots.txt and returns business data with contact details removed. You are responsible for how you use the data; check the site's terms for your use case.

Can I get the seller's contact details?

No. Use the listing url: the page links to the partner who holds the full file.

How do I get only new listings every day?

Save your search as a task, turn on Only new listings and schedule it daily. Each run then skips the listings earlier runs returned, so you get and pay only for ones you haven't had. Tip: set Maximum listings above the number of listings your search has, so the first run gets them all and later runs return just the new ones.

Ready-made examples

Open one, click Try for free, and get data in about a minute:

More business-for-sale scrapers

Other scrapers