Yelp Business Scraper
Pricing
from $0.70 / 1,000 businesses
Yelp Business Scraper
Scrape Yelp businesses by search term and location, or from Yelp links: name, rating, reviews, price, categories, full address, coordinates, phone, website, hours, claimed status, photo count and amenities. Gets past Yelp's 240-result limit by splitting the map. Pay per business.
Pricing
from $0.70 / 1,000 businesses
Rating
0.0
(0)
Developer
LMB Technology
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Turn any Yelp search into a clean list of businesses: name, phone, website, full address, map position, rating, review count, price, categories, opening hours, claimed status, photo count and amenities. Type what you look for (plumbers, pizza, dentists) and where (Fort Myers, FL), or paste Yelp links. No Yelp account and no Yelp API key.
Built for lead generation and market research: build call lists of local businesses, find unclaimed Yelp pages, compare competitors in a city, or map every coffee shop in a metro area. Yelp shows at most 240 results per search; this scraper can split a search into smaller map areas to collect thousands of businesses from one city, without duplicates.
What you get
For every business (one row each):
- Basics: name, Yelp ID, Yelp URL, rating, review count, price level, categories (names and ids), a short review quote from the search page.
- Contact and address (with details, on by default): phone, website, street, city, state, ZIP code, country, full address, neighborhoods, service areas for businesses that come to you.
- Map and hours: latitude and longitude, opening hours for each day of the current week, time zone, open-now flag.
- Profile (with details): claimed or not, permanently closed or not, number of photos, main photo, amenities ("Offers delivery", "Wheelchair accessible", "Accepts Zelle", "Free Wi-Fi", "Parking: lot"...), specialties text, year established, licenses checked by Yelp, Yelp Guaranteed badge.
- Where it came from: search term, location, rank in Yelp's results, the search link.
- Optional review highlights: the short quoted phrases Yelp shows on business pages, with how many reviews mention them.
Errors (a location Yelp does not know, a business link that no longer exists) come out as separate error rows that are not charged, and the rest of the run continues.
What it does not do
- Full review texts. You get the review quote from the search list and, if you want, Yelp's review highlights. For complete reviews use a dedicated Yelp reviews scraper.
- More than 240 results per search without splitting. That limit is Yelp's. Turn on "Split large searches" to go past it. A split search returns businesses in map order, not in Yelp's ranking.
- Phone and website without details. The search list only has name, rating, reviews, price, categories, street, city, coordinates and hours. Phone, website, state and ZIP code come from each business's details (the
business-detailsevent). - Emails or owner names. Yelp does not publish them.
- Logging in, posting or messaging businesses. The scraper only reads public pages.
- History. Hours are this week's (including holiday hours), ratings and counts are as of the run.
Yelp changes its website from time to time. The scraper is tested every day; if Yelp blocks or changes something, runs report clear error rows instead of silently returning nothing, and fixes are published quickly.
Input
| Field | Default | Meaning |
|---|---|---|
searchTerms | What to search for, one per line (plumbers, pizza). Leave empty to list everything in the locations. | |
locations | Where: City, ST, a neighborhood with its city, or a ZIP code. Every term is searched in every location. | |
startUrls | Yelp search links (filters in the link are kept) and business links. Any Yelp country site. | |
maxResultsPerSearch | 100 | Businesses per search term + location (or per search link). |
includeDetails | true | Open each business page for phone, website, ZIP, claimed status and the rest. |
splitLargeSearches | false | Go past Yelp's 240-result limit by splitting the map. |
category | Yelp category alias, e.g. plumbing, italian, dentists. | |
priceLevels | all | Keep only 1 to 4 ($ to $$$$). |
minRating | any | Keep only 3, 3.5, 4 or 4.5 stars and up. |
openNow | false | Keep only businesses open at the time of the run, in their own time zone. |
sortBy | recommended | recommended, rating (highest rated) or review_count (most reviewed). |
includeReviewHighlights | false | Add Yelp's review highlights (needs details, no extra charge). |
deduplicateAcrossSearches | true | Save each business once per run even if several searches find it. |
maxConcurrency | 10 | Pages loaded at the same time. |
proxyConfiguration | Apify datacenter proxy | With the default, the run switches to residential proxies by itself if Yelp starts rate-limiting the datacenter IPs. |
Filters apply to searches. Business links are always saved as they are.
Example: a call list of plumbers
{"searchTerms": ["plumbers", "water heater repair"],"locations": ["Fort Myers, FL", "Cape Coral, FL", "Naples, FL"],"maxResultsPerSearch": 100}
Businesses found by two searches are saved once (see deduplicateAcrossSearches).
Example: every pizza place in a city
{"searchTerms": ["pizza"],"locations": ["Austin, TX"],"maxResultsPerSearch": 2000,"splitLargeSearches": true,"includeDetails": false}
Without details this is the cheapest way to map a market: name, rating, reviews, price, categories, street, city, coordinates and hours for each place.
Example: well-rated restaurants open right now
{"searchTerms": ["restaurants"],"locations": ["Mission District, San Francisco, CA"],"openNow": true,"minRating": "4","priceLevels": ["1", "2"],"maxResultsPerSearch": 50}
Example: from Yelp links
{"startUrls": [{ "url": "https://www.yelp.com/search?find_desc=dentists&find_loc=Denver%2C+CO&sortby=review_count" },{ "url": "https://www.yelp.com/biz/pedrosos-pizza-austin-6" }],"maxResultsPerSearch": 50}
Output example
{"type": "business","yelpId": "_Y5GEb-PJvogHYUYuVJtmw","name": "Pedroso's Pizza","url": "https://www.yelp.com/biz/pedrosos-pizza-austin-6","rating": 4.7,"reviewCount": 301,"price": "$$","categories": ["Pizza"],"categoryAliases": ["pizza"],"phone": "(737) 600-1107","website": "https://www.pedrosospizza.com","address": "2207 Justin Ln, Ste D","city": "Austin","state": "TX","postalCode": "78757","country": "US","fullAddress": "2207 Justin Ln, Ste D, Austin, TX 78757, United States","neighborhoods": ["Allandale", "Brentwood"],"latitude": 30.344536,"longitude": -97.736291,"hours": { "Mon": "11:00 AM - 10:00 PM", "Tue": "11:00 AM - 10:00 PM", "Wed": "11:00 AM - 10:00 PM", "Thu": "11:00 AM - 10:00 PM", "Fri": "11:00 AM - 11:00 PM", "Sat": "11:00 AM - 11:00 PM", "Sun": "11:00 AM - 10:00 PM" },"timezone": "America/Chicago","isOpenNow": true,"isClaimed": true,"isClosed": false,"photosCount": 448,"photoUrl": "https://s3-media0.fl.yelpcdn.com/bphoto/p6VvfynGK2WdGOL6GKeAsg/o.jpg","amenities": ["Offers delivery", "Offers take-out", "Wheelchair accessible", "Outdoor seating"],"specialties": "Slice Shop and take out spot serving N.Y style, Grandma, Sicilian and Classic American Pies.","yearEstablished": null,"menuUrl": null,"serviceArea": null,"licenses": [],"isYelpGuaranteed": false,"reviewSnippet": "This by far is the BEST pizza place in Austin...","searchTerm": "pizza","searchLocation": "Austin, TX","searchUrl": "https://www.yelp.com/search?find_desc=pizza&find_loc=Austin%2C+TX","rank": 1,"mapArea": null,"alias": "pedrosos-pizza-austin-6","detailsScraped": true,"scrapedAt": "2026-10-21T03:42:34.246Z"}
Download the results as JSON, CSV, Excel or HTML from the run's Output tab. The dataset has three table views: Overview (contact details), Map and hours and Profile. The RUN-SUMMARY record in the key-value store shows, per search, how many results Yelp has, how many were saved and any error.
Pricing
You pay per result, not for compute time or proxies:
| Event | When | Price |
|---|---|---|
| Business | Each business saved | see the Pricing tab |
| Business detail | Each business saved with details (includeDetails, and business links) | see the Pricing tab |
| Actor start | Once per run | Apify's standard small start fee |
Error rows are free. Filtered-out businesses (rating, open now) are free. Duplicates removed by deduplicateAcrossSearches are free. If the details of a business cannot be loaded, the business is saved with its search data, a detailsError note, and only the business event is charged.
Set Maximum cost per run in the run options to cap spending: the scraper stops cleanly when it is reached and keeps everything already saved.
Tips
- Always add the state to locations (
Springfield, IL, notSpringfield). - For lead lists, keep details on: phone and website only come from business pages.
isClaimed: falsemarks businesses that have not claimed their Yelp page, a common target for marketing agencies.- For a whole city, use Split large searches with a high maximum and details off first; then run the business links you care about with details.
- Use the
yelpIdto merge results from several runs. - The same business can show up with a different rank in another search; ranks are per search.
Is it legal to scrape Yelp?
This scraper collects public business information that Yelp shows to every visitor without logging in. It does not collect personal data about reviewers. Yelp's terms of service do not allow automated access, and laws differ by country, so check your use case (and talk to a lawyer when in doubt) before using the data, especially for outreach, and follow the rules for cold calls and emails where you live. This scraper is not affiliated with, endorsed by or connected to Yelp.
Support
Found a problem or need a field? Open an issue on the Issues tab with the run link and the input you used. Issues are answered within a few days.