Business data
Yelp Local Scraper
yelp.com
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(results); Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.
Related scrapers
Start scraping this site today
Free tier included. No credit card required to test it.