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 — name, rating, reviews count, address, phone, hours, photos, categories, and direct contact info. MCP-ready. $3/1K results.
Pricing
from $3.00 / 1,000 yelp businesses
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
1
Bookmarked
19
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Yelp Scraper — Business Data, Reviews & Contacts
Yelp Scraper - Business Data, Reviews, and Contacts is an Apify Actor for extracting structured Yelp business records from either a keyword search plus location or a list of direct Yelp business URLs. Each output record represents one business and can include name, Yelp URL, rating, review count, price range, categories, address, phone, website, hours, photos count, coordinates, claimed status, description, and optional recent reviews. It is usable through Apify MCP and returns one dataset record per scraped business for downstream analysis, CRM enrichment, or agent workflows.
Best fit and connected workflows
This Actor fits workflows that start with a Yelp business search or a list of known Yelp business pages and need clean business-level records in a dataset.
Typical routing patterns include:
- Lead generation teams searching by category and city, then exporting names, phone numbers, websites, and addresses.
- Local market research workflows that compare ratings, review volume, categories, and price tiers.
- Review-aware pipelines that add recent Yelp review text to a business record for analysis.
- Agent workflows that use Apify MCP to ask for structured Yelp business data and then read the dataset output.
- CRM enrichment flows that start from a target business list and fill in business profile fields from Yelp.
Focused standalone workflow
Yelp Scraper — Business Data, Reviews & Contacts is designed as a focused standalone workflow.
Practical scenario
Maya is building a prospect list for independent dentists in Chicago. She starts with searchQuery: "dentists" and location: "Chicago, IL", then sets maxResults to capture a manageable batch. The returned record includes business_name, phone, website, address, rating, review_count, and hours. Maya uses the phone number and website to decide which offices to contact first, then exports the dataset for her outreach workflow.
Input fields
| Field | Type | Description |
|---|---|---|
searchQuery | string | Keyword, business type, or category for Yelp search. Use this with location when starting from search terms. |
location | string | City, state, ZIP code, or address paired with searchQuery. |
startUrls | array | Direct Yelp business page URLs for direct URL mode. |
maxResults | integer | Maximum number of businesses to scrape and return. |
includeReviews | boolean | Extract recent user reviews for each business. |
maxReviewsPerBusiness | integer | Number of reviews to extract per business page. |
proxyType | string | Proxy strategy: residential, datacenter, or none. |
Focused input example
{"searchQuery": "coffee shops","location": "Austin, TX","maxResults": 10,"includeReviews": true,"maxReviewsPerBusiness": 3,"proxyType": "residential"}
Output fields
| Field | Type | Description |
|---|---|---|
business_name | string | public business name as listed on Yelp. |
yelp_url | string | Direct Yelp business page URL. |
yelp_business_id | string or null | Yelp slug after /biz/. |
rating | number or null | Average Yelp star rating. |
review_count | integer or null | Total number of Yelp reviews. |
price_range | string or null | Yelp price tier such as $, $$, $$$, or $$$$. |
categories | array | Categories and cuisine types listed on Yelp. |
address | string or null | Full formatted address. |
street_address | string or null | Street number and street name. |
city | string or null | City name. |
state | string or null | State or region abbreviation. |
zip_code | string or null | ZIP or postal code. |
country | string or null | Country code or country name. |
phone | string or null | Business phone number. |
website | string or null | public website URL decoded from Yelp's redirect. |
hours | object or null | Operating hours by day of week. |
is_claimed | boolean or null | Claimed status from the Yelp listing. |
description | string or null | "About This Business" text. |
photos_count | integer or null | Total number of listing photos. |
latitude | number or null | Latitude coordinate. |
longitude | number or null | Longitude coordinate. |
reviews | array or null | Recent reviews with author, rating, date, and text. |
data_source | string | Always scrape. |
scraped_at | string | ISO 8601 UTC timestamp of extraction. |
source_url | string | Original Yelp URL used for the record. |
Illustrative 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", "Sandwiches"],"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": "11:00 AM - 11:00 PM","Tue": "11:00 AM - 11:00 PM","Sun": "Closed"},"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": "John D.","rating": 5,"date": "12/15/2024","text": "suitable pizza in NYC, no contest!"}],"data_source": "scrape","scraped_at": "2026-04-13T14:22:10.000Z","source_url": "https://www.yelp.com/biz/joes-pizza-new-york"}
How it works
This Actor supports two input modes:
- Search mode:
searchQuerypluslocationsearches Yelp by keyword and geography. - Direct URL mode:
startUrlsaccepts Yelp business page URLs and processes them directly.
For each business, the Actor writes one structured dataset record. The dataset schema includes core business identity fields, location and contact data, optional hours, optional review records, and provenance fields such as data_source, scraped_at, and source_url.
The live manifest uses the ts-crawlee-playwright-chrome template and allocates 2048 MB by default, with a supported range from 512 MB to 4096 MB.
Evergreen pricing
Yelp Scraper — Business Data, Reviews & Contacts uses Pay per event pricing plus Apify platform usage.
The primary charged event is Yelp Business, which is billed for each successfully scraped Yelp business. The live Pricing tab in Apify Console shows the current pricing details for the Actor, along with platform usage charges that apply to the run.
For a simple planning example, scraping one hundred businesses means one hundred business events, plus any Apify platform usage from the run itself. For current totals, open the live Pricing tab before you run the Actor.
Use with AI agents (MCP)
This Actor is available as an Apify Actor usable through Apify MCP. It is designed for agent-driven requests that need structured Yelp business data, and it returns dataset records that an agent can read and interpret after the run.
Actor identity: khadinakbar/yelp-scraper-all-in-one
Tool description: query Yelp by search terms and location or provide direct Yelp business URLs, then read structured business records from the resulting Apify dataset.
"Find 15 coffee shops in Seattle, WA on Yelp, include up to 3 recent reviews per business, and return the dataset items with name, phone, website, rating, review count, categories, and source URL."
Output interpretation:
business_name,phone,website, andaddresssupport contact and routing tasks.ratingandreview_counthelp rank or cluster records.reviewsprovides recent review text whenincludeReviewsis enabled.source_urlandscraped_atprovide provenance for each record.data_sourceisscrape, which identifies the record as coming from a live Yelp page.
Scope and pagination guidance:
- Search mode accepts a category or keyword plus a location.
- Direct URL mode accepts multiple Yelp business pages.
maxResultssets the maximum number of business records to return.maxReviewsPerBusinesscontrols how many reviews are captured for each business when reviews are included.- Each business scraped is a billable event, so the event count scales with the number of business records you request.
Apify API example
import { ApifyClient } from "apify-client";const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor("khadinakbar/yelp-scraper-all-in-one").call({searchQuery: "dentists",location: "Chicago, IL",maxResults: 5,includeReviews: true,maxReviewsPerBusiness: 2,proxyType: "residential",});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Returned ${items.length} records`);console.log(items[0]);
Best results and outcome guidance
Use searchQuery and location together when you start from a category or keyword. Use startUrls when you already have specific Yelp business pages. Set includeReviews to true when review text is part of your downstream workflow, and reduce maxReviewsPerBusiness when you only need a small sample. The live schema sets maxResults from 1 to 1000 businesses and maxReviewsPerBusiness from 1 toa bounded number of reviews per business.
For direct business lookup workflows, phone, website, hours, and address are the most practical fields to route follow-up actions. For analysis workflows, rating, review_count, price_range, categories, and reviews are the most useful fields to keep.
Focused standalone workflow
Yelp Scraper — Business Data, Reviews & Contacts is designed as a focused standalone workflow for the public input and structured output contract described above.
Design note
I found that the dataset contract marks business_name, yelp_url, scraped_at, and source_url as required fields, while many other fields can be null. That makes the output well suited to downstream processing because every record keeps a consistent core identity plus optional enrichment fields.
FAQ
How do I choose between search mode and direct URL mode?
Use search mode for category and location discovery, and direct URL mode when you already have Yelp business pages.
Which fields are most useful for local lead lists?
business_name, phone, website, address, city, state, zip_code, and yelp_url are the most direct routing fields.
How do review records appear in the output?
When reviews are included, each business record can contain a reviews array with author, rating, date, and text for recent reviews.
How does this Actor handle source provenance?
Each record includes data_source, scraped_at, and source_url, which show that the data comes from a live Yelp page and when it was captured.
Can I use this Actor through Apify MCP for agent workflows?
Yes. The Actor is MCP-ready and can be used as an Apify Actor through Apify MCP to request structured Yelp business records.
Responsible use
Use this Actor for publicly available business information on Yelp and review your intended use against applicable laws, data protection rules, and Yelp's terms. Keep requests scoped to the businesses you need, especially when extracting reviews, and review the live Pricing tab before running larger batches so you understand both the business-event charge and Apify platform usage.