Yelp Business Scraper & Monitor (ratings, hours, change alerts) avatar

Yelp Business Scraper & Monitor (ratings, hours, change alerts)

Pricing

from $2.00 / 1,000 result items

Go to Apify Store
Yelp Business Scraper & Monitor (ratings, hours, change alerts)

Yelp Business Scraper & Monitor (ratings, hours, change alerts)

Yelp business scraper: search by term and location or paste business URLs and get flat rows with rating, review count, price range, categories, address, phone, hours, claimed and closed flags. Monitor mode alerts when a rating, review count or open status changes. No login, no Yelp API key.

Pricing

from $2.00 / 1,000 result items

Rating

0.0

(0)

Developer

Viktor Dubnytskiy

Viktor Dubnytskiy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape Yelp businesses by search term and location, or by pasting business page URLs, and get one flat row per business with its rating, review count, categories, address and hours. Run the same input in monitor mode on a schedule and you get only the businesses whose rating, review count or open status has moved since the last run.

What you get (example output)

One row per business. Real values from the example dataset of this actor:

FieldExample value
nameUncle Benny's Donut and Bagel
rating / reviewCount4.5 / 588
priceRange$$
categories["Donuts", "Bagels", "Coffee & Tea"]
address / city / region / postalCode2049 Irving St / San Francisco / CA / 94122
phone(415) 731-1323
isClaimed / isClosed / isAdvertisertrue / false / true
neighborhoods / timezone["Outer Sunset"] / America/Los_Angeles
urlhttps://www.yelp.com/biz/uncle-bennys-donut-and-bagel-san-francisco

Also on every row: bizId, alias, country, hoursByDay (Yelp's raw week-minute ranges), searchTerm, searchLocation, rank, source (search or business), scrapedAt.

Use cases

  • Reputation monitoring for multi-location brands: track rating and review count per location and get a webhook the day one of them drops.
  • Local lead lists: pull the businesses ranked for a term in a city, with categories, address, phone and whether the listing is claimed.
  • Competitive and market research: compare rating, price range and advertiser status across a category in one neighbourhood.

How it works

  1. Each searches entry becomes a Yelp search URL; 10 businesses are returned per page, up to searchPages.
  2. businessUrls are opened directly as business pages, which carry the richer fields (phone, hours, claimed flag, neighbourhoods); fetchDetails does the same for every search hit.
  3. Requests go through Apify Web Unblocker, which passes Yelp's DataDome protection; no login and no Yelp API key is involved.
  4. Rows are deduplicated on the Yelp business id, so overlapping searches are not charged twice.
  5. In monitor mode the run compares against the previous run of the same task and returns only businesses whose tracked fields changed, with changedFields and previous, optionally posting a summary to a webhook or Telegram chat.

Input

FieldMeaningDefault
searches[{"term": "coffee", "location": "San Francisco, CA"}]that example
businessUrlsyelp.com/biz/<alias> URLs or bare aliasesempty
searchPagesSearch result pages per search (10 businesses per page)1
fetchDetailsOpen each search hit's business page for phone, hours, claimed flagfalse
maxItemsStop after this many businesses20
modescrape or monitor (only rating / review-count / status changes)scrape
monitorKeyState key for monitor mode outside a saved taskempty
webhookUrlHTTPS endpoint for the monitor-mode change summaryempty
telegramBotToken / telegramChatIdSend the monitor-mode summary to Telegramempty

Pricing

EventPrice
result$0.002 per business ($2 per 1,000)
monitor-check$0.006 per monitor run
change$0.002 per changed business

Charged only for businesses actually pushed. Blocked pages are not charged; three in a row end the run with reason blocked.

Why this actor

  • Monitor mode is the point: it returns only what changed (changedFields, previous) instead of a fresh full dump you have to diff yourself.
  • Passes Yelp's DataDome protection through Apify Web Unblocker — no login, no cookies, no Yelp API key.
  • Search hits and business pages come back in the same schema, so lists and detail lookups merge cleanly.
  • You pay per pushed row; blocked or empty runs cost nothing beyond platform usage, and RUN_SUMMARY records the reason (no_matches, blocked, rate_limited, invalid_input, upstream_error).
  • Honest about what Yelp does not expose — see Limits, which are stated rather than hidden.

Limits

  • Review texts are not included. Yelp renders reviews client-side through a private GraphQL endpoint that its bot protection blocks; this actor tracks reviewCount and rating instead and alerts on changes, which is what most monitoring needs.
  • Yelp uses DataDome; the actor runs through Apify Web Unblocker, billed by Apify per request on top of results. A search page yields 10 businesses per request.
  • phone, isClaimed, postalCode and hoursByDay come from business pages — use businessUrls, or fetchDetails for search hits; on plain search rows they are null.
  • hoursByDay is Yelp's raw structure: minute offsets from the start of the week, not formatted opening times.
  • No person-level data: reviewer names and profiles are not collected.

FAQ

Can I scrape Yelp without the Yelp Fusion API key? Yes. This actor reads public Yelp pages through Apify Web Unblocker; you provide no Yelp credentials and are not bound by the API's daily call quota.

Does it return Yelp review text? No. Yelp serves review bodies from a protected client-side endpoint. What you get is the rating and review count per business, and, in monitor mode, an alert when either moves.

How do I get alerted when my competitor's rating drops? Save the actor as a task with those businesses in businessUrls, set mode: monitor, schedule it daily and add webhookUrl or the Telegram fields. Each run returns only businesses whose rating, review count or open status changed.

Changelog

  • 0.1: initial release — search and business pages, monitor mode.

If this actor is useful, please leave a review on its Apify Store page — that is how other people find it. For bugs or a field you need, open a ticket on the Issues tab of this actor.