All scrapers

Business data

Yelp Local Scraper

yelp.com

Yelp Protection
Served by plugin endpoints

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.

Read the API docs

Related scrapers

Start scraping this site today

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