Yellow Pages Business Directory Scraper icon

Lead generation

Yellow Pages Business Directory Scraper

One structured feed of Yellow Pages US business listings — searched by keyword and city — with name, phone, address, categories, rating, review count, and website per row, from an Actor that handles Cloudflare instead of tripping on it.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

yellowpages.com carries US business listings spanning name, phone, address, categories, ratings, and websites for local-service and retail businesses across every US city. This Actor searches its public results pages by keyword and city, writing one structured row per listing — no login, no scraping the individual business detail pages, just the search-results feed, paginated to your maxResults cap.

Give it a searchTerm (category or free-text keyword) and a location ("City, ST") and it pages through results until it hits your maxResults cap, the site's own listing total, or the last page — whichever comes first.

What we handle for you

  • 🛡️ We rotate browser fingerprints (curl-cffi impersonation — Chrome / Firefox / Safari) so the target sees real-browser traffic, not Python.
  • 🔁 We retry with exponential backoff on 408 / 429 / 5xx and honour Retry-After — up to 5 attempts per page.
  • 🌐 We rotate proxy sessions on every block — fresh session, fresh exit IP, before the next attempt.
  • 🧱 We back off when the target rate-limits. Partial successes surface clearly; we never silently return an empty dataset.
  • 🧊 We keep the dataset clean — Pydantic-validated rows, ISO-8601 timestamps, stable field shapes.
  • 💰 You pay only for results that land. No data → no charge (only the small actor-start warm-up fee).

Use cases

  • Lead-gen list building — pull every plumber, roofer, or dentist in a target city into a call/email list ready for outreach.
  • Local-market research — compare business density and category mix across cities before opening a new location or launching an ad campaign.
  • Sales prospecting tools — ingest directory data as a feed for a broader prospecting or CRM-enrichment pipeline.
  • Competitive scans — see how many competitors of a given category operate in a city, and how they compare on ratings and review counts.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
searchTerm string yes Category or free-text keyword to search, e.g. "plumbers" or "italian restaurants". Passed as yellowpages.com's search_terms parameter.
location string yes US city + state to search, in "City, ST" shape, e.g. "Austin, TX". Passed as yellowpages.com's geo_location_terms parameter. Not geocoded — must contain a comma.
maxResults integer no Cap on total rows emitted for the run. Default covers 10 pages (30 rows/page); the run stops earlier if the site's own listing total or the last page is reached first.
{
  "searchTerm": "plumbers",
  "location": "Austin, TX",
  "maxResults": 300,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

business_namephonestreet_addresscitystatezip_codecategorieswebsiteratingreview_countlisting_urlsearch_termlocation_queryscraped_at

{
  "business_name": "ARS / Rescue Rooter",
  "phone": "(512) 837-9500",
  "street_address": "1500 W Anderson Ln",
  "city": "Austin",
  "state": "TX",
  "zip_code": "78757",
  "categories": [
    "Plumbers",
    "Air Conditioning Contractors & Systems",
    "Heating Contractors & Specialties"
  ],
  "website": "https://www.ars.com/austin",
  "rating": 4.5,
  "review_count": 128,
  "listing_url": "https://www.yellowpages.com/austin-tx/mip/ars-rescue-rooter-473194899",
  "search_term": "plumbers",
  "location_query": "Austin, TX",
  "scraped_at": "2026-07-30T12:00:00Z"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result emitted$0.0012Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

FAQ

Does this scrape individual business detail pages?
Not in v1. This Actor scrapes yellowpages.com's search-results pages only (name, phone, address, categories, rating, review count, and website per listing); detail-page enrichment (hours, full photo set, additional phones) is a v2 candidate.
Is the website field the business's own domain?
Not always. It's captured verbatim as listed by Yellow Pages — sometimes a tracked redirect or a micro-site rather than the business's own domain. We don't silently "correct" it.
Do I need a Yellow Pages account?
No. This Actor reads yellowpages.com's public search-results pages directly — no login required.
What happens if a run gets blocked mid-way?
We rotate browser fingerprints and proxy sessions on every block and retry with backoff. If the target still stops us, the run reports exactly how many rows it collected before stopping — never a silent empty dataset with a green status.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run