All scrapers

Business data

Yelp Local Scraper

yelp.com

93% Success rate
3.3s Avg response
Yelp Protection
1,125 calls Measured over

Yelp is served through a dedicated plugin endpoint rather than the generic page fetch. In search mode, give it a term and a location - like coffee in San Francisco, CA - and it returns the businesses already parsed: name, rating and review count, price tier, categories, address and neighbourhood, and a clean listing URL; filter by sort, price and open-now, and page through as many as you need. In detail mode, give it a business URL and it returns one place in full - phone, website, opening hours, attributes, specialties, review highlights, photos and popular dishes. It reads Yelp's own embedded data behind its anti-bot, and because Yelp serves US-first the exit defaults to the US for you - so keep bulk runs paced and steady.

What you can extract

  • Business name, rating and review count
  • Price tier ($ to $$$$) and categories
  • Address, neighbourhood and a clean listing URL
  • Detail mode: phone, website and opening hours
  • Detail mode: attributes, specialties and popular dishes
  • Detail mode: photos and review highlights

Dedicated endpoints

/local/yelp

Yelp business search + detail

Yelp local businesses in two modes. Search (mode=search): find_desc plus find_loc returns a businesses array with name, rating, reviewCount, priceRange, categories, address, neighborhoods, url and image; filter with sort, price and open_now and page with max_results. Detail (mode=detail): one business by url with phone, website, hours, attributes, specialties, review highlights, photos and popular dishes. Defaults to a US exit.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/local/yelp?mode=search&find_desc=coffee&find_loc=San%20Francisco%2C%20CA"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/local/yelp",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"mode": "search", "find_desc": "coffee", "find_loc": "San Francisco, CA"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const data = await su.yelpSearch('coffee', 'San Francisco, CA', { sort: 'rating' });
console.log(data);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Read the API docs

Frequently asked questions

Is it legal to scrape Yelp?

Collecting publicly available Yelp data such as business names, ratings and opening hours is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape Yelp without getting blocked?

Yelp runs its own anti-bot protection. The ScrapeUnblocker plugin rotates residential and ISP exits and handles challenges for you, then returns the businesses as JSON. In ScrapeUnblocker's benchmark it returned real content on 93% of 1,125 calls, about 3.3s per call.

What Yelp data can I get?

Search mode returns each business with its name, rating and review count, price tier ($ to $$$$), categories, address, neighbourhood, a clean listing URL and an image. Detail mode returns one business in full: phone, website, opening hours, attributes, specialties, review highlights, photos and popular dishes.

Do I need a Yelp API or account?

No. The Yelp plugin returns business data as JSON without a Yelp API account. Use mode=search with find_desc and find_loc, such as coffee in San Francisco, CA, or mode=detail with a Yelp business URL to get one place in full.

Can I collect Yelp businesses at scale?

Yes. A search call collects up to 240 businesses across pages with max_results, and calls run in parallel up to your plan's concurrency limit: 20 to 100 concurrent requests on Pay as you go, Starter and Pro, and 200 to 400 on Business, Scale and Ultimate. Keep bulk runs paced and steady. The plugin defaults to a US exit.

How much does it cost to scrape Yelp?

Each Yelp plugin call is one request, and 1 request = 1 credit: EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. A plugin search is one call, and the response already holds the full result set. Blocks, timeouts and errors on ScrapeUnblocker's side are not billed. The free trial includes 500 requests, no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.