PagesJaunes FR $0.8/1K Comprehensive Business Data avatar

PagesJaunes FR $0.8/1K Comprehensive Business Data

Pricing

from $0.80 / 1,000 results

Go to Apify Store
PagesJaunes FR $0.8/1K Comprehensive Business Data

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

Abot API

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

0

Monthly active users

6 days ago

Last modified

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 example plombier, restaurant or dentiste
  • location, for example Paris, Lyon, 75 or Ile-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

InputDefaultNotes
modesearchChoose search fields or URL mode
maxPages00 means walk all available pages for each target
maxListings20Total cap across all searches and URLs
scrapeDetailstrueAdds profile-level fields where available
maxConcurrency5Lower values are slower but gentler
proxyResidential Apify ProxyKeep the default unless supplying custom proxy URLs
resumeFromRunIdemptyContinue ONE interrupted run — skip listings already present in that run/dataset
incrementalModefalseTrack this exact search across scheduled runs; classify each business as NEW/UPDATED/UNCHANGED/REAPPEARED/EXPIRED
stateKeyemptyOptional label for the Incremental mode baseline; auto-derived from the search/URLs + scrapeDetails when empty
emitUnchangedfalseIncremental mode: also return (and bill for) businesses with no detected change
emitExpiredfalseIncremental 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 as NEW, UPDATED, UNCHANGED, REAPPEARED, or EXPIRED. A quiet run — nothing changed — returns (and bills for) nothing by default. EXPIRED only 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 stateKey to start a separate campaign instead.
  • Not tracked for change detection: imageUrl and latitude/longitude are excluded from Incremental mode's change comparison. imageUrl is the site's own "primary photo" pick from the same gallery already returned in full in photos, and measurably flips between the same values run-over-run with no gallery change. latitude/longitude come from a probabilistic external geocoder (matches scored >= 0.5, see src/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. rating and reviewCount are 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.