Yelp Business Scraper avatar

Yelp Business Scraper

Pricing

Pay per usage

Go to Apify Store
Yelp Business Scraper

Yelp Business Scraper

Extract business listings, ratings, reviews, contact info, and hours from Yelp. Export to JSON, CSV, Excel.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Glass Ventures

Glass Ventures

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extract business listings, ratings, reviews, contact info, hours, and location data from Yelp search results and business pages.

What does Yelp Business Scraper do?

Yelp Business Scraper is a powerful data extraction tool that collects structured business information from Yelp.com. It can scrape search results for any business type in any location, or extract detailed data from individual business pages.

The actor navigates Yelp search results and business detail pages, extracting comprehensive data including business name, rating, review count, price range, categories, full address, phone number, website, GPS coordinates, business hours, photos, and optionally the top reviews. All data is exported in a clean, structured format.

Whether you need restaurant data for market analysis, local business contact info for lead generation, or competitor research data, this scraper handles pagination automatically and delivers results in JSON, CSV, or Excel format.

Use Cases

  • Market researchers -- Analyze business density, ratings, and pricing across locations to identify market opportunities
  • Data analysts -- Build datasets of local businesses for geographic analysis, sentiment analysis, or trend research
  • Business owners -- Monitor competitors' ratings, review counts, and pricing in your area
  • Lead generation -- Extract business contact info (phone, website, address) for outreach campaigns
  • Developers -- Feed Yelp business data into applications, dashboards, or CRM systems via API

Features

  • Search by business type and location (e.g., "pizza" in "Chicago, IL")
  • Scrape individual business pages via direct URLs
  • Extract JSON-LD structured data for maximum accuracy
  • Optional review extraction from business pages
  • Automatic pagination through search results
  • Proxy support with automatic session rotation
  • Handles anti-bot detection with session management
  • Exports to JSON, CSV, Excel, or connect via API
  • Resume support for interrupted runs

How much will it cost?

ResultsEstimated Cost
100~$0.50
1,000~$4.00
10,000~$35.00
Cost ComponentPer 1,000 Results
Platform compute~$1.50
Proxy (residential)~$2.50
Total~$4.00

How to use

  1. Go to the Yelp Business Scraper page on Apify Store
  2. Click "Start" or "Try for free"
  3. Enter search terms (e.g., "restaurants") and locations (e.g., "San Francisco, CA"), or paste Yelp URLs directly
  4. Set the maximum number of items to scrape
  5. Click "Start" and wait for the results

Input parameters

ParameterTypeDescriptionDefault
startUrlsarrayYelp URLs to scrape (search or business pages)-
searchTermsarrayBusiness types or keywords to search for-
locationsarrayLocations to search in (e.g., "New York, NY")San Francisco, CA
includeReviewsbooleanExtract top reviews from each business pagefalse
maxItemsnumberMaximum number of businesses to scrape100
maxConcurrencynumberParallel page processing limit8
proxyConfigobjectProxy settings (residential recommended)Apify Proxy

Output

The actor produces a dataset with the following fields:

{
"businessName": "House of Prime Rib",
"url": "https://www.yelp.com/biz/house-of-prime-rib-san-francisco",
"rating": 4.5,
"reviewCount": 8234,
"priceRange": "$$$",
"categories": ["Steakhouses", "American (Traditional)"],
"address": "1906 Van Ness Ave",
"city": "San Francisco",
"state": "CA",
"zipCode": "94109",
"phone": "(415) 885-4605",
"website": "https://houseofprimerib.net",
"latitude": 37.7935,
"longitude": -122.4225,
"hours": {
"Monday": "4:00 PM - 10:00 PM",
"Tuesday": "4:00 PM - 10:00 PM"
},
"photos": ["https://s3-media0.fl.yelpcdn.com/bphoto/..."],
"isOpen": true,
"claimedStatus": true,
"scrapedAt": "2026-04-23T10:30:00.000Z"
}
FieldTypeDescription
businessNamestringName of the business
urlstringYelp business page URL
ratingnumberAverage star rating (1-5)
reviewCountnumberTotal number of reviews
priceRangestringPrice level ($, $$, $$$, $$$$)
categoriesarrayBusiness categories
addressstringStreet address
citystringCity name
statestringState/region
zipCodestringPostal code
phonestringPhone number
websitestringBusiness website URL
latitudenumberGeographic latitude
longitudenumberGeographic longitude
hoursobjectBusiness hours by day
photosarrayPhoto URLs
isOpenbooleanWhether the business is currently open
claimedStatusbooleanWhether the business is claimed on Yelp
scrapedAtstringISO 8601 scrape timestamp

Integrations

Connect Yelp Business Scraper with other tools:

  • Apify API -- REST API for programmatic access
  • Webhooks -- get notified when a run finishes
  • Zapier / Make -- connect to 5,000+ apps
  • Google Sheets -- export directly to spreadsheets

API Example (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('YOUR_USERNAME/yelp-business-scraper').call({
searchTerms: ['restaurants'],
locations: ['San Francisco, CA'],
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

API Example (Python)

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('YOUR_USERNAME/yelp-business-scraper').call(run_input={
'searchTerms': ['restaurants'],
'locations': ['San Francisco, CA'],
'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items

API Example (cURL)

curl "https://api.apify.com/v2/acts/YOUR_USERNAME~yelp-business-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"searchTerms": ["restaurants"], "locations": ["San Francisco, CA"], "maxItems": 100}'

Tips and tricks

  • Start with a small maxItems (10-20) to test before running large scrapes
  • Use residential proxies for best results -- Yelp has moderate anti-bot protection
  • Combine multiple search terms with multiple locations to cover wide areas efficiently
  • Set includeReviews to true only when needed, as it increases processing time
  • Business pages have the richest data via JSON-LD; search pages are used for discovery

FAQ

Q: Does this actor require login credentials? A: No. All data is extracted from publicly available Yelp pages.

Q: How fast is the scraping? A: Approximately 50-100 businesses per minute with residential proxies and default concurrency.

Q: What should I do if I get blocked? A: Switch to residential proxies in the Proxy Configuration settings and reduce maxConcurrency to 3-5.

Q: Can I scrape reviews? A: Yes, enable the "Include Reviews" option to extract the top reviews shown on each business page.

Q: Does it handle pagination? A: Yes, the actor automatically paginates through search results until maxItems is reached or no more results are available.

Web scraping of publicly available data is generally legal based on precedents like the LinkedIn v. HiQ Labs case. This actor only accesses publicly available data. Always review and respect the target site's Terms of Service and robots.txt. For more information, see Apify's blog on web scraping legality.

Limitations

  • Review extraction is limited to the reviews displayed on the first page of each business
  • Business hours may not be available for all listings
  • Some fields (website, coordinates) depend on the business having complete Yelp profiles
  • Rate limiting may slow down large scrapes; use residential proxies for best performance

Changelog

  • v0.1 (2026-04-23) -- Initial release