PagesJaunes FR $0.8/1K Comprehensive Business Data
Pricing
from $0.80 / 1,000 results
PagesJaunes FR $0.8/1K Comprehensive Business Data
From $0.8/1K. Scrapes business listings from PagesJaunes.fr (French Yellow Pages). Extract comprehensive business information, including contact details, ratings, reviews, opening hours, payment methods, and category hierarchy across all of France.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
PagesJaunes FR Business Scraper
Collect business listings from PagesJaunes.fr by keyword and location, or by pasting PagesJaunes search result URLs.
What it returns
- Business name, profile URL, phone number and address
- Activity categories, ratings, review counts and map coordinates when matched
- Search keyword and search location for each record
- Optional detail fields such as website, opening hours, description, photos, services, products, payment methods and reviews
Input modes
Use mode to choose how the run starts.
Search mode
Set mode to search, then enter:
searchTerms, for exampleplombier,restaurantordentistelocation, for exampleParis,Lyon,75orIle-de-France
URL mode
Set mode to url, then paste one or more PagesJaunes search URLs:
{"mode": "url","urls": [{"url": "https://www.pagesjaunes.fr/annuaire/chercherlespros?quoiqui=plombier&ou=Paris"},{"url": "https://www.pagesjaunes.fr/annuaire/chercherlespros?quoiqui=restaurant&ou=Lyon&page=3"}],"maxPages": 5}
URL mode accepts PagesJaunes search URLs containing both quoiqui and ou parameters. If a URL contains a page parameter, the run starts from that page.
Key settings
| Input | Default | Notes |
|---|---|---|
mode | search | Choose search fields or URL mode |
maxPages | 0 | 0 means walk all available pages for each target |
maxListings | 20 | Total cap across all searches and URLs |
scrapeDetails | true | Adds profile-level fields where available |
maxConcurrency | 5 | Lower values are slower but gentler |
proxy | Residential Apify Proxy | Keep the default unless supplying custom proxy URLs |
resumeFromRunId | empty | Continue ONE interrupted run — skip listings already present in that run/dataset |
incrementalMode | false | Track this exact search across scheduled runs; classify each business as NEW/UPDATED/UNCHANGED/REAPPEARED/EXPIRED |
stateKey | empty | Optional label for the Incremental mode baseline; auto-derived from the search/URLs + scrapeDetails when empty |
emitUnchanged | false | Incremental mode: also return (and bill for) businesses with no detected change |
emitExpired | false | Incremental mode: also return (and bill for) businesses no longer found, after a complete scan |
PagesJaunes keeps the residential proxy default.
Resume & recurring updates
- Resume from run ID continues ONE specific interrupted run — paste a previous run/dataset ID and this run returns only the delta.
- Incremental mode is for scheduling the SAME search repeatedly. It remembers what it found last time (keyed on the search terms/location or URLs, plus
scrapeDetails) and classifies each business asNEW,UPDATED,UNCHANGED,REAPPEARED, orEXPIRED. A quiet run — nothing changed — returns (and bills for) nothing by default.EXPIREDonly fires after a run proves it scanned the full tracked search; a capped, resumed, or partial run never marks anything expired. - Do not combine Resume and Incremental mode once a search already has saved Incremental state — set a different
stateKeyto start a separate campaign instead. - Not tracked for change detection:
imageUrlandlatitude/longitudeare excluded from Incremental mode's change comparison.imageUrlis the site's own "primary photo" pick from the same gallery already returned in full inphotos, and measurably flips between the same values run-over-run with no gallery change.latitude/longitudecome from a probabilistic external geocoder (matches scored>= 0.5, seesrc/geocoder.py) and drift by rounding-level amounts between runs. Both fields are still returned on every record — only excluded from the NEW/UPDATED/UNCHANGED decision.ratingandreviewCountare real data and are NOT excluded — they are exactly the signal a monitoring run exists to report.
Output example
{"clientId": "12345678","name": "Sample Business","phone": "01 23 45 67 89","address": "10 rue Example 75001 Paris","activities": ["plombiers"],"rating": 4.8,"reviewCount": 42,"latitude": 48.852,"longitude": 2.35,"detailUrl": "https://www.pagesjaunes.fr/pros/12345678","searchTerms": "plombier","searchLocation": "Paris"}
When scrapeDetails is enabled, each record may also include website, social profiles, opening hours, reviews, photos, services, products, payment methods and restaurant-specific fields where published.
Optional exports
You can pipe a capped summary of the results into authorized MCP connectors such as Notion, Linear, Airtable or Apify. The complete records remain in the Apify dataset.