Yelp Scraper — Leads, Reviews & Contacts avatar

Yelp Scraper — Leads, Reviews & Contacts

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Yelp Scraper — Leads, Reviews & Contacts

Yelp Scraper — Leads, Reviews & Contacts

Extract Yelp business listings: phone, website, address, reviews, ratings, hours, categories. Build B2B lead lists and monitor competitors.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

Daniel Dimitrov

Daniel Dimitrov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

39 minutes ago

Last modified

Categories

Share

The Yelp Scraper extracts business listings, contact info, reviews, ratings, and operating hours from Yelp — no Yelp Fusion API key, no coding, no subscriptions. Enter search terms and locations (or paste direct business URLs) and the Yelp Scraper returns a clean, deduplicated dataset of every matching business in JSON, CSV, or Excel. Built for B2B lead generation, local-SEO research, competitor analysis, and review monitoring.

This Apify Actor scrapes Yelp pages using a fast HTTP-only crawler with residential proxy support, automatic retries, and global result deduplication so the same business is never billed twice.

Features of the Yelp Scraper

  • Search Yelp by keyword + location — any city, state, or ZIP code
  • Direct Yelp business URL scraping — paste URLs and skip search
  • Full business details — name, phone, website, address, rating, review count, categories, price range, hours, amenities, "About the Business"
  • Extract Yelp reviews — rating, date, text, author, friend count, photo count, useful/funny/cool votes
  • Sort reviews — newest, oldest, highest rating, lowest rating, or Yelp Elite only
  • Pagination handled automatically — respects your maxResults cap across pages
  • Business deduplication — the same Yelp business is never returned twice across searches
  • Residential proxy rotation — Yelp blocks datacenter IPs; residential is the default
  • Webhook notifications — optional POST to your endpoint when the run completes
  • Export — JSON, CSV, Excel, HTML, or XML via Apify datasets

Why use this Yelp Scraper

Yelp has no free public API for bulk data. The official Yelp Fusion API costs from $229/month, caps you at 500 calls/day on the lowest paid tier, and returns truncated review text. This Yelp Scraper solves all four problems:

Yelp data problemHow the Yelp Scraper handles it
No free Yelp APIPay-per-result — no subscription, no minimum
Fusion API returns 3-review snippetsExtract up to 50 full reviews per business
Yelp blocks datacenter IPsResidential proxy group enabled by default
Duplicate results across search termsGlobal deduplication keyed by canonical URL
Geographic limits on Fusion APIScrape any Yelp domain: .com, .ie, .co.uk, .ca, more

How to use the Yelp Scraper (tutorial)

Step 1 — Open the Actor

Click Try for free on this page to open the Yelp Scraper in the Apify Console.

Step 2 — Enter search terms

Type what you're looking for in Search Terms — for example restaurants, plumbers, dentists, hair salons. Add one or more.

Step 3 — Enter locations

Add cities, states, or ZIPs in Locations — for example San Francisco, CA, 94105, Manhattan NY, Austin, TX.

Step 4 — (Optional) Paste direct URLs

If you already have Yelp business URLs, paste them into Start URLs to skip the search step entirely.

Step 5 — Set limits and start

Set Max Results per Search (default 50), Max Reviews per Business (default 5), and click Start. Results stream into the dataset as they scrape. Export from the Dataset tab in the format you need.

Call the Yelp Scraper from code

