Yelp Business Scraper avatar

Yelp Business Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Yelp Business Scraper

Yelp Business Scraper

Fast Yelp business scraper. Search by location and keyword or scrape direct Yelp business URLs. Extracts name, address, phone, website, hours, photos, ratings, review count, price tier, categories, and claimed status. Direct read of Yelp's server-rendered Apollo data, no headless browser.

Pricing

from $4.00 / 1,000 results

Rating

5.0

(1)

Developer

Crikit

Crikit

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

4

Monthly active users

a day ago

Last modified

Share

Scrape Yelp business listings by keyword and city, or paste direct Yelp business URLs. This Yelp scraper returns name, address, phone number, website, opening hours, photos, star rating, review count, price tier, categories, and claimed status as structured JSON.

No Yelp API key, no login, and no headless browser. Results land in a structured dataset you can export to JSON, CSV, Excel, or XML, or pull straight from the Apify API.

What is Yelp Business Scraper?

Yelp Business Scraper is an Apify Actor that extracts business listings from Yelp and returns them as clean, structured records. It reads Yelp's own server-rendered Apollo state instead of driving a browser, so runs are fast, cheap, and stable — and you get exactly the data Yelp's pages show.

What data can this Yelp scraper extract?

Every run writes one row per business. The full schema carries 32 fields; the most-used ones are below.

FieldTypeDescription
encidstringYelp's stable internal business identifier.
aliasstringSlug used in the Yelp URL path.
urlstringCanonical Yelp business page URL.
namestringPrimary business name.
alternateNamesarrayLocalized or alternative names.
ratingnumberAverage star rating, 0 to 5.
reviewCountintegerTotal reviews on Yelp.
priceRangestring$ to $$$$. Null if unset.
phoneNumberstringDialable phone in E.164 form, e.g. +14155551234.
websitestringExternal business website. Populated when enrichWithDetails is true.
addressobjectStructured address.
latitudenumberLatitude
longitudenumberLongitude
timezonestringIANA timezone, e.g. America/Los_Angeles.
categoriesarrayYelp category labels and aliases.
photosarrayPhoto URLs (large size). Populated when enrichWithDetails is true.
primaryPhotostringCover photo URL (large size).
hoursarrayRegular weekly hours. Populated when enrichWithDetails is true.
businessHolidaysarrayDates the business is closed.
propertiesarrayAttributes like 'Takes reservations', 'Offers delivery', 'Outdoor seating'.
isClaimedbooleanWhether the business has been claimed on Yelp.
isClosedbooleanTrue if Yelp marks the business as permanently closed.

See the Output tab in Apify Console for all 32 fields.

How to scrape Yelp business listings

  1. Open Yelp Business Scraper and click Try for free.
  2. Add one or more searchTerms such as plumber, dentist, or pizza.
  3. Add locations as free text — Austin, TX, 10001, or Brooklyn, NY.
  4. Optionally narrow with categoryAlias, priceFilter, or sortBy, and set maxResults.
  5. Leave enrichWithDetails on to get phone, website, hours, and coordinates for every business.
  6. Click Start and watch rows appear live in the Output tab.
  7. Export the dataset as JSON, CSV, Excel, or XML — or fetch it from the Apify API once the run finishes.

Yelp Business Scraper input options

