Yelp Scraper - Extract Business Data, Contacts & Reviews
Pricing
from $3.00 / 1,000 yelp businesses
Yelp Scraper - Extract Business Data, Contacts & Reviews
Scrape Yelp businesses at scale. Extract name, rating, reviews, price range, categories, address, phone, website, hours, GPS coordinates, claimed status, photos count and recent reviews. Supports keyword search mode and direct Yelp URL mode. Residential proxies recommended for production-scale use.
Pricing
from $3.00 / 1,000 yelp businesses
Rating
0.0
(0)
Developer
Khadin Akbar
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
🌟 Yelp Scraper — Extract Business Data, Contacts & Reviews
What Does Yelp Scraper All-in-One Do?
Yelp Scraper All-in-One extracts complete business profiles from Yelp — including contact info, hours, ratings, price range, GPS coordinates, and optional user reviews — using either a keyword search or direct Yelp business URLs. No login, no API key, no cookies required.
Why Use This Yelp Scraper?
- All data in one run — name, address, phone, website, hours, rating, reviews, coordinates, and more
- Dual-input mode — search by keyword + city OR scrape specific Yelp business URLs
- Decoded website URLs — Yelp wraps external links in a redirect; we decode them to give you the real business URL
- Review extraction — pull recent user reviews (author, star rating, date, full text) alongside business data
- CRM-ready output — clean JSON with consistent field names, null for missing data (never undefined)
- No login required — fully public data extraction
What Data Can Yelp Scraper Extract?
| Field | Type | Example |
|---|---|---|
business_name | string | "Joe's Pizza" |
yelp_url | string | "https://www.yelp.com/biz/joes-pizza-new-york" |
yelp_business_id | string | "joes-pizza-new-york" |
rating | number | 4.5 |
review_count | integer | 1247 |
price_range | string | "$$" |
categories | string[] | ["Pizza", "Italian"] |
address | string | "7 Carmine St, New York, NY 10014" |
street_address | string | "7 Carmine St" |
city | string | "New York" |
state | string | "NY" |
zip_code | string | "10014" |
country | string | "US" |
phone | string | "(212) 366-1182" |
website | string | "https://www.joespizzanyc.com" |
hours | object | {"Mon": "11 AM – 11 PM"} |
is_claimed | boolean | true |
description | string | "Award-winning pizza since 1975..." |
photos_count | integer | 342 |
latitude | number | 40.7308 |
longitude | number | -74.0021 |
reviews | array | [{author, rating, date, text}] |
scraped_at | ISO 8601 | "2026-04-13T14:22:10.000Z" |
source_url | string | Yelp page URL |
How to Scrape Yelp — Step-by-Step Tutorial
Mode 1: Search by Keyword + Location
This is the most common mode. Set searchQuery to what you're looking for and location to where.
Example input:
{"searchQuery": "dentists","location": "Chicago, IL","maxResults": 100,"includeReviews": true,"maxReviewsPerBusiness": 5}
This will search yelp.com/search?find_desc=dentists&find_loc=Chicago%2C+IL, paginate through results, visit each business page, and return full business profiles.
Mode 2: Scrape Direct Yelp URLs
Provide specific Yelp business page URLs when you already know which businesses you want to scrape.
Example input:
{"startUrls": [{ "url": "https://www.yelp.com/biz/nobu-new-york-city" },{ "url": "https://www.yelp.com/biz/eleven-madison-park-new-york" },{ "url": "https://www.yelp.com/biz/le-bernardin-new-york" }],"includeReviews": true,"maxReviewsPerBusiness": 10}
Mode 3: Lead Generation (B2B Use Case)
Build a prospect list of local service businesses:
{"searchQuery": "plumbers","location": "Dallas, TX","maxResults": 200,"includeReviews": false}
Then export to CSV and import directly into your CRM.
Running via API
You can trigger this actor from your own code using the Apify API. Export scraped data, schedule runs, monitor progress, or integrate with other tools.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_API_TOKEN' });const run = await client.actor('USERNAME/yelp-scraper-all-in-one').call({searchQuery: 'coffee shops',location: 'Austin, TX',maxResults: 50,includeReviews: true,maxReviewsPerBusiness: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} businesses`);console.log(items[0]);
Pricing
This actor uses pay-per-event pricing — you only pay for results you receive.
| Results | Cost |
|---|---|
| 10 businesses | $0.03 |
| 100 businesses | $0.30 |
| 500 businesses | $1.50 |
| 1,000 businesses | $3.00 |
Price: $0.003 per business scraped (80% goes to the developer, 20% to Apify platform).
Platform compute costs are separate and typically add $0.001–$0.005 per business depending on memory and run time.
Input Parameters Reference
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "restaurants" | What to search for on Yelp |
location | string | "New York, NY" | City, state, or ZIP to search in |
startUrls | array | [] | Direct Yelp business URLs (overrides search) |
maxResults | integer | 50 | Max businesses to scrape (1–1000) |
includeReviews | boolean | true | Extract recent user reviews |
maxReviewsPerBusiness | integer | 5 | Reviews per business (1–20) |
proxyType | string | "datacenter" | Proxy strategy: datacenter / residential / none |
Output Structure
Each scraped business is one JSON record in the output dataset. All fields are present on every record — missing data is returned as null (never undefined or empty string), which makes downstream data processing predictable.
Sample output record:
{"business_name": "Joe's Pizza","yelp_url": "https://www.yelp.com/biz/joes-pizza-new-york","yelp_business_id": "joes-pizza-new-york","rating": 4.5,"review_count": 1247,"price_range": "$","categories": ["Pizza", "Italian"],"address": "7 Carmine St, New York, NY 10014, US","street_address": "7 Carmine St","city": "New York","state": "NY","zip_code": "10014","country": "US","phone": "(212) 366-1182","website": "https://www.joespizzanyc.com","hours": {"Mon": "10:00 AM - 4:00 AM","Tue": "10:00 AM - 4:00 AM","Sun": "10:00 AM - 4:00 AM"},"is_claimed": true,"description": "Award-winning New York-style pizza in the West Village since 1975.","photos_count": 342,"latitude": 40.7308,"longitude": -74.0021,"reviews": [{"author": "Sarah M.","rating": 5,"date": "01/12/2026","text": "Absolute NYC institution. Cash only but worth every penny."}],"scraped_at": "2026-04-13T14:22:10.000Z","source_url": "https://www.yelp.com/biz/joes-pizza-new-york"}
Use Cases
Lead Generation & Sales Prospecting — Build targeted prospect lists of local businesses by category and location. Export phone, website, and address directly into your CRM or outreach tool.
Market Research — Analyze competitor density, rating distributions, price ranges, and category trends in any market.
Local SEO Auditing — Check how businesses appear on Yelp, assess claimed status, and benchmark ratings against local competitors.
Review Monitoring — Pull recent customer reviews for sentiment analysis, customer feedback aggregation, or reputation management workflows.
Real Estate & Site Selection — Map businesses by GPS coordinates to analyze neighborhood commercial density before opening a new location.
AI & LLM Pipelines — Feed structured Yelp data into RAG systems, recommendation engines, or AI agents that need local business context.
Proxy & Anti-Bot Notes
Yelp actively monitors for automated traffic and blocks datacenter IP ranges at a high rate. For reliable results:
- Residential proxies are strongly recommended. Yelp blocks most datacenter and shared proxy IPs. On Apify, enable Residential proxies in your account and set
proxyTypetoresidential. - Without residential proxies, the actor will still run but may hit frequent 403 blocks, especially on search results pages. Individual business URL scraping tends to have better success rates.
- The actor automatically falls back through proxy options: specified group → default proxy → no proxy. If all proxies fail, it retries up to 3 times per URL before logging a failure.
- Stealth measures applied on every request: navigator.webdriver masked, realistic Accept-Language/User-Agent headers, randomized viewport, human-like delays (1–3 seconds between requests).
- CAPTCHA/block detection: the actor checks page titles for access denied patterns and retries with a new session.
On Apify's free plan: datacenter proxies are limited, and Yelp blocks them heavily. Upgrade to a plan with residential proxy access for production-grade reliability.
For very large-scale scraping (10,000+ businesses), spread runs across multiple hours and use residential proxies.
FAQ
Q: Does this actor require a Yelp account or API key? A: No. It scrapes publicly available data without any authentication.
Q: Can I scrape reviews separately from business data?
A: Reviews are bundled into each business record. Set includeReviews: false to skip them and speed up the run.
Q: How fast does it scrape? A: Approximately 2–5 businesses per minute with datacenter proxies. Residential proxies are 30–50% slower.
Q: What happens if Yelp changes its page structure? A: The actor uses multiple CSS selector fallbacks and JSON-LD structured data extraction. Minor site changes typically don't break it. Major redesigns may require updates — check the changelog for maintenance releases.
Q: Can I export the data to CSV or Excel? A: Yes. In Apify Console, go to your run → Storage → Dataset → Export → choose CSV, Excel, or JSON.
Q: Is this legal? A: This actor scrapes publicly available data displayed to any visitor on Yelp.com. It does not bypass authentication, access private data, or violate user privacy. Users are responsible for ensuring their use complies with Yelp's Terms of Service and applicable laws in their jurisdiction.
Legal Disclaimer
This actor is intended for lawful data collection from publicly available sources. Users are responsible for compliance with applicable laws, Yelp's Terms of Service, and data protection regulations including GDPR and CCPA. The actor does not access private or authenticated data. Use responsibly.
Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools. Built and maintained by USERNAME.