Pages Jaunes France Business Scraper avatar

Pages Jaunes France Business Scraper

Pricing

Pay per event

Go to Apify Store
Pages Jaunes France Business Scraper

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

Stas Persiianenko

Maintained by Community

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

FieldDescriptionExample
businessNameFull company/professional name"Le Sirocco"
phonePrimary phone number"01 43 31 13 13"
emailEmail address (if publicly listed)"contact@example.fr"
websiteBusiness website URL"https://lesirocco.fr"
addressStreet address"8 Bis rue Gobelins"
cityCity name"Paris"
postalCodeFrench postal code (5 digits)"75013"
categoryBusiness category/profession"restaurants"
descriptionBusiness description/tagline"Restaurant marocain traditionnel..."
ratingCustomer rating (1–5)4.3
reviewCountNumber of reviews1042
urlDirect link to PagesJaunes profile"https://www.pagesjaunes.fr/pros/..."
searchTermsThe keyword used to find this result"restaurant"
locationThe 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 tierPrice 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

  1. Open the actor on Apify and click Try for free
  2. Set your search keyword β€” the profession or business type (e.g., restaurant, plombier, dentiste, avocat)
  3. Set your location β€” city, department, or postal code (e.g., Paris, Lyon, 75001)
  4. Set maximum results β€” how many businesses to extract
  5. Click Start and wait for results

The actor handles Cloudflare automatically. Most runs complete in 2–5 minutes for 100 listings.

βš™οΈ Input parameters

ParameterTypeRequiredDefaultDescription
searchTermsstringβœ… Yesβ€”Keyword/profession to search for
locationstringβœ… Yesβ€”City, region, or postal code
maxResultsintegerNo50Maximum number of results to extract
proxyCountrystringNo"FR"Proxy country code (FR recommended)

πŸ” Search tips

  • Use French terms: plombier not plumber, boulangerie not bakery
  • Use NAF codes if you know them (e.g., 56.10A for restaurants)
  • Location accepts: city name (Bordeaux), department (Gironde), region (Nouvelle-Aquitaine), or postal code (33000)
  • For broad searches across France, use France as 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: 20 first 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:

  1. Go to your dataset β†’ Export β†’ Google Sheets
  2. Authorize your Google account
  3. 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 ApifyClient
client = 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().items
print(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.