Pages Jaunes France Business Scraper
Pricing
Pay per event
Pages Jaunes France Business Scraper
Scrape business listings, phone numbers, emails, websites and addresses from PagesJaunes.fr β France's leading business directory
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract business listings, phone numbers, addresses, emails, websites, and ratings from PagesJaunes.fr β France's largest business directory with over 3 million professional listings.
ποΈ What does it do?
This actor scrapes business data from PagesJaunes.fr (the French yellow pages) by keyword and location. You provide a profession or keyword and a city or region, and the actor returns a structured list of matching businesses with their contact details.
Whether you need plumbers in Lyon, restaurants in Paris, or accountants in Bordeaux, this scraper retrieves the complete business profile from France's most comprehensive professional directory.
π₯ Who is it for?
Sales and lead generation teams building prospect lists of French businesses by industry and region β skip the manual copy-paste and automate your outreach pipeline.
Marketing agencies conducting market research on local business density, competitor mapping, or territory analysis across French cities and departments.
B2B SaaS companies enriching CRM records with French business contact data β phone numbers, addresses, and categories for companies you already know about.
Data analysts and researchers studying the French SME landscape β restaurant density by arrondissement, healthcare provider coverage by commune, etc.
Freelancers and consultants prospecting for clients in specific trades or professions (avocat, architecte, expert-comptable) across target locations.
β Why use it?
- No manual scraping β automated extraction of 100s of listings per run
- Phone numbers included β direct telephone contacts, not obfuscated
- Postal code parsing β addresses split into street, city, and postal code
- Category extraction β know exactly what type of business each listing is
- Pagination handled β automatically follows next-page links to retrieve all results
- Cloudflare-resistant β uses browser-based rendering with residential proxy to bypass bot protection
π Data extracted
| Field | Description | Example |
|---|---|---|
businessName | Full company/professional name | "Le Sirocco" |
phone | Primary phone number | "01 43 31 13 13" |
email | Email address (if publicly listed) | "contact@example.fr" |
website | Business website URL | "https://lesirocco.fr" |
address | Street address | "8 Bis rue Gobelins" |
city | City name | "Paris" |
postalCode | French postal code (5 digits) | "75013" |
category | Business category/profession | "restaurants" |
description | Business description/tagline | "Restaurant marocain traditionnel..." |
rating | Customer rating (1β5) | 4.3 |
reviewCount | Number of reviews | 1042 |
url | Direct link to PagesJaunes profile | "https://www.pagesjaunes.fr/pros/..." |
searchTerms | The keyword used to find this result | "restaurant" |
location | The location searched | "Paris" |
π° How much does it cost to scrape PagesJaunes.fr?
This actor uses pay-per-event (PPE) pricing:
- Start fee: $0.005 per run (one-time)
- Per result: from $0.00065 to $0.00268 per business extracted (varies by subscription tier)
| Subscription tier | Price per result |
|---|---|
| Free | $0.00268 |
| Bronze | $0.00233 |
| Silver | $0.00182 |
| Gold | $0.00140 |
| Platinum | $0.00093 |
| Diamond | $0.00065 |
Example cost estimates (Bronze tier):
- 100 businesses: ~$0.24 total
- 500 businesses: ~$1.17 total
- 1,000 businesses: ~$2.33 total
Pricing is based on actual infrastructure cost measurements with 70%+ net margins built in. Compare with competitors charging between $0.001 and $0.004 per result flat.
Free plan estimate: Apify's free tier ($5/month credit) can extract approximately 1,800β2,000 business listings per month.
π How to use it
- Open the actor on Apify and click Try for free
- Set your search keyword β the profession or business type (e.g.,
restaurant,plombier,dentiste,avocat) - Set your location β city, department, or postal code (e.g.,
Paris,Lyon,75001) - Set maximum results β how many businesses to extract
- Click Start and wait for results
The actor handles Cloudflare automatically. Most runs complete in 2β5 minutes for 100 listings.
βοΈ Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerms | string | β Yes | β | Keyword/profession to search for |
location | string | β Yes | β | City, region, or postal code |
maxResults | integer | No | 50 | Maximum number of results to extract |
proxyCountry | string | No | "FR" | Proxy country code (FR recommended) |
π Search tips
- Use French terms:
plombiernotplumber,boulangerienotbakery - Use NAF codes if you know them (e.g.,
56.10Afor restaurants) - Location accepts: city name (
Bordeaux), department (Gironde), region (Nouvelle-Aquitaine), or postal code (33000) - For broad searches across France, use
Franceas the location
π€ Output format
Results are stored in the default dataset as JSON. Each item represents one business:
{"businessName": "Le Sirocco","phone": "01 43 31 13 13","email": null,"website": "https://www.lesirocco.fr","address": "8 Bis rue Gobelins","city": "Paris","postalCode": "75013","category": "restaurants","description": "Venez dΓ©couvrir la gastronomie marocaine...","rating": 4.3,"reviewCount": 1042,"url": "https://www.pagesjaunes.fr/pros/08154320","searchTerms": "restaurant","location": "Paris"}
π‘ Tips and best practices
- Start small: Run with
maxResults: 20first to verify the data matches your needs before scaling up - Multiple searches: Run separate actor instances for each profession/location combination rather than one huge run
- Use French terms: PagesJaunes is entirely in French β search exactly as a French user would
- Batch by department: For national data, run one search per French department (there are 95) rather than using
Franceβ this gives more targeted results - Phone cleanup: Phone numbers are extracted as-is from the page; normalize them in post-processing (remove spaces, normalize to E.164 format if needed)
- Proxy country: Keep
proxyCountry: "FR"β using a French IP gives more accurate local results
π Integrations
Export to Google Sheets
After your run completes, use Apify's Google Sheets integration to push all results directly to a spreadsheet:
- Go to your dataset β Export β Google Sheets
- Authorize your Google account
- All business fields appear as columns automatically
CRM enrichment (HubSpot, Salesforce)
Use Apify's Zapier or Make integration to push each extracted business directly to your CRM:
- Trigger:
Actor run finished - Action:
Create contact in HubSpot - Map:
businessName β Company Name,phone β Phone,city β City
Airtable database
Connect to Airtable via the Apify Airtable integration β perfect for territory mapping or sales team assignments where you want a filterable, shareable database.
Combine with email finder
After extracting businesses with this actor, pass the company names + domains to an email finder actor (like Hunter.io Scraper on Apify Store) to append email addresses where not directly available on PagesJaunes.
π€ API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/pagesjaunes-france-business-scraper').call({searchTerms: 'restaurant',location: 'Lyon',maxResults: 100,proxyCountry: 'FR',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Extracted ${items.length} businesses`);console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_API_TOKEN')run = client.actor('automation-lab/pagesjaunes-france-business-scraper').call(run_input={'searchTerms': 'plombier','location': 'Marseille','maxResults': 50,'proxyCountry': 'FR',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(f'Extracted {len(items)} businesses')for biz in items:print(biz['businessName'], biz['phone'], biz['city'])
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~pagesjaunes-france-business-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms": "dentiste","location": "Paris","maxResults": 50,"proxyCountry": "FR"}'
π€ Use with Claude (MCP)
This actor is available as a tool in Claude AI via the Model Context Protocol (MCP). Ask Claude to find French business leads directly in your conversation.
Claude Code (terminal)
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/pagesjaunes-france-business-scraper"
Claude Desktop / Cursor / VS Code
Add to your MCP config file (claude_desktop_config.json or similar):
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/pagesjaunes-france-business-scraper","headers": {"Authorization": "Bearer YOUR_APIFY_API_TOKEN"}}}}
Example prompts for Claude
- "Find all plumbers in Lyon and export to CSV"
- "Scrape 200 restaurants in Paris 75001 and 75002 postcodes"
- "Get dentists in Marseille with their phone numbers for our CRM"
- "Extract accounting firms in Bordeaux region β I need 500 leads"
βοΈ Legality and terms of service
PagesJaunes.fr makes business contact information publicly available for the purpose of connecting users with professionals. Scraping this publicly available directory data for lead generation, market research, and business intelligence purposes is a common and widely-practiced use case.
However, you should be aware of:
- GDPR compliance: Data about individuals (sole traders) may constitute personal data under GDPR. Ensure you have a legitimate purpose and handle data according to EU regulations.
- PagesJaunes terms of service: Commercial mass extraction may be against PagesJaunes' terms of service. Review their ToS before large-scale operations.
- Purpose limitation: Use extracted data only for the purpose you collected it for.
- Data retention: Don't store data longer than necessary for your purpose.
This actor is provided for research, prospecting, and data analysis purposes. Users are responsible for complying with applicable laws and platform terms.
β FAQ
Q: Why am I getting 0 results?
A: Try using French language search terms (e.g., boulangerie not bakery). If results are still empty, the combination of keyword + location may return 0 results on PagesJaunes β try a broader location like a full department or region name.
Q: The actor is slow β is this normal?
A: Yes, PagesJaunes uses Cloudflare protection which requires browser-based rendering. Each page takes 5β15 seconds to load. For 100 results (5 pages), expect 60β90 seconds total runtime.
Q: Phone numbers are missing for some results β why?
A: Some businesses haven't listed a phone number on PagesJaunes, or only show it after clicking a "reveal" button (which requires an additional browser interaction). The actor extracts phones that are pre-loaded in the page HTML.
Q: Can I scrape all of France at once?
A: Yes, but we recommend splitting by department (95 total) and running parallel actor instances rather than one enormous run. This distributes cost and avoids timeouts.
Q: The actor failed mid-run β what happened?
A: Most failures are caused by Cloudflare challenges timing out. The actor automatically retries with a fresh browser session. If failures persist, try reducing maxResults or switching the proxyCountry to FR.
Q: Can I get email addresses?
A: Some businesses list their email directly on PagesJaunes and it will be extracted. Most do not β for email discovery, combine this actor with an email finder service.
π Related scrapers
- automation-lab/yellowpages-scraper β US business directory
- automation-lab/google-maps-scraper β Google Maps business data
- automation-lab/linkedin-company-scraper β LinkedIn company profiles