Yelp Business Scraper
Pricing
from $4.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
4
Monthly active users
a day ago
Last modified
Categories
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.
| Field | Type | Description |
|---|---|---|
encid | string | Yelp's stable internal business identifier. |
alias | string | Slug used in the Yelp URL path. |
url | string | Canonical Yelp business page URL. |
name | string | Primary business name. |
alternateNames | array | Localized or alternative names. |
rating | number | Average star rating, 0 to 5. |
reviewCount | integer | Total reviews on Yelp. |
priceRange | string | $ to $$$$. Null if unset. |
phoneNumber | string | Dialable phone in E.164 form, e.g. +14155551234. |
website | string | External business website. Populated when enrichWithDetails is true. |
address | object | Structured address. |
latitude | number | Latitude |
longitude | number | Longitude |
timezone | string | IANA timezone, e.g. America/Los_Angeles. |
categories | array | Yelp category labels and aliases. |
photos | array | Photo URLs (large size). Populated when enrichWithDetails is true. |
primaryPhoto | string | Cover photo URL (large size). |
hours | array | Regular weekly hours. Populated when enrichWithDetails is true. |
businessHolidays | array | Dates the business is closed. |
properties | array | Attributes like 'Takes reservations', 'Offers delivery', 'Outdoor seating'. |
isClaimed | boolean | Whether the business has been claimed on Yelp. |
isClosed | boolean | True 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
- Open Yelp Business Scraper and click Try for free.
- Add one or more
searchTermssuch asplumber,dentist, orpizza. - Add
locationsas free text —Austin, TX,10001, orBrooklyn, NY. - Optionally narrow with
categoryAlias,priceFilter, orsortBy, and setmaxResults. - Leave
enrichWithDetailson to get phone, website, hours, and coordinates for every business. - Click Start and watch rows appear live in the Output tab.
- 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
| Input | Type | What it does | Default |
|---|---|---|---|
searchTerms | array | Search query strings (e.g. 'pizza', 'plumber', 'dentist'). One business search per term, per location. | ["pizza"] |
locations | array | Free-text Yelp locations (city + state, ZIP, neighborhood). Yelp resolves to a geo center. | ["San Francisco, CA"] |
categoryAlias | string | Optional Yelp category alias to filter by (e.g. 'pizza', 'restaurants', 'autorepair'). When set, scraper uses the... | |
directUrls | array | List of Yelp business URLs to scrape directly (e.g. https://www.yelp.com/biz/pink-onion-san-francisco). Bypasses search. | |
maxResults | integer | Cap on total businesses per (searchTerm, location) pair. Yelp itself caps results at 240. | 20 |
enrichWithDetails | boolean | When true, the scraper hits each business's detail page to pull website, hours, photos, properties, and full... | true |
maxImagesPerBusiness | integer | Upper bound on photo URLs returned per business. Only applies when enrichWithDetails=true. | 10 |
priceFilter | array | Filter to Yelp price tiers. Empty means all tiers. | |
sortBy | string | How 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.
| Results | Approximate 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
locationsinto 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: falseto survey a market cheaply, then re-run with enrichment on only the businesses worth the extra detail fetch. categoryAliasis stricter than a free-textsearchTermsmatch. 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.
Related scrapers
| Actor | What it does |
|---|---|
| Google Maps Business Scraper | Same local-business fields sourced from Google Maps, for cross-checking coverage. |
| Yellow Pages Business Scraper | Yellow Pages listings with hours, payment methods, and years in business. |
| Tripadvisor Reviews Scraper | Full 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.
Is it legal to scrape Yelp?
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.