InputTypeWhat it doesDefault
searchTermsarraySearch query strings (e.g. 'pizza', 'plumber', 'dentist'). One business search per term, per location.["pizza"]
locationsarrayFree-text Yelp locations (city + state, ZIP, neighborhood). Yelp resolves to a geo center.["San Francisco, CA"]
categoryAliasstringOptional Yelp category alias to filter by (e.g. 'pizza', 'restaurants', 'autorepair'). When set, scraper uses the...
directUrlsarrayList of Yelp business URLs to scrape directly (e.g. https://www.yelp.com/biz/pink-onion-san-francisco). Bypasses search.
maxResultsintegerCap on total businesses per (searchTerm, location) pair. Yelp itself caps results at 240.20
enrichWithDetailsbooleanWhen true, the scraper hits each business's detail page to pull website, hours, photos, properties, and full...true
maxImagesPerBusinessintegerUpper bound on photo URLs returned per business. Only applies when enrichWithDetails=true.10
priceFilterarrayFilter to Yelp price tiers. Empty means all tiers.
sortBystringHow Yelp orders results before scraping."recommended"

Proxy is configured through the standard proxyConfiguration object; the defaults shipped with this Actor are already tuned for the target site.

Example output

{
"encid": "IxDRIBkKtP-f24sr5zHAhQ",
"alias": "pink-onion-san-francisco",
"url": "https://www.yelp.com/biz/pink-onion-san-francisco",
"name": "Pink Onion",
"rating": 4.5,
"reviewCount": 1383,
"priceRange": "$$",
"phoneNumber": "+14155292635",
"website": "http://www.pinkonionpizza.com",
"address": {
"addressLine1": "64 14th St",
"city": "San Francisco",
"regionCode": "CA",
"postalCode": "94103",
"country": "US",
"formatted": "64 14th St\nSan Francisco, CA 94103"
},
"latitude": 37.7687698,
"longitude": -122.414829,
"timezone": "America/Los_Angeles",
"categories": [
{"alias": "pizza", "title": "Pizza"},
{"alias": "italian", "title": "Italian"}
],
"photos": [
{"encid": "...", "url": "https://...", "caption": "..."}
],
"hours": [
{"dayOfWeek": "Monday", "regularHours": ["4:00 PM - 10:00 PM"]}
],
"properties": [
{"alias": "RestaurantsReservations", "displayText": "Takes reservations", "isActive": true}
],
"isClaimed": true,
"isClosed": false,
"isYelpAdvertiser": true,
"isWomenOwned": false,
"isBlackOwned": false,
"byAppointmentOnly": false,
"hasStorefrontAddress": true
}

How much does it cost to scrape Yelp?

This Actor runs on pay per result pricing: $0.004 per business record ($4 per 1,000). A one-time start fee of $0.00005 applies per run.

ResultsApproximate cost
1,000$4.00
10,000$40.00
100,000$400.00

You pay for rows you actually receive, so a search that returns nothing costs nothing beyond the start fee. Every Apify account includes free monthly usage credit, so you can trial Yelp Business Scraper at no cost.

What can you build with Yelp data?

Build local business lead lists

Pull every plumber, dentist, or roofer in a metro with a verified phone number, website, and street address, then push the rows straight into a CRM or cold-outreach tool. The isClaimed flag tells you which businesses have never claimed their Yelp page — usually the ones most open to a marketing pitch.

Track competitor ratings and review counts

Re-run the same search on a schedule and diff rating and reviewCount over time to see which competitors are gaining reviews, which are slipping, and who is paying for isYelpAdvertiser placement.

Run restaurant and hospitality market research

Combine categories, priceRange, and coordinates to map how cuisine types and price tiers cluster across neighborhoods before opening a location or pricing a menu.

Enrich a CRM with phone numbers and hours

Feed a list of Yelp business URLs into directUrls and get back canonical phone numbers, websites, opening hours, and lat/lng to backfill records your sales team already owns.

Assemble training data for local-search models

Every row is consistent JSON with stable identifiers (encid, alias), which makes the output easy to join across runs and use as a local-business ground-truth dataset.

Yelp scraping tips and limits

  • Yelp caps a single search at 240 results. To cover a large metro, split locations into neighborhoods or ZIP codes and run several smaller searches — together they return far more than one broad search.
  • Scout first, enrich second: run with enrichWithDetails: false to survey a market cheaply, then re-run with enrichment on only the businesses worth the extra detail fetch.
  • categoryAlias is stricter than a free-text searchTerms match. Use it when you want exactly one Yelp category and not the adjacent ones Yelp's fuzzy matching pulls in.
  • Keep the default residential proxy configuration for sustained runs. Datacenter IPs work for small tests but trip Yelp's DataDome protection quickly.

Integrations and automation

Run Yelp Business Scraper on a schedule to keep a Yelp dataset fresh, or trigger it from your own stack through the Apify API and the official JavaScript and Python clients. Native integrations push results into Google Sheets, Slack, Airtable, Zapier, Make, GitHub, or any webhook endpoint. The Actor also works as an MCP tool, so an AI agent can call it directly.

ActorWhat it does
Google Maps Business ScraperSame local-business fields sourced from Google Maps, for cross-checking coverage.
Yellow Pages Business ScraperYellow Pages listings with hours, payment methods, and years in business.
Tripadvisor Reviews ScraperFull review text for hotels, restaurants, and attractions.

Frequently asked questions

How many Yelp businesses can I scrape in one run?

Yelp itself limits any single search to 240 results, and this Actor paginates to that ceiling. There is no limit on how many search term and location pairs you queue in one run, so scraping tens of thousands of businesses is just a matter of splitting the geography into smaller locations.

Does it return email addresses?

Yelp does not publish business email addresses, so no scraper can return them from Yelp alone. You do get the business website, which is the usual starting point for finding a contact address.

Do I need a Yelp API key?

No. Yelp Business Scraper reads publicly available Yelp pages and endpoints directly, so there is no key to obtain, no OAuth app to register, and no account to connect.

Can I export Yelp data to CSV, Excel, or Google Sheets?

Yes. Every run stores results in an Apify dataset that exports to JSON, JSONL, CSV, Excel, XML, or HTML with one click, and the Google Sheets integration writes rows straight into a spreadsheet.

Can I run Yelp Business Scraper on a schedule?

Yes. Apify schedules run the Actor hourly, daily, weekly, or on any cron expression, and webhooks can notify your systems the moment a run finishes.

Scraping publicly available data is broadly lawful in the US and EU, but the answer depends on what you collect and how you use it. This Actor is built to gather public business directory information about commercial entities rather than data about private individuals. Personal data carries extra obligations under GDPR and CCPA. Read Apify's guide on whether web scraping is legal and take your own legal advice for your use case.

Support and feedback

Found a bug, a missing field, or a Yelp page shape this Actor does not handle yet? Open an issue from the Issues tab on the Actor page. Feature requests and custom-scraper enquiries are welcome there too.