YellowPages Scraper - Phone, Website & Address Leads (US) avatar

YellowPages Scraper - Phone, Website & Address Leads (US)

Pricing

from $17.00 / 1,000 results

Go to Apify Store
YellowPages Scraper - Phone, Website & Address Leads (US)

YellowPages Scraper - Phone, Website & Address Leads (US)

Scrape US local business leads from YellowPages by keyword and location. Get each business with its phone, website, address, categories and rating for sales prospecting and outreach. Export to JSON, CSV or Excel.

Pricing

from $17.00 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

YellowPages Scraper - Phone, Website & Address Leads (US)

YellowPages Scraper - Phone, Website & Address Leads (US)

Here is one real result, with every field the actor returns:

{
"name": "The Artful Dentist",
"phone": "(512) 288-6444",
"website": "http://theartfuldentist.localsearch.com",
"address": "7500 W Highway 71 Ste 108, Austin, TX 78735",
"street": "7500 W Highway 71 Ste 108",
"city": "Austin, TX 78735",
"categories": [
"Dentists",
"Teeth Whitening Products & Services",
"Implant Dentistry"
],
"rating": 4.5,
"yearsInBusiness": null,
"url": "https://www.yellowpages.com/austin-tx/mip/the-artful-dentist-9179414",
"source": "YellowPages",
"observedAt": "2026-08-15T13:51:32.593Z"
}

The most complete YellowPages lead scraper available. It returns every business the YellowPages directory lists for your keyword and location, with phone, website, full address, categories and rating, plus an optional paid add-on that finds a public contact email and a contact person's name for each result. Target any business type in any US city or ZIP.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches the YellowPages business directory for the keyword and location you pass as input, paginates through every matching listing, and writes one normalized record per business to the run's dataset. Each record carries the business name, phone, website, full address (with street and city split out), categories, rating and profile URL. Text is HTML-decoded and whitespace-normalized, missing source values are returned as null, and results are deduplicated by profile URL.

An optional paid contact enrichment add-on can attempt, for each business without an email, to find a public business contact email and a contact person's name. It is off by default and billed separately (see Billing and limits).

Data covers US businesses listed on YellowPages. It does not include businesses that are not listed in the directory.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 10 dentist listings in Austin, TX.

{
"searchQuery": "dentist",
"location": "Austin, TX",
"maxBusinesses": 10
}

Change searchQuery to any business type and location to any US city, state or ZIP. Every input field is optional; with an empty input the actor searches plumber in Austin, TX.

Input reference

FieldTypeRequiredDefaultDescription
searchQuerystringnoplumberThe type of business to find, for example dentist, restaurants, auto repair.
locationstringnoAustin, TXCity and state or ZIP code, for example Austin, TX, New York, NY, 90210.
maxBusinessesintegerno10Maximum number of businesses to collect. Range 1 to 3000.
enrichContactsbooleannofalseOptional paid add-on. For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found.
enrichContactsMaxintegerno50Cap how many results the add-on tries to enrich, to control add-on cost. Free Apify accounts are capped at 3.

Output reference

One dataset item per business. Types: string, number, string[], or null when the source value is absent.

FieldTypeDescription
namestringBusiness name as listed on YellowPages.
phonestringBusiness phone number, or null.
websitestringBusiness website URL, or null when the listing has none.
addressstringFull street address including city, state and ZIP.
streetstringStreet portion of the address.
citystringLocality portion of the address (city, state and ZIP as listed).
categoriesstring[]Business categories from the listing, or null.
ratingnumberStar rating from 1 to 5 (in half steps), or null when unrated.
yearsInBusinessnumberYears in business as stated on the listing, or null.
urlstringYellowPages profile URL for the business (used to deduplicate).
sourcestringSource of the record. Always YellowPages.
observedAtstringISO 8601 timestamp of when the record was collected.
enrichedEmailstringPublic business contact email found by the add-on, or null. Present only when the enrichment add-on runs.
enrichedContactNamestringContact person's name found by the add-on, or null.
enrichedJobTitlestringContact person's job title found by the add-on, or null.
enrichedEmailStatusstringAdd-on email status: verified, likely, guessed or not_found.
enrichedSourcestringURL the add-on found the contact on, or null.
enrichedConfidencestringAdd-on confidence: high, medium or low.

The enriched* fields are added only when the paid contact enrichment add-on is enabled on the run. Without the add-on, records contain the directory fields only.

Example output record

Real record from a live run (input {"searchQuery": "dentist", "location": "Austin, TX", "maxBusinesses": 8}):

{
"name": "The Artful Dentist",
"phone": "(512) 288-6444",
"website": "http://theartfuldentist.localsearch.com",
"address": "7500 W Highway 71 Ste 108, Austin, TX 78735",
"street": "7500 W Highway 71 Ste 108",
"city": "Austin, TX 78735",
"categories": [
"Dentists",
"Teeth Whitening Products & Services",
"Implant Dentistry"
],
"rating": 4.5,
"yearsInBusiness": null,
"url": "https://www.yellowpages.com/austin-tx/mip/the-artful-dentist-9179414",
"source": "YellowPages",
"observedAt": "2026-08-15T13:51:32.593Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~yellowpages-business-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQuery":"dentist","location":"Austin, TX","maxBusinesses":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~yellowpages-business-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQuery":"roofing contractor","location":"Dallas, TX","maxBusinesses":300}'

Apify CLI:

apify call scrapers_lat/yellowpages-business-scraper \
--input '{"searchQuery":"plumber","location":"90210"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per business returned (result event). See the pricing tab for the current per-result price.
  • Contact enrichment add-on. When enrichContacts is on, each enrichment attempt is billed (contact-search-attempt), plus an extra charge only when an email is found (contact-email-found). The add-on is off by default.
  • No charge on failure. If the first request fails, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run, and at 3 enrichment attempts per run. Upgrade for higher maxBusinesses.

FAQ and troubleshooting

A run returned 0 records. Why? The keyword and location combination matched nothing in the directory. Try a broader keyword or a larger location (a state instead of a single city). Zero-result runs are not charged.

Why is website or rating null? Not every YellowPages listing publishes a website or has ratings. Missing source values are returned as null, never invented.

How do I get more than 10 results? Raise maxBusinesses (up to 3000) on a paid Apify plan. Free plans are capped at 10 records per run.

How does the contact enrichment add-on bill? It bills per attempt for each result without an email, and adds a separate charge only when a public email is actually found. Turn it off by leaving enrichContacts at false.

Can I search by ZIP code? Yes. Put a ZIP in location, for example 90210, or a city and state such as Austin, TX.

Is this an official YellowPages tool? No. This actor is independent and has no affiliation with YellowPages. It reads only data that is publicly listed on the directory.

Example tasks

Preconfigured templates for common scenarios. Open one and press Run, or use it as a starting point:

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.