Yelp Business Leads & Reviews Scraper avatar

Yelp Business Leads & Reviews Scraper

Pricing

from $37.82 / 1,000 business results

Go to Apify Store
Yelp Business Leads & Reviews Scraper

Yelp Business Leads & Reviews Scraper

Scrape Yelp business listings by keyword and location. Get name, address, phone, website, categories, rating, review count, price level, hours and review highlights, plus optional AI lead scoring. Export to JSON, CSV or Excel.

Pricing

from $37.82 / 1,000 business results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Yelp Business Leads & Reviews Scraper

Yelp Business Leads & Reviews Scraper

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

{
"searchTerm": "plumbers",
"location": "Austin, TX",
"businessName": "Capital City Plumbing and Drain",
"alias": "capital-city-plumbing-and-drain-leander",
"yelpUrl": "https://www.yelp.com/biz/capital-city-plumbing-and-drain-leander",
"categories": ["Water Heater Installation/Repair", "Plumbing"],
"primaryCategory": "Water Heater Installation/Repair",
"rating": 4.8,
"reviewCount": 231,
"priceLevel": null,
"address": "180 Antlers Trail",
"neighborhoods": [],
"serviceArea": null,
"phone": "(512) 630-0852",
"isAd": true,
"rankPosition": 2,
"website": "http://capitalcityplumbing.services",
"hours": [
"Mon Open 24 hours", "Tue Open 24 hours", "Wed Open 24 hours",
"Thu Open 24 hours", "Fri Open 24 hours", "Sat Open 24 hours", "Sun Open 24 hours"
],
"verifiedLicense": true,
"photoCount": 48,
"businessDescription": "The pros at Capital City Plumbing & Drain are ready to take care of all your commercial plumbing needs. Our commercial plumber in Austin, TX can complete repair and remodeling projects of all sizes...",
"reviewHighlights": ["Get pricing & availability."],
"reviewHighlightCount": 1,
"aiLeadScore": 85,
"aiLeadTier": "Hot",
"aiLeadRationale": "High rating and review count indicate strong customer satisfaction and visibility.",
"source": "yelp.com",
"observedAt": "2026-08-20T01:18:47.544Z"
}

The most complete Yelp business scraper available. It returns every listing field Yelp exposes for a search (name, categories, rating, review count, price level, address, neighborhoods and phone), plus an optional detail pass that adds website, opening hours, verified license, photo count, business description and review highlights, plus an optional AI lead score, and gives you six filters to target exactly the businesses you need.

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

Apify Coverage Output Billing

Table of contents

What it does

Give the actor one or more search terms (a category or business type) and one or more locations (city and state, or a ZIP code). It runs each term in each location on Yelp, paginates the search results, and writes one normalized record per business to the run dataset. Every business comes back with its name, Yelp URL, categories, star rating, review count, price level, address, neighborhoods and phone when Yelp lists it.

Two optional add-ons enrich each business further:

  • Contact enrichment opens each business page and adds the phone, website, opening hours by day, verified license flag, photo count, business description and review highlights. This is the lead data most people want. It is off by default and charged only when a phone or website is found.
  • AI lead score rates each business as a sales prospect from 0 to 100, assigns a tier (Hot, Warm, Cold) and gives a one-line rationale. Off by default, charged only when a usable score is returned.

Missing values are returned as null, never invented. Anti-bot handling is fully internal, so you do not configure proxies or supply any login.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the 10 top coffee shops in Seattle.

{
"searchTerms": ["coffee"],
"locations": ["Seattle, WA"],
"maxBusinesses": 10,
"sortBy": "Most Reviewed"
}

To get full contact details and AI lead scores, add the two add-ons (a paid Apify plan is required for add-ons):

{
"searchTerms": ["plumbers", "electricians"],
"locations": ["Austin, TX"],
"maxBusinesses": 50,
"withContacts": true,
"withLeadScore": true
}

Input reference

FieldTypeRequiredExampleDescription
searchTermsarray of stringsyes["plumbers"]Categories or business types to search. Each term is searched in each location.
locationsarray of stringsyes["Austin, TX"]Places to search: city and state, or a ZIP code. Each location is searched with every term.
maxBusinessesintegerno10Maximum businesses to collect across the whole run (all terms and locations combined). Free plans are capped at 10.
sortByenumnoMost ReviewedResult order: Recommended, Highest Rated, Most Reviewed, or Distance.
priceLevelsarray of stringsno["1","2"]Keep only these price levels: 1 = $, 2 = $$, 3 = $$$, 4 = $$$$. Empty for all.
openNowbooleannofalseOnly return businesses open at run time.
minRatingintegerno0Keep only businesses rated at least this many stars (1 to 5). 0 disables the filter.
withContactsbooleannofalsePaid add-on, off by default. Fetch each business page for phone, website, hours, license, photos, description and review highlights. Charged only on a phone or website hit.
withLeadScorebooleannofalsePaid add-on, off by default. AI lead score, tier and rationale per business. Charged only on a usable score.

Terms and locations combine as a cross product: two terms and two locations run four searches. withContacts and withLeadScore are disabled on free Apify plans.

Output reference

One dataset item per business. Types: string, number, integer, boolean, string[], or null when a value is absent.

