Yelp Scraper avatar

Yelp Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Yelp Scraper

Yelp Scraper

Extract business data, reviews, ratings, and contact information from Yelp. Search by keyword and location or scrape specific business pages

Pricing

from $5.00 / 1,000 results

Rating

5.0

(19)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

20

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extract business data, reviews, ratings, contact information, and more from Yelp. Search by keyword and location or provide direct business URLs to scrape detailed information including customer reviews.

Features

  • Search by keyword and location - Find businesses matching your search terms across any location on Yelp
  • Direct URL scraping - Provide specific Yelp business URLs for targeted data extraction
  • Business details - Name, rating, review count, price range, phone, address, website, cuisine, categories
  • Customer reviews - Review text, rating, date, photos, and reaction counts (Useful, Funny, Cool)
  • Structured output - Clean JSON output with consistent field names and no null values
  • Configurable limits - Control how many search results and reviews to collect
  • Proxy support - Optional proxy configuration for large-scale scraping

Input Parameters

FieldTypeDefaultDescription
searchTermsArray of strings[]Search queries (e.g., "pizza", "plumber", "hair salon")
locationsArray of strings[]Locations to search (e.g., "New York, NY", "Los Angeles, CA")
directUrlsArray of URLs[]Direct Yelp business page URLs to scrape
searchLimitInteger10Maximum results per search query (1-100)
reviewLimitInteger5Maximum reviews per business (0-50, set 0 to skip reviews)
proxyObject-Proxy configuration (residential recommended for scale)

You must provide at least one of searchTerms or directUrls.

Output Fields

Each business in the dataset contains:

FieldTypeDescription
directUrlStringFull Yelp URL of the business page
bizIdStringYelp business slug identifier
nameStringBusiness name
descriptionStringBusiness description from meta tags
categoriesArrayList of business categories (e.g., "Pizza", "Italian")
typeStringBusiness type from structured data (e.g., "Restaurant")
phoneStringBusiness phone number
reviewCountStringTotal number of reviews
aggregatedRatingStringAverage star rating (e.g., "4.5")
priceRangeStringPrice level (e.g., "$", "$$", "$$$")
cuisineStringCuisine type if applicable
websiteStringBusiness website URL
imagesArrayList of business image URLs
addressObjectAddress with streetAddress, addressLocality, addressRegion, postalCode, addressCountry
reviewsArrayList of review objects

Review Object Fields

FieldTypeDescription
dateStringReview date
ratingStringStar rating (1-5)
textStringReview text content
photosArrayURLs of photos attached to the review
isUsefulCountIntegerNumber of "Useful" reactions
isFunnyCountIntegerNumber of "Funny" reactions
isCoolCountIntegerNumber of "Cool" reactions

Supported URL Formats

  • Business pages: https://www.yelp.com/biz/business-name-city
  • Business pages with location: https://www.yelp.com/biz/business-name-city-2

Example Input

Search for businesses

{
"searchTerms": ["pizza", "sushi"],
"locations": ["New York, NY", "San Francisco, CA"],
"searchLimit": 5,
"reviewLimit": 3
}

Scrape specific businesses

{
"directUrls": [
{ "url": "https://www.yelp.com/biz/prince-street-pizza-new-york-2" },
{ "url": "https://www.yelp.com/biz/joes-pizza-new-york" }
],
"reviewLimit": 10
}

Example Output

{
"directUrl": "https://www.yelp.com/biz/prince-street-pizza-new-york-2",
"bizId": "prince-street-pizza-new-york-2",
"name": "Prince Street Pizza",
"description": "Famous NYC pizza spot known for their spicy spring pepperoni square slice.",
"categories": ["Pizza", "Italian"],
"type": "Restaurant",
"phone": "(212) 966-4100",
"reviewCount": "5432",
"aggregatedRating": "4.3",
"priceRange": "$",
"cuisine": "Pizza, Italian",
"website": "https://princestreetpizza.com",
"images": ["https://s3-media0.fl.yelpcdn.com/bphoto/example.jpg"],
"address": {
"streetAddress": "27 Prince St",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10012",
"addressCountry": "US"
},
"reviews": [
{
"date": "Oct 15, 2024",
"rating": "5",
"text": "Best pizza in NYC! The spicy spring is a must-try...",
"photos": [],
"isUsefulCount": 12,
"isFunnyCount": 2,
"isCoolCount": 5
}
]
}

Use Cases

  • Market research - Analyze competitor businesses, ratings, and customer feedback in any area
  • Competitor analysis - Compare reviews, ratings, and pricing across similar businesses
  • Location intelligence - Evaluate business density and quality in specific neighborhoods
  • Customer sentiment - Aggregate and analyze customer reviews for trend detection
  • Lead generation - Collect business contact information for outreach campaigns
  • Review monitoring - Track reviews for specific businesses over time

Tips for Best Results

  • Start with low limits - Use searchLimit: 3 and reviewLimit: 2 for initial test runs
  • Use residential proxies for large-scale scraping to avoid rate limiting
  • Direct URLs are faster - If you already know which businesses to scrape, use directUrls instead of search
  • Each search term + location combination counts as a separate search, so plan your queries accordingly
  • Reviews are from the first page of the business listing; Yelp shows approximately 10 reviews per page

Limitations

  • Only publicly visible data is extracted
  • Yelp uses Cloudflare protection which may occasionally block requests
  • Reviews are limited to those visible on the business page (first page of reviews)
  • Some business fields may be empty if not provided by the business owner
  • Search results depend on Yelp's ranking algorithm and may vary

FAQ

How many businesses can I scrape in one run? There is no hard limit, but we recommend keeping runs under 100 businesses for reliability. Use multiple smaller runs for larger datasets.

Do I need a proxy? For small runs (under 10 businesses), the scraper works without a proxy. For larger runs, residential proxies are recommended to avoid Cloudflare blocks.

Why are some review fields empty? Yelp uses dynamic class names that can change. The scraper uses multiple extraction strategies, but some fields may occasionally be empty if Yelp changes their HTML structure.

Can I scrape all reviews for a business? The scraper extracts reviews visible on the first page load. Set reviewLimit up to 50, but only reviews rendered on the page will be captured.

What locations are supported? Any location that Yelp supports. Use the format "City, State" for US locations (e.g., "New York, NY") or city names for international locations.

How often is the data updated? Each run fetches live data from Yelp. Schedule recurring runs on the Apify platform to keep your dataset up to date.