Yelp Scraper - Extract Business Data, Contacts & Reviews avatar

Yelp Scraper - Extract Business Data, Contacts & Reviews

Pricing

from $3.00 / 1,000 yelp businesses

Go to Apify Store
Yelp Scraper - Extract Business Data, Contacts & Reviews

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

Khadin Akbar

Maintained by Community

Actor stats

1

Bookmarked

19

Total users

2

Monthly active users

a day ago

Last modified

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

FieldTypeDescription
searchQuerystringKeyword, business type, or category for Yelp search. Use this with location when starting from search terms.
locationstringCity, state, ZIP code, or address paired with searchQuery.
startUrlsarrayDirect Yelp business page URLs for direct URL mode.
maxResultsintegerMaximum number of businesses to scrape and return.
includeReviewsbooleanExtract recent user reviews for each business.
maxReviewsPerBusinessintegerNumber of reviews to extract per business page.
proxyTypestringProxy strategy: residential, datacenter, or none.

Focused input example

{
"searchQuery": "coffee shops",
"location": "Austin, TX",
"maxResults": 10,
"includeReviews": true,
"maxReviewsPerBusiness": 3,
"proxyType": "residential"
}

Output fields

FieldTypeDescription
business_namestringpublic business name as listed on Yelp.
yelp_urlstringDirect Yelp business page URL.
yelp_business_idstring or nullYelp slug after /biz/.
ratingnumber or nullAverage Yelp star rating.
review_countinteger or nullTotal number of Yelp reviews.
price_rangestring or nullYelp price tier such as $, $$, $$$, or $$$$.
categoriesarrayCategories and cuisine types listed on Yelp.
addressstring or nullFull formatted address.
street_addressstring or nullStreet number and street name.
citystring or nullCity name.
statestring or nullState or region abbreviation.
zip_codestring or nullZIP or postal code.
countrystring or nullCountry code or country name.
phonestring or nullBusiness phone number.
websitestring or nullpublic website URL decoded from Yelp's redirect.
hoursobject or nullOperating hours by day of week.
is_claimedboolean or nullClaimed status from the Yelp listing.
descriptionstring or null"About This Business" text.
photos_countinteger or nullTotal number of listing photos.
latitudenumber or nullLatitude coordinate.
longitudenumber or nullLongitude coordinate.
reviewsarray or nullRecent reviews with author, rating, date, and text.
data_sourcestringAlways scrape.
scraped_atstringISO 8601 UTC timestamp of extraction.
source_urlstringOriginal 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:

  1. Search mode: searchQuery plus location searches Yelp by keyword and geography.
  2. Direct URL mode: startUrls accepts 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, and address support contact and routing tasks.
  • rating and review_count help rank or cluster records.
  • reviews provides recent review text when includeReviews is enabled.
  • source_url and scraped_at provide provenance for each record.
  • data_source is scrape, 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.
  • maxResults sets the maximum number of business records to return.
  • maxReviewsPerBusiness controls 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.