Yelp Scraper — Leads, Reviews & Contacts
Pricing
from $4.00 / 1,000 results
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
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
maxResultscap 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 problem | How the Yelp Scraper handles it |
|---|---|
| No free Yelp API | Pay-per-result — no subscription, no minimum |
| Fusion API returns 3-review snippets | Extract up to 50 full reviews per business |
| Yelp blocks datacenter IPs | Residential proxy group enabled by default |
| Duplicate results across search terms | Global deduplication keyed by canonical URL |
| Geographic limits on Fusion API | Scrape 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 ApifyClientclient = 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.
| Tier | Price | Best for |
|---|---|---|
| Free trial | First results free | Quality check |
| Pay-per-result | ~$4.00 / 1,000 businesses | Ongoing 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)
| Job | Businesses | Estimated cost |
|---|---|---|
| 50 restaurants in one city | 50 | ~$0.20 |
| 500 plumbers across Texas | 500 | ~$2.00 |
| 5,000 dentists across a state | 5,000 | ~$20 |
| 50,000 nationwide leads | 50,000 | ~$200 |
Input
Open the Input tab on the Actor page for the interactive form. Main fields:
| Field | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | — | What to search for (restaurants, plumbers, dentists) |
locations | string[] | — | Cities, states, or ZIPs (San Francisco, CA, 94105) |
startUrls | string[] | — | Direct Yelp business URLs — skips search |
maxResults | integer | 50 | Max businesses per search term/location pair |
maxReviewsPerBusiness | integer | 5 | Max reviews per business (0 to skip reviews) |
reviewSortBy | string | newest | newest, oldest, highest_rating, lowest_rating, elites |
proxyConfiguration | object | Residential | Proxy config — residential strongly recommended |
webhookUrl | string | — | Optional 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)
| businessName | phone | address | website | rating | reviewCount | categories | priceRange |
|---|---|---|---|---|---|---|---|
| Desnudo Coffee | (424) 400-1857 | 2505 Webberville Rd, Austin, TX | desnudocoffee.com | 4.7 | 331 | Coffee 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_ratingfor 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
Is scraping Yelp legal?
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
proxyConfigurationis set to theRESIDENTIALgroup (default) - Datacenter proxies will not work against Yelp
Empty review arrays
- Yelp occasionally A/B-tests review layouts; lower
maxReviewsPerBusinessto 5–10 and retry - Some businesses genuinely have 0 reviews
Wrong country results
- Yelp may redirect US searches to a country version. Use
startUrlswith 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