Yelp Scraper — businesses, ratings, hours, phone avatar

Yelp Scraper — businesses, ratings, hours, phone

Pricing

from $2.10 / 1,000 search results

Go to Apify Store
Yelp Scraper — businesses, ratings, hours, phone

Yelp Scraper — businesses, ratings, hours, phone

Scrape Yelp business listings past DataDome: name, rating, review count, price range, categories, address, hours, phone and website. Search "what in where" or pass business URLs. No browser. Powered by xhr.dev.

Pricing

from $2.10 / 1,000 search results

Rating

0.0

(0)

Developer

xhrdev

xhrdev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

Scrape Yelp business listings past DataDome: name, star rating, review count, price range, categories, street, neighborhood and opening hours from search results. Optionally it also opens each business page for phone, website, menu link, full postal address, claimed status and Yelp's one-line summary. Search with "what in where", or pass Yelp URLs you already have.

No browser is launched. xhr.dev solves the DataDome challenge as plain HTTP, so a page costs a few hundred milliseconds of compute instead of the several seconds and gigabyte of RAM a stealth browser needs. Runs on Apify, so you get API access, scheduling, integrations and monitoring with no extra setup.

Quickstart

Paste this into the input and press Run.

{
"queries": ["pizza in San Francisco, CA"],
"maxPagesPerQuery": 2,
"scrapeDetails": false
}

Why use Yelp Scraper?

  • Lead lists for local businesses. Every plumber, dentist or café in a city, with rating, review count and category, ready for a CRM.
  • Market and competitor research. See how a category is rated across neighborhoods, and who dominates the first page.
  • Location intelligence. Opening hours, price range and neighborhood for site-selection or delivery-coverage work.

How to use it

  1. Click Try for free.
  2. Under Searches, enter one line per search, written as what in where, e.g. plumbers in Austin, TX.
  3. Set Pages per search. Yelp shows 10 businesses a page and stops at 24 pages.
  4. Turn on Open each business page if you need phone, website and the full address.
  5. Click Start, then download the results from the Output tab.

Input

FieldTypeDefaultDescription
queriesstring[]["pizza in San Francisco, CA"]Searches, each written as what in where. A search with no place is skipped with a message. Yelp would otherwise search wherever the request came from, which is a data centre.
startUrlsarray[]/biz/ URLs are read as businesses; /search URLs are read as result lists. Copy a search URL from your browser to keep Yelp's own filters.
scrapeDetailsbooleanfalseOpen every business found for its full record. One extra page per business.
maxPagesPerQueryinteger1How deep to page each search, 1–24.
maxItemsinteger50Stop once this many businesses have been scraped.
proxyConfigurationobjectNo proxyYelp solves cleanly from Apify's own address. Try Residential only if it starts refusing you.
maxRetriesinteger3Attempts per page, 1–5.
timeoutSecsinteger120Deadline per page, challenge and all.
maxConcurrencyinteger4Pages in flight at once, 1–10.

Output

One dataset item per business. Fields a business lacks are omitted rather than set to null. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

FieldFromDescription
idbothYelp business ID.
namebothBusiness name.
urlbothCanonical yelp.com/biz/... URL.
ratingbothStar rating, e.g. 4.2.
reviewCountbothNumber of reviews.
priceRangeboth$ to $$$$.
categoriesbothYelp categories, e.g. ["Pizza", "Italian"].
street / citybothStreet line and city.
neighborhoodsbothYelp neighborhood names.
hoursbothWeekly opening ranges as { day, open, close }, 24-hour clock.
ranksearchPosition in the organic results. Sponsored results are left out.
imagebothMain photo.
phonebusiness pagePhone number as Yelp displays it.
website / menubusiness pageThe business's own site and menu link.
address / region / postalCode / countrybusiness pageFull postal address.
isClosed / isClaimedbusiness pagePermanently closed; owner has claimed the page.
summarybusiness pageYelp's one-line description.

Example record

From a live run with scrapeDetails on, with hours trimmed to two days:

{
"id": "mSMZJj2pFvttWLpcDmgrEA",
"name": "Tony's Pizza Napoletana",
"url": "https://www.yelp.com/biz/tonys-pizza-napoletana-san-francisco",
"rating": 4.2,
"reviewCount": 9032,
"priceRange": "$$",
"categories": ["Pizza", "Italian", "Cocktail Bars"],
"address": "1570 Stockton St, San Francisco, CA 94133",
"street": "1570 Stockton St",
"city": "San Francisco",
"region": "CA",
"postalCode": "94133",
"country": "US",
"neighborhoods": ["North Beach/Telegraph Hill"],
"hours": [
{ "day": "Mon", "open": "12:00", "close": "22:00" },
{ "day": "Tue", "open": "12:00", "close": "22:00" }
],
"phone": "(415) 835-9888",
"website": "http://www.tonyspizzanapoletana.com",
"menu": "https://tonyspizzanapoletana.com/currentmenu",
"isClosed": false,
"isClaimed": true,
"summary": "Award-winning pizza and a classic San Francisco atmosphere.",
"image": "https://s3-media0.fl.yelpcdn.com/bphoto/ptCPOJoqVokZW7GmQ5F4NQ/o.jpg"
}

Business data only

Review text, reviewer names and photo authors also appear on these pages, and this Actor deliberately leaves them out. They are personal data, and a list of businesses does not need them.

How much does it cost to scrape Yelp?

  • $3.00 per 1,000 businesses from search results (listing-item).
  • $15.00 per 1,000 businesses opened on their own page (product-detail), when scrapeDetails is on.

You are charged only for rows that reach your dataset; failed pages cost nothing. No proxy is needed by default, so there is no proxy bill on top of Apify compute.

Tips

  • Write the place the way Yelp would: Austin, TX, Brooklyn, NY, or a ZIP code.
  • Go wide before you go deep. Ten searches at one page each usually beat one search at ten pages, because Yelp's later pages drift away from the place you asked for.
  • Leave scrapeDetails off unless you need phone or website. Search rows are a fifth of the price.
  • Set maxTotalChargeUsd on the run for a hard spend cap; the Actor stops fetching when it is reached.

Limits and failure behaviour

  • 100 pages per run, hard, to keep one run from flooding the shared solver. Split bigger jobs across runs.
  • Failures never enter the dataset. Each run writes a RUN_SUMMARY record to the key-value store with pages fetched, pages failed, and why.
  • Pagination is never speculative. Page 2 is fetched only after page 1 confirms it exists.

FAQ

Is scraping Yelp legal? This Actor collects publicly visible business information and no personal data. You are responsible for how you use it: check Yelp's terms and the law where you operate before running at scale.

Is this affiliated with Yelp? No. It is an independent tool with no connection to Yelp or any bot-protection vendor.

Something broke, or you need a field we skip? Open an issue on the Issues tab. For volume or a custom build, reach us through xhr.dev.


Built by xhr.dev. Independent tool, not affiliated with Yelp or any bot-protection vendor.