Yellow Pages Business Directory Scraper avatar

Yellow Pages Business Directory Scraper

Pricing

from $1.20 / 1,000 results

Go to Apify Store
Yellow Pages Business Directory Scraper

Yellow Pages Business Directory Scraper

Search Yellow Pages business listings by keyword and US city — name, phone, address, categories, rating, review count, and website for every result. We rotate fingerprints and proxies so blocks don't stop your dataset.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share


🎯 What this 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.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Enter a searchTerm (e.g. "plumbers") and a location (e.g. "Austin, TX").
  3. Optionally raise or lower maxResults (default 300, cap 3000).
  4. Click Start. Matched listings stream into the run's dataset as they're found.
  5. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
searchTermstringyesCategory or free-text keyword, e.g. "plumbers".
locationstringyesUS city + state, "City, ST" shape, e.g. "Austin, TX".
maxResultsintegerno300Cap on total rows emitted, 1-3000.
proxyConfigurationobjectno{"useApifyProxy": true}Apify Proxy config.

Example input

{
"searchTerm": "plumbers",
"location": "Austin, TX",
"maxResults": 300,
"proxyConfiguration": {
"useApifyProxy": true
}
}

📤 Output

Every row is one business listing from a search-results page.

FieldTypeNotes
business_namestringBusiness name.
phonestring | nullPrimary phone number, verbatim.
street_addressstring | nullStreet address; null when absent.
citystring | nullCity, parsed from the locality text.
statestring | nullUS state abbreviation.
zip_codestring | nullZIP code.
categoriesarrayBusiness categories, DOM order — empty array (never null) when absent.
websitestring | nullWebsite link as listed by Yellow Pages, verbatim — may be a tracked redirect, not necessarily the business's own domain.
ratingnumber | nullStar rating, 1.0-5.0 in 0.5 steps; null when unrated.
review_countinteger | nullNumber of reviews; null when unrated.
listing_urlstringAbsolute URL to the business's Yellow Pages listing page.
search_termstringEcho of the run's searchTerm input.
location_querystringEcho of the run's location input.
scraped_atstringISO-8601 UTC timestamp when this row was recorded.

Example output

{
"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

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.01One-off warm-up charge per run
result$0.0012Per business listing row written to the dataset

Example: 1 000 rows ≈ $1.21 (1 000 × $0.0012 + one $0.01 start charge). No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

v1 covers yellowpages.com US search-results pages only — not individual business detail/profile pages, not Canada's yellowpages.ca or any other country's directory, and not geocoding/validation of the location input against a real city/state gazetteer (format-shape validation only). The website field is captured verbatim with no redirect-following. Each run is a full fresh scrape; there is no cross-run deduplication or incremental/resume crawling.

❓ 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.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.