Yelp Scraper - Businesses & Reviews via Yelp API avatar

Yelp Scraper - Businesses & Reviews via Yelp API

Pricing

from $3.00 / 1,000 business returneds

Go to Apify Store
Yelp Scraper - Businesses & Reviews via Yelp API

Yelp Scraper - Businesses & Reviews via Yelp API

Pull Yelp businesses and reviews reliably through Yelp's official Fusion API - name, rating, review count, price, phone, address, GPS, categories and review text. Bring your own free Yelp API key (60 seconds to create). No blocked runs, no captchas. Runs without a key are never charged.

Pricing

from $3.00 / 1,000 business returneds

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Yelp Businesses & Reviews Scraper

Pull Yelp business listings and reviews through Yelp's own Fusion API — the official, documented endpoint. You bring a free Yelp API key; the actor does the searching, pagination, de-duplication and shaping.

$3.00 per 1,000 businesses ($0.003 each), plus $0.00001 each time a run starts. Flat rate — no volume tiers, no plan gates — and you are charged only for businesses actually returned. Reviews are included in the business row at no extra charge: there is no separate per-review event.

Why the API and not a browser

Yelp's public pages sit behind DataDome, which returns a 403 and a captcha to automated requests from datacenter, ISP and clean residential addresses alike. There is no keyless route that works reliably, and a browser attempt burns residential bandwidth to arrive at a guaranteed block.

So this actor doesn't pretend. Supply a yelpApiKey and you get real data; supply nothing and you get a clearly labelled, free sample row telling you where to get a key — no browser launched, no proxy traffic, no charge. A key is free from https://www.yelp.com/developers/v3/manage_app and takes about a minute to create.

Input modes

  • Search / listings — set searchQueries (e.g. ["coffee in San Francisco"]), or the single query + location fields. Returns one row per business in the results list.
  • Detail — set businessUrls (https://www.yelp.com/biz/...) and/or businessSlugs (the part after /biz/). Returns the full business record for each.

You can combine both modes in one run. maxItems caps the total across all inputs.

Example input

{
"yelpApiKey": "your-free-fusion-key",
"searchQueries": ["coffee in San Francisco"],
"businessUrls": ["https://www.yelp.com/biz/blue-bottle-coffee-san-francisco-7"],
"maxItems": 50,
"maxReviews": 3,
"countryCode": "US"
}
FieldDefaultNotes
yelpApiKeyYour free Fusion API key. Paste the API Key, not the Client ID. Can also be set as the YELP_API_KEY environment variable.
searchQueries"{term} in {location}" per entry.
query + locationSingle-search alternative. Ignored if searchQueries is set.
businessUrls / businessSlugsDirect business targets.
maxItems50Total businesses across all inputs. Search paginates in pages of 50.
maxReviews0Reviews to attach per business. Yelp's Fusion API returns at most 3 reviews per business, so values above 3 return 3.
countryCodeUSYelp region, two-letter ISO.
slackConnector / slackChannelOptional. Post a run summary (count, top 5 businesses, dataset link) to Slack.
notionConnector / notionParentIdOptional. Write each business as a page into your Notion workspace.

Output

One dataset item per business:

{
"ok": true,
"name": "Blue Bottle Coffee",
"yelpUrl": "https://www.yelp.com/biz/blue-bottle-coffee-san-francisco-7",
"slug": "blue-bottle-coffee-san-francisco-7",
"category": "Coffee & Tea",
"rating": 4.1,
"reviewCount": 2543,
"price": "$$",
"phone": "(510) 653-3394",
"address": "66 Mint St, San Francisco, CA 94103",
"city": "San Francisco",
"state": "CA",
"zip": "94103",
"lat": 37.782, "lng": -122.407,
"isAd": false,
"businessId": "…",
"source": "yelp-fusion-api",
"reviews": [
{ "author": "Jane D.", "rating": 5, "text": "Great espresso…", "date": "2025-12-01", "url": "https://www.yelp.com/biz/…" }
]
}

reviews is populated when maxReviews > 0 and is an empty array otherwise. Businesses are de-duplicated by businessId across every search and direct target in the run. Any field Yelp does not publish for a business comes back null rather than guessed.

Pagination and depth

Fusion caps a single call at 50 results and an offset at 1000, so the actor paginates in pages of 50 and stops at Yelp's own ceiling. maxItems caps the total.

Pricing

EventWhenPrice
Actor startOnce per run, per GB of run memory$0.00001
Business returnedEach business row written to the dataset$0.003 ($3.00 / 1,000)

The row is written before the charge fires. Blocked, empty and bad-input runs emit a diagnostic row (ok: false with an errorCode such as NO_RESULTS, BAD_INPUT or NETWORK) and are never charged. A run with no API key returns the labelled sample and is not charged either.

Because reviews ride along free, a 50-business run with three reviews each returns 150 reviews and costs $0.15001.

Yelp's Fusion API has its own free daily call quota on your key; that is between you and Yelp and costs nothing here.

Troubleshooting

  • A _sample row with getKeyAt — no yelpApiKey was supplied. Add one; the run was free.
  • BAD_INPUT with a key-rejected hint — Yelp refused the key. Make sure you pasted the API Key from the Fusion app page and not the Client ID.
  • NO_RESULTS — the term or location returned nothing. Try a broader term or a larger area.
  • Fewer reviews than requested — Fusion returns a maximum of 3 reviews per business. That is Yelp's limit, not a throttle added here.