๐ฝ๏ธ Ultimate Yelp Scraper
Pricing
from $4.99 / 1,000 results
๐ฝ๏ธ Ultimate Yelp Scraper
Ultimate Yelp Scraper extracts public business data including names, categories, ratings, reviews, addresses, phone numbers, websites, hours, and business URLs. Build structured datasets for local lead generation, market research, competitor analysis, and business discovery.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Yelp Business Scraper โ Reviews, Photos, Hours and Amenities
Ultimate Yelp Scraper extracts Yelp business listings as structured JSON โ ratings, price range, categories, address and coordinates, phone and website, hours, amenities, and the full paginated review feed with reviewer details. It also scrapes Yelp Collection and Event pages. Point it at business, search, collection or event URLs, or just give it a keyword and a location, and results save to your Apify dataset the moment each record is ready. Run it from the Actor's Apify Store page โ no coding required.
What is Ultimate Yelp Scraper?
Ultimate Yelp Scraper is an Apify Actor that navigates Yelp with a headless stealth browser, reads the same data a signed-out visitor sees, and returns it as clean JSON โ business details, reviews, photos, amenities, hours, Q&A, and the businesses/subscribers listed on Collection and Event pages. It does not require a Yelp account, login, or API key โ every field comes from Yelp pages that are publicly visible without signing in. It's built for developers, local-SEO and market-research teams, and data/AI engineers who need structured Yelp data without maintaining their own scraper or Yelp API integration.
What Yelp business data is publicly available to scrape?
Anyone who visits a Yelp business, search, collection, or event page without logging in can already see the fields listed below โ no Yelp account is required to view them.
| Data Category | Publicly Available | Restricted (requires Yelp login / Yelp for Business account) |
|---|---|---|
| Business identity & contact | Name, categories, price range, phone, website, address, coordinates | โ |
| Ratings & review counts | Overall rating, total review count | โ |
| Review text & reviewer info | Full review text, rating, date, reviewer name, elite status, reaction counts | Sending a message to a reviewer, voting/reacting yourself |
| Photos | Business photo URLs | Uploading photos, tagging yourself in one |
| Hours, amenities & Q&A | Operating hours, amenities/attributes, "Ask the Community" questions | Posting a new question or answer |
| Collections & Events | Collection business lists, event details and subscriber lists | Creating or editing a collection, RSVPing to an event |
| Business analytics & inbox | โ | Owner-side traffic stats, lead/message inbox, ad performance (Yelp for Business login only) |
Ultimate Yelp Scraper only returns publicly visible data โ what any visitor sees. Nothing behind a login wall.
What data can I extract with Ultimate Yelp Scraper?
Ultimate Yelp Scraper returns business identity and location fields, rating/review/media fields, and โ with Deep Detail Mode on โ amenities, about, Q&A and highlight fields, plus separate Collection and Event record shapes.
| Field Name | Description |
|---|---|
businessId | Yelp's internal encoded business ID |
type | Record shape: business, collection, or event |
url | Canonical Yelp URL for the business |
title | Business name |
address | Object: city, regionCode, addressLine1โaddressLine3, postalCode, formatted |
coordinates | Array of {latitude, longitude} |
categories | Array of category names |
phoneNumber | Formatted phone number |
website | External business website URL (resolved from Yelp's outbound link) |
reservationUrl | Reservation link, if Yelp exposes one |
rating | Overall star rating |
reviewCount | Total review count shown on Yelp |
priceRange | Yelp price tier, e.g. $$ |
isClaimed | Whether the business owner has claimed the listing |
isBusinessClosed | Whether Yelp marks the business permanently closed |
reviews | Array of review objects (see below) |
mediaCount | Total photo count Yelp reports for the business |
media | Array of original-resolution photo URLs |
operationHours | Object of day โ hours string, e.g. {"Mon": "8:00 AM - 8:00 PM"} |
amenities | Array of amenity objects (Deep Detail Mode most reliable) |
about | About/history text shown on the business page |
yearEstablished | Year the business states it was established |
history | Business history text, if present |
highlights | Array of highlight strings pulled from review highlights |
questions | Array of "Ask the Community" question objects |
searchUrl | The search URL that surfaced this business, if found via search |
startUrl | The original Start URL this record came from |
Business identity & location fields
businessId, title, url, address, coordinates, categories, phoneNumber, website, reservationUrl.
Ratings, review & media fields
rating, reviewCount, priceRange, isClaimed, isBusinessClosed, reviews, mediaCount, media, operationHours.
Each object in reviews carries: userName, userUrl, isElite, rating, date, review (full text), reviewLanguage, reviewLink, feedback (an object of Helpful/Thanks/Love this/Oh no reaction counts), and author (id, name, location, friendCount, reviewCount, businessPhotoCount, isElite, and photoUrls when the reviewer has a profile photo).
Amenities, about & Q&A fields (Deep Detail Mode)
amenities (array of single-key objects, e.g. {"wifi_options": "Free Wi-Fi", "isEnabled": true}), about, yearEstablished, history, highlights, questions (each {question, answer, user, answerDate}).
๐ค Add-on: Need additional Yelp-adjacent data?
Pair Ultimate Yelp Scraper with Shopify Store Leads Scraper if the businesses you're researching also run Shopify storefronts, or Zillow Property Details Scraper when you need the property records behind a business address. For turning a business's own site into text for an LLM pipeline, run its website field through Website Content Crawler.
How does Ultimate Yelp Scraper differ from the official Yelp Fusion API?
Yelp's own Fusion API returns basic business fields and up to three review excerpts per business behind a paid, approval-gated API key; Ultimate Yelp Scraper returns the full paginated review feed, the complete photo set, amenities/Q&A/about, and Collection/Event pages, started directly from a Yelp URL or keyword with no key required.
| Feature | Yelp Fusion API | Ultimate Yelp Scraper |
|---|---|---|
| Access | Requires a Yelp developer account, an API key, and a selected commercial plan | Runs on Apify โ no Yelp account or API key |
| Reviews per business | Up to 3 review excerpts | Full review feed, paginated, sortable by relevance/date/rating/elite |
| Photos | A small photos field on the business record | Full original-resolution photo set, page-limited if you choose |
| Search result cap | Up to 240 businesses per search request | Governed by your own maxItems / endPage input |
| Amenities, about, Q&A | Not part of the documented business fields | Included via Deep Detail Mode |
| Collection & Event pages | Not part of the documented endpoints | Scraped directly as their own record types |
Use the Fusion API when you're building a Yelp-branded integration under Yelp's own terms and three review excerpts are enough. Use Ultimate Yelp Scraper when you need full review text, the complete photo set, amenities/Q&A, or Collection/Event data in one JSON export.
How to use Ultimate Yelp Scraper
Ultimate Yelp Scraper runs on the Apify platform โ there's no separate signup or API key to obtain before starting a run.
- Open the Actor's page in Apify Console (or the Apify Store listing) and click Try for free / Start.
- Provide input: either paste one or more Yelp URLs into
startUrls, or fill insearch(and optionallysearchLocation) โ no field is strictly required, but you need at least one of the two or the run exits immediately. - Set optional filters โ
maxItemsto cap total results,deepDetailto include amenities/about/Q&A,includeReviews/includePhotos/includeAmenitiesto toggle each data type, andreviewSortto control review order. - Start the run.
- Open the Output tab to browse results by section (Overview, Location & Hours, Reviews, Amenities & About, Media, Collections & Events), or export the full dataset as JSON or CSV.
How to scale to bulk business extraction
startUrls is an array โ paste business, search, collection, and event URLs in bulk (one per line, or upload a file) and the Actor works through all of them in a single run, deduplicating and dispatching each by URL type. For keyword-based bulk discovery instead of a URL list, use search + searchLocation with endPage to control how many search-result pages get paginated before businesses are queued for detail extraction.
What can you do with Yelp business data?
- A local-SEO consultant auditing a client uses
rating,reviewCount, andcategoriesto benchmark a business against its Yelp presence over time. - A market researcher comparing neighborhoods uses
priceRange,amenities, andaddressacross many businesses to map competitive density by area. - A reputation-management team uses
reviews[].rating,reviews[].date, andreviews[].reviewto track sentiment trends and flag repeat complaints. - An events marketer uses an Event record's
fromDate,toDate, andsubscribersto gauge interest before promoting a listing. - An AI engineer feeds
about,amenities, andreviews[].reviewtext into a RAG pipeline so an agent can answer natural-language questions about a business's offerings and reputation grounded in real Yelp data.
How does Ultimate Yelp Scraper handle rate limits and blocking?
Yelp fronts www.yelp.com with DataDome; a request without a browser-bound datadome cookie is hard-blocked. Ultimate Yelp Scraper handles this by launching one stealth browser session (camoufox) that passes Yelp's DataDome check, then issues every subsequent request as an in-page call from that same passed session instead of a bare HTTP client. If a bootstrap attempt is blocked, it automatically escalates the proxy tier โ no proxy โ Apify datacenter proxy โ Apify residential proxy โ retrying at least 3 times on residential, and once it reaches residential it stays there for the rest of the run. Every escalation is logged. Individual GraphQL calls that fail or get rate-limited are retried up to maxRetries times with a backoff delay; a business page that still can't be reached is skipped (logged) rather than failing the whole run.
โ ๏ธ Deep Detail Mode processes businesses one at a time (it navigates and renders each page to read amenities/about/Q&A/highlights from the DOM), so it is slower than the default; turning it off runs businesses concurrently via concurrency but returns amenities and about/Q&A only on a best-effort basis from the GraphQL response.
โฌ๏ธ Input
Ultimate Yelp Scraper takes no required fields โ provide either startUrls or search, or the run exits with nothing to do.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
startUrls | No | Array | One or more Yelp URLs โ business (/biz/...), search (/search?...), collection (/collection/...), or event (/events/...) pages. Takes priority over search when non-empty. | ["https://www.yelp.com/biz/maxs-restaurant-glendale-glendale-3"] |
search | No | String | Keyword to search for on Yelp. Used only when startUrls is empty. | "restaurants" |
searchLocation | No | String | City/state or ZIP to search in. Used together with search. | "Los Angeles, CA" |
maxItems | No | Integer (min 1) | Stop after this many businesses/collections/events, combined across all inputs. Empty = no limit. | 10 |
endPage | No | Integer (min 1) | How many search-result pages (10 businesses/page) to paginate before stopping. Empty = keep paging until maxItems or results run out. | 3 |
deepDetail | No | Boolean, default true | When on, navigates each business page to also capture amenities, about/history, Q&A, highlights, claimed status, and year established. When off, runs fully concurrent using only Yelp's GraphQL API. | true |
includeReviews | No | Boolean, default true | Paginate and collect the full review feed. When off, only the first page of reviews shipped with the business detail is kept. | true |
reviewSort | No | String, default "relevance_desc", enum: relevance_desc, date_desc, date_asc, rating_desc, rating_asc, elites_desc | Order reviews are fetched in. | "date_desc" |
startPageForReviews | No | Integer (min 1) | Skip ahead to this review page (10 reviews/page) instead of starting from page 1. | 1 |
endPageForReviews | No | Integer (min 1) | Stop after this review page. Empty = fetch every available review. | 5 |
includePhotos | No | Boolean, default true | Collect original-resolution photo URLs for every business. | true |
endPageForPhotos | No | Integer (min 1) | Limit how many photo pages (~30 photos/page) to collect. Empty = collect every available photo. | 2 |
includeAmenities | No | Boolean, default true | Extract amenities/attributes. Best-effort; most reliable with deepDetail on. | true |
proxyConfiguration | No | Object | Proxy settings. Default connects with no proxy and auto-escalates to datacenter then residential if DataDome blocks a bootstrap attempt. You can also force a tier here. | {"useApifyProxy": false} |
concurrency | No | Integer, default 5, min 1, max 20 | How many businesses to process in parallel (used only when deepDetail is off). | 5 |
maxRetries | No | Integer, default 3, min 1, max 10 | How many times to retry a single GraphQL/API call before giving up on it. | 3 |
maxBootstrapAttempts | No | Integer, default 12, min 1, max 30 | How many fresh browser/IP attempts to make while trying to pass Yelp's DataDome challenge before giving up the whole run. | 12 |
reloadsPerAttempt | No | Integer, default 3, min 1, max 10 | How many times to reload the same page (same IP) before rotating to a fresh browser attempt. | 3 |
Example input
{"startUrls": [{ "url": "https://www.yelp.com/biz/maxs-restaurant-glendale-glendale-3" },{ "url": "https://www.yelp.com/collection/user-abc123/my-favorite-spots" }],"search": "","searchLocation": "","maxItems": 25,"endPage": 3,"deepDetail": true,"includeReviews": true,"reviewSort": "date_desc","startPageForReviews": 1,"endPageForReviews": 5,"includePhotos": true,"endPageForPhotos": 2,"includeAmenities": true,"proxyConfiguration": { "useApifyProxy": false },"concurrency": 5,"maxRetries": 3,"maxBootstrapAttempts": 12,"reloadsPerAttempt": 3}
โฌ๏ธ Output
Every run pushes typed JSON rows to your Apify dataset live, one per business, collection, or event, using the same field names in every run. The dataset also exposes six pre-built views (Overview, Location & Hours, Reviews, Amenities & About, Media, Collections & Events) plus an All Fields view, and the whole dataset can be exported as JSON or CSV.
Example output โ business record
{"businessId": "znEKghXteVgPyaUboU1Dsg","type": "business","url": "https://www.yelp.com/biz/maxs-restaurant-glendale-glendale-3","title": "Max's Restaurant - Glendale","rating": 3.3,"reviewCount": 1403,"priceRange": "$$","categories": ["Filipino", "Asian Fusion", "Bars"],"isClaimed": true,"isBusinessClosed": false,"yearEstablished": "1980","history": null,"address": {"city": "Glendale","regionCode": "CA","addressLine1": "740 N Brand Blvd","addressLine2": null,"addressLine3": null,"postalCode": "91203","formatted": "740 N Brand Blvd\nGlendale, CA 91203"},"coordinates": [{ "latitude": 34.15556, "longitude": -118.2554 }],"highlights": ["Great for groups", "Family-friendly"],"reviews": [{"userName": "Sarah K.","userUrl": "https://www.yelp.com/user_details?userid=abc123","isElite": true,"rating": 5,"date": "2026-07-08T00:12:15.000Z","review": "The crispy pata here is unbeatable...","reviewLanguage": "en","reviewLink": "https://www.yelp.com/biz/maxs-restaurant-glendale-glendale-3?hrid=xyz789","author": {"id": "abc123","name": "Sarah K.","location": "Los Angeles, CA","friendCount": 42,"reviewCount": 118,"businessPhotoCount": 6,"isElite": true},"feedback": { "Helpful": 4, "Thanks": 1, "Love this": 2, "Oh no": 0 }}],"operationHours": { "Mon": "11:00 AM - 9:00 PM", "Tue": "11:00 AM - 9:00 PM" },"amenities": [{ "wifi_options": "Free Wi-Fi", "isEnabled": true },{ "has_outdoor_seating": "Outdoor seating", "isEnabled": false }],"about": "A Filipino-American restaurant chain serving classic Filipino comfort food since 1980.","questions": [{ "question": "Do they take large group reservations?", "answer": null, "user": null, "answerDate": null }],"website": "https://www.maxsrestaurant.com","phoneNumber": "(818) 500-1096","reservationUrl": null,"mediaCount": 892,"media": ["https://s3-media0.fl.yelpcdn.com/bphoto/abcXYZ123/o.jpg"],"searchUrl": null,"startUrl": "https://www.yelp.com/biz/maxs-restaurant-glendale-glendale-3"}
Example output โ collection record
{"type": "collection","url": "https://www.yelp.com/collection/user-abc123/my-favorite-spots","title": "My Favorite Spots","description": "Best places I've found around LA.","user": { "name": "Jordan T.", "avatar": "https://s3-media0.fl.yelpcdn.com/photo/abc/ls.jpg", "isElite": true },"businesses": [{"url": "https://www.yelp.com/biz/maxs-restaurant-glendale-glendale-3","name": "Max's Restaurant - Glendale","reviewCount": 1403,"rating": 3.3,"image": "https://s3-media0.fl.yelpcdn.com/bphoto/abcXYZ123/o.jpg","priceRange": "$$","userReview": "'s 5-star review: Best sisig in town...","categories": []}]}
Example output โ event record
{"type": "event","url": "https://www.yelp.com/events/los-angeles-night-market","title": "LA Night Market","image": "https://s3-media0.fl.yelpcdn.com/photo/eventimg/o.jpg","categories": ["Food & Drink Yelp Events"],"business": { "url": "", "name": null, "reviewCount": null, "rating": null, "location": "Los Angeles, CA 90012" },"fromDate": "2026-09-12T18:00:00-07:00","toDate": "2026-09-12T23:00:00-07:00","price": "Free","description": "An evening night market featuring local vendors and live music.","subscribers": [{ "name": "Alex R.", "avatar": "https://s3-media0.fl.yelpcdn.com/photo/abc/ls.jpg", "friendCount": null, "reviewCount": null, "isElite": false }]}
How does it work?
Ultimate Yelp Scraper launches a single headless stealth browser session (camoufox) and lands it on Yelp until it passes Yelp's DataDome bot check โ a request without that passed session's cookie is hard-blocked, so every subsequent request in the run reuses the same warmed browser context rather than a bare HTTP client. From there it calls Yelp's own internal GraphQL endpoints for business detail, reviews, hours, map data, and photos, and reads the rendered page DOM for fields Yelp only renders client-side (amenities, about, Q&A, highlights) when Deep Detail Mode is on. Yelp's internal GraphQL documentId signatures are re-extracted live from the page's own network traffic at the start of each run and used ahead of a hardcoded fallback, so a routine Yelp-side signature rotation doesn't require a code update. Only data visible to a signed-out visitor is returned, and the output field names stay the same regardless of how Yelp's page markup changes.
Integrations
Ultimate Yelp Scraper is an Apify Actor, so it's reachable anywhere Apify's API and client libraries reach โ direct API calls, the Apify CLI, or any automation platform that can make an HTTP request.
Calling Ultimate Yelp Scraper programmatically
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("scraper-engine/ultimate-yelp-scraper").call(run_input={"search": "restaurants","searchLocation": "Los Angeles, CA","maxItems": 25,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["rating"])
Works in Go, Ruby, Node.js, cURL โ any language that can make an HTTP request.
No-code tools (n8n, Make, LangChain)
In n8n, use the HTTP Request node (or the Apify node) pointed at the Actor's run endpoint with your API token, then parse the returned dataset items. In Make, use an HTTP module the same way to trigger a run and poll for its dataset. In LangChain or a similar framework, wrap the Apify client call above as a tool so an agent can request fresh Yelp business data on demand.
Is it legal to scrape Yelp business data?
Scraping publicly available web data is generally legal in the US and EU, and Ultimate Yelp Scraper only returns data any signed-out visitor can already see on Yelp. Business-identity fields (name, address, categories, price, hours) are business/product data, governed by Yelp's own Terms of Service rather than a personal-data regime. The reviews array is different: it carries reviewer names, profile details, and elite status, which are personal data under GDPR and CCPA โ you need a lawful basis to store and use that data, and reviewers may have rights to access or deletion requests under those regimes. Consult legal counsel if your use case involves bulk storage of personal data.
Frequently asked questions
What Yelp business fields does Ultimate Yelp Scraper return?
The top-level fields include title, rating, reviewCount, address, and reviews (with full review text and reviewer details) โ see What data can I extract above for the complete field list, including the separate Collection and Event record shapes.
Does Ultimate Yelp Scraper require a Yelp account or login?
No. It reads pages exactly as a signed-out visitor would, using a headless stealth browser to pass Yelp's DataDome check โ no Yelp account, login, or API key is needed.
How many businesses can I extract in one run?
As many as maxItems allows, or unlimited if you leave it empty โ the actual count also depends on how many results your search/searchLocation or startUrls combination actually surfaces on Yelp, and endPage controls how many search-result pages get walked.
What happens if a business page is blocked or can't be resolved?
If a business page can't be reached after maxRetries attempts, or its internal business ID can't be resolved, the Actor logs the failure and skips that one URL rather than stopping the whole run โ every other queued business, collection, or event still gets processed.
Can I scrape multiple Yelp businesses at once?
Yes โ pass an array of business, search, collection, or event URLs in startUrls (one per line, or upload a file), or use search + searchLocation to have the Actor discover businesses from Yelp's own search results.
Does Ultimate Yelp Scraper work with Claude, ChatGPT, and other AI agent tools?
It's callable as a standard Apify Actor run via HTTP by any agent framework that can make an API call โ wrap the run-and-fetch-dataset pattern shown in Integrations above as a tool function for your agent.
Does Ultimate Yelp Scraper return data in a format LLMs can use directly?
Yes. Every run returns typed, normalized JSON with the same field names across runs โ no HTML parsing or CSS selectors required. Pass it directly to an LLM prompt, index it into a vector store, or wire it into an agent tool.
What happens when Yelp changes its layout or anti-bot system?
The Actor's GraphQL documentId signatures are re-extracted live from Yelp's own network traffic on every run, so routine signature rotations are handled automatically; DOM-read fields (amenities, about, Q&A, highlights) are anchored on heading text rather than hashed class names to reduce breakage when Yelp restyles a page.
Can I use Ultimate Yelp Scraper without managing proxies or browser infrastructure?
Yes. It runs headless on Apify's infrastructure and handles the stealth browser bootstrap and proxy tier escalation (no proxy โ datacenter โ residential) automatically; you only need to touch proxyConfiguration if you want to force a specific tier yourself.
Which Yelp business fields work best for AI training data and RAG indexing?
For RAG, index about, reviews[].review, and questions[].question โ the highest-information free text fields. For structured training data, rating, reviewCount, priceRange, and categories are the most consistently populated fields across records, and all fields return as typed strings, numbers, booleans, or arrays.
Related scrapers
| Scraper Name | What it extracts |
|---|---|
| Shopify Store Leads Scraper | Shopify store emails, phone numbers, addresses, and ratings |
| Zillow Property Details Scraper | Property price, Zestimate, tax history, schools, and photos |
| Y Combinator Scraper | Companies, founders, and open jobs from the YC directory |
| Website Content Crawler | Clean text, Markdown, HTML, and metadata from any website |
Your feedback
Found a bug or missing a field in Ultimate Yelp Scraper? Let us know at dev.scraperengine@gmail.com so we can fix it โ active issue reports directly shape what gets prioritized in the next update.