JavaScript:

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('YOUR_USERNAME/yelp-scraper').call({
searchTerms: ['restaurants'],
locations: ['San Francisco, CA'],
maxResults: 50,
maxReviewsPerBusiness: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('YOUR_USERNAME/yelp-scraper').call(run_input={
'searchTerms': ['plumbers'],
'locations': ['Austin, TX'],
'maxResults': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items

CLI:

$apify call YOUR_USERNAME/yelp-scraper -i '{"searchTerms":["coffee"],"locations":["Seattle, WA"]}'

Pricing — how much does the Yelp Scraper cost

The Yelp Scraper is priced per result (pay-per-event). You pay only for each business returned — reviews on each business are free.

TierPriceBest for
Free trialFirst results freeQuality check
Pay-per-result~$4.00 / 1,000 businessesOngoing scraping, any volume

Residential proxy bandwidth and Apify platform compute are included. No monthly fee, no setup cost, no per-seat pricing.

Rough volume examples (at $4.00 / 1,000 businesses)

JobBusinessesEstimated cost
50 restaurants in one city50~$0.20
500 plumbers across Texas500~$2.00
5,000 dentists across a state5,000~$20
50,000 nationwide leads50,000~$200

Input

Open the Input tab on the Actor page for the interactive form. Main fields:

FieldTypeDefaultDescription
searchTermsstring[]What to search for (restaurants, plumbers, dentists)
locationsstring[]Cities, states, or ZIPs (San Francisco, CA, 94105)
startUrlsstring[]Direct Yelp business URLs — skips search
maxResultsinteger50Max businesses per search term/location pair
maxReviewsPerBusinessinteger5Max reviews per business (0 to skip reviews)
reviewSortBystringnewestnewest, oldest, highest_rating, lowest_rating, elites
proxyConfigurationobjectResidentialProxy config — residential strongly recommended
webhookUrlstringOptional POST on run completion

Output example

The Yelp Scraper returns one record per business. Reviews are nested inside each business record.

{
"businessName": "Desnudo Coffee",
"phone": "(424) 400-1857",
"address": "2505 Webberville Rd, Austin, TX, 78702",
"website": "http://www.desnudocoffee.com",
"rating": 4.7,
"reviewCount": 331,
"categories": ["Coffee Roasteries"],
"priceRange": "$$",
"hours": {
"Monday": "7:00 AM - 2:00 PM",
"Tuesday": "7:00 AM - 2:00 PM",
"Wednesday": "7:00 AM - 2:00 PM",
"Thursday": "7:00 AM - 2:00 PM",
"Friday": "7:00 AM - 2:00 PM",
"Saturday": "7:30 AM - 2:30 PM",
"Sunday": "7:30 AM - 2:30 PM"
},
"mapUrl": "https://www.google.com/maps/search/?api=1&query=30.263001,-97.713647",
"amenities": [
"Offers delivery",
"Offers take-out",
"Wheelchair accessible",
"Accepts credit cards",
"Good for working",
"Street parking",
"Covered outdoor seating",
"Bike parking"
],
"about": "Charming coffee trailer in East Austin with farm-to-trailer brews and vibrant music.",
"url": "https://www.yelp.com/biz/desnudo-coffee-austin",
"reviews": [
{
"rating": 5,
"date": "2026-04-14",
"text": "Wonderful coffee shop run by the sweetest brothers...",
"author": "Shannon S.",
"authorFriendCount": 0,
"authorPhotoCount": 4,
"usefulCount": 0,
"funnyCount": 0,
"coolCount": 0
}
],
"scrapedAt": "2026-04-24T04:14:34.238Z"
}

Output preview (CSV)

businessNamephoneaddresswebsiteratingreviewCountcategoriespriceRange
Desnudo Coffee(424) 400-18572505 Webberville Rd, Austin, TXdesnudocoffee.com4.7331Coffee Roasteries$$

Use cases for the Yelp Scraper

  • B2B lead generation — pull prospect lists with verified phone numbers, websites, and addresses for any industry in any city
  • Competitor analysis — monitor rival businesses' Yelp ratings, review counts, and category tags over time
  • Review monitoring — track customer sentiment; sort by lowest_rating for reputation management alerts
  • Local SEO research — analyze category saturation, average ratings, and price ranges in a given market
  • Sales outreach — power cold email and cold call lists with enriched business data
  • Market research — segment local markets by category density, review volume, or rating distribution

Integrations

The Yelp Scraper dataset connects to:

  • Zapier, Make, n8n — trigger workflows when a run finishes (use webhookUrl)
  • Google Sheets, Airtable, HubSpot, Salesforce — through official Apify integrations
  • Webhooks, REST API, JS/Python clients — programmatic control via the Apify API

Schedule Yelp Scraper runs

Open the Actor page, click Schedule, and pick a cron interval. Use scheduled runs to refresh lead lists weekly, alert on new negative reviews daily, or run monthly competitor scans. See the Apify Schedules docs.

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
await client.schedules().create({
actions: [{
type: 'RUN_ACTOR',
actorId: 'YOUR_USERNAME/yelp-scraper',
runInput: { body: JSON.stringify({ searchTerms: ['restaurants'], locations: ['San Francisco, CA'] }) },
}],
cronExpression: '0 9 * * 1',
});

Other Apify Actors you may like

  • Threads Scraper — Posts, Profiles & Metrics — scrape Meta Threads profiles, posts, hashtags, and search with engagement metrics
  • Google Maps Scraper — extract business leads straight from Google Maps
  • Yellow Pages Scraper — alternative local-business data source
  • Instagram Scraper — pull profiles and posts for social-lead enrichment
  • LinkedIn People Scraper — decision-maker contact data for B2B outreach

FAQ

The Yelp Scraper only extracts publicly available data from business listing pages — the same data a visitor sees without logging in. It does not access private messages, Yelp-for-Business dashboards, or data behind authentication. Always comply with Yelp's Terms of Service and applicable data-protection laws.

Yelp Fusion API vs Yelp Scraper — which should I use?

The Yelp Fusion API starts at $229/month, limits you to 500 requests/day on the lowest paid tier, and returns only 3 truncated review snippets per business. The Yelp Scraper is pay-per-result (no monthly fee), has no daily cap, and extracts full review text up to 50 reviews per business. For anything beyond a light hobby project, the scraper is cheaper and more complete.

Do I need a Yelp account or API key?

No. The Yelp Scraper works without any Yelp account, developer key, or sign-up. Just enter search terms or URLs and run.

Can I scrape all reviews for a Yelp business?

Yes. Set maxReviewsPerBusiness up to 50 per business. Use reviewSortBy: "lowest_rating" to surface negative reviews first for reputation monitoring.

How do I avoid getting blocked by Yelp?

Yelp has aggressive bot detection. The Yelp Scraper enables residential proxy rotation by default, which is the only reliable way to scrape Yelp at scale. Datacenter proxies will produce 403 errors.

How do I scrape Yelp reviews without coding?

Open the Yelp Scraper in the Apify Console, enter search terms and locations, set maxReviewsPerBusiness to the number of reviews you want, and click Start. No code required.

Can the Yelp Scraper scrape non-US Yelp sites?

Yes. The scraper handles any Yelp domain — .com, .ca, .co.uk, .ie, .fr, and more. Just paste URLs from the target country into startUrls, or use location terms recognized by that country's Yelp.

How do I export Yelp results as CSV or Excel?

After the run finishes, open the Dataset tab and click Export. Choose JSON, CSV, Excel, HTML, or XML. The dataset includes preset views (Business Overview, B2B Leads Export, Full Details + Reviews).

Can I schedule the Yelp Scraper to run automatically?

Yes. Use Schedules in the Apify Console to run the Yelp Scraper on any cron expression — daily, weekly, monthly, or custom. See the code example above.

How much does it cost to scrape 10,000 Yelp businesses?

At $4.00 per 1,000 businesses, scraping 10,000 Yelp listings costs ~$40. Reviews extracted for those businesses are included in the per-business price.

Troubleshooting

403 Forbidden errors

  • Confirm proxyConfiguration is set to the RESIDENTIAL group (default)
  • Datacenter proxies will not work against Yelp

Empty review arrays

  • Yelp occasionally A/B-tests review layouts; lower maxReviewsPerBusiness to 5–10 and retry
  • Some businesses genuinely have 0 reviews

Wrong country results

  • Yelp may redirect US searches to a country version. Use startUrls with the exact Yelp URL to pin the result to one country

Support

  • Review the Troubleshooting section above
  • Read the Apify Actor development docs
  • Open an issue on GitHub or contact the developer through the Actor page

License

MIT