FieldTypeDescription
searchTermstringSearch term that produced this business.
locationstringLocation that was searched.
businessNamestringBusiness name.
aliasstringYelp business alias (URL slug).
yelpUrlstringFull Yelp business page URL.
categoriesstring[]All Yelp categories for the business.
primaryCategorystringFirst listed category.
ratingnumberStar rating, 1 to 5 (may be 0 for some sponsored listings).
reviewCountintegerNumber of reviews.
priceLevelstringPrice level $ to $$$$, or null.
addressstringStreet address as listed, or null.
neighborhoodsstring[]Neighborhoods, when listed.
serviceAreastringService area text for mobile or at-home businesses, or null.
phonestringPhone number. Filled from the search listing, and from the detail page when contact enrichment runs.
isAdbooleanWhether the listing was returned in a sponsored slot.
rankPositionintegerPosition of the business in the collected result set.
websitestringBusiness website (contact enrichment). null otherwise.
hoursstring[]Opening hours by day (contact enrichment).
verifiedLicensebooleanYelp verified business license (contact enrichment).
photoCountintegerNumber of photos on the business page (contact enrichment).
businessDescriptionstringBusiness self-description (contact enrichment).
reviewHighlightsstring[]Top review highlight quotes (contact enrichment).
reviewHighlightCountintegerNumber of review highlights captured.
aiLeadScoreintegerAI lead score 0 to 100 (AI add-on).
aiLeadTierstringAI lead tier: Hot, Warm, or Cold (AI add-on).
aiLeadRationalestringOne-line rationale for the score (AI add-on).
sourcestringAlways yelp.com.
observedAtstringISO 8601 timestamp when the record was collected.
errorstringnull on success. On a failed run a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"searchTerms":["plumbers"],"locations":["Austin, TX"],"maxBusinesses":3,"withContacts":true,"withLeadScore":true}):

{
"searchTerm": "plumbers",
"location": "Austin, TX",
"businessName": "Radiant Plumbing & Air Conditioning - Austin",
"alias": "radiant-plumbing-and-air-conditioning-austin-austin",
"yelpUrl": "https://www.yelp.com/biz/radiant-plumbing-and-air-conditioning-austin-austin",
"categories": ["Plumbing", "Heating & Air Conditioning/HVAC", "Water Heater Installation/Repair"],
"primaryCategory": "Plumbing",
"reviewCount": 849,
"address": "901 Reinli St",
"phone": "(512) 690-4932",
"website": "https://radiantplumbing.com/austin/",
"hours": ["Mon Open 24 hours", "Tue Open 24 hours", "Wed Open 24 hours", "Thu Open 24 hours", "Fri Open 24 hours", "Sat Open 24 hours", "Sun Open 24 hours"],
"verifiedLicense": true,
"photoCount": 128,
"reviewHighlights": [
"came out the next day and was very thorough and efficient in fixing the marked-up areas.",
"I would highly recommend Radiant to anyone - Ian, Woody, Joe, and the install crew are top-notch!"
],
"reviewHighlightCount": 3,
"aiLeadScore": 85,
"aiLeadTier": "Hot",
"aiLeadRationale": "High review volume and positive feedback indicate strong customer satisfaction and visibility.",
"source": "yelp.com",
"observedAt": "2026-08-20T01:19:35.003Z"
}

Run via API and CLI

Start a run and 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~yelp-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["coffee"],"locations":["Seattle, WA"],"maxBusinesses":25,"sortBy":"Most Reviewed"}'

Start a run asynchronously with the paid add-ons:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~yelp-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["dentists"],"locations":["Miami, FL"],"maxBusinesses":100,"withContacts":true,"withLeadScore":true}'

Apify CLI:

apify call scrapers_lat/yelp-scraper \
--input '{"searchTerms":["law firms"],"locations":["Chicago, IL"],"maxBusinesses":50}'

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.

Billing and limits

  • Pay per result. You are charged one result event per business returned. A one-time actor-start event is charged when a run begins.
  • Add-ons are opt-in. Contact enrichment (contacts) and AI lead score (ai_lead_score) are off by default. Each is charged only when it produces data: contacts when a phone or website is found, ai_lead_score when the AI returns a usable score. Both are disabled on free Apify plans.
  • No charge on failure. If a run errors or matches nothing, the actor writes a single item with a populated error field and does not charge result or any add-on. 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 businesses per run and cannot use the paid add-ons. Upgrade for higher maxBusinesses.
  • Tiered pricing. Per-event prices step down across Apify plan tiers. See the pricing tab for the current rates.

FAQ and troubleshooting

A run returned 0 businesses. Why? The term and location combination matched nothing, or the location was not recognized. Try a broader term, a nearby larger city, or a City, ST format. Zero-result runs are not charged.

Why is phone or website empty on some records? Yelp does not always list a phone in search results, and website is only filled when contact enrichment is enabled and the business has one. Businesses without a public phone or website return null for those fields.

Why does rating show 0 on some businesses? A few sponsored listings return a 0 rating in the search feed even though they have reviews. reviewCount is still accurate. Enable contact enrichment for the fuller profile.

How do I get emails and full contact details? Enable withContacts. It adds phone, website, opening hours, license, photo count, description and review highlights from each business page. It is charged only when a phone or website is found.

How is the AI lead score calculated? When withLeadScore is on, the actor sends the business profile (categories, rating, review volume, reachability) to an AI model that returns a 0 to 100 score, a tier and a one-line rationale. It is charged only when a usable score comes back.

Do I need a proxy or a Yelp login? No. Anti-bot handling is fully internal. You never configure a proxy or supply any cookies or credentials.

Is this an official Yelp tool? No. This actor is independent and not affiliated with Yelp. It reads only data that is publicly visible on Yelp business and search pages.

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.


Independent tool, not affiliated with Yelp. Accesses only publicly available Yelp data. Use in accordance with Yelp's terms of service.