Request a tool
All toolsGuidesMCP serverRequest a toolPlatformsCategories
Yelp Scraper icon

Yelp Scraper

Scrape Yelp businesses and reviews via Yelp's official Fusion API: rating, review count, price, phone, address, GPS and review text.

82 runs on Apify $0.003 per business ($3 / 1,000)
Run this in the cloudRun on Apify →

Maps & Local Lead Generation

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust searchQueries, yelpApiKey, query (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.003 per business = $3 per 1,000

You are charged forWhenPrice
Business returnedCharged per business returned (blocked/empty not charged).$0.003
Actor StartCharged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.00001

Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.

Inputs

FieldWhat it doesType
searchQueriesListing searches. Each entry is "{term} in {location}", e.g. "coffee in San Francisco", "plumbers in Austin, TX". Use this OR the single query + location fields below.array
yelpApiKeyYour free Yelp Fusion API key (create one at https://www.yelp.com/developers/v3/manage_app and paste the API Key, not the Client ID). Yelp's public pages are protected by DataDome and cannot be scraped reliably, so the API is the only way to get real results. Without a key the run returns one labelled sample row and is not charged.string
queryA single search term, e.g. "coffee", "dentist", "pizza". Combine with the Location field below. Ignored if Search queries is used.string
locationCity / area for the single search term above, e.g. "San Francisco", "Austin, TX", "10001".string
businessUrlsYelp business page URLs (https://www.yelp.com/biz/...) to scrape for full detail + reviews. Use this for detail mode.array
businessSlugsYelp business slugs (the part after /biz/, e.g. "blue-bottle-coffee-san-francisco-7") to scrape for full detail + reviews.array
maxItemsMaximum number of businesses to collect across all inputs (search paginates in batches of 10). Note: on a search row, only name, yelpUrl and slug are guaranteed — rating, reviewCount, category, price, phone, address, city, state, zip, lat and lng can be null when Yelp's structured data is missing and the DOM fallback is used. Use businessUrls/businessSlugs (detail mode) for complete records.integer
maxReviewsFor business URL/slug detail mode: how many reviews to include per business (author, rating, text, date). 0 = no reviews. Listing search rows never include reviews.integer
countryCodeResidential proxy country (2-letter ISO). Yelp is geo-aware; use US for US searches, GB/CA/etc. for other Yelp regions.string
slackConnectorOptional. Post a summary of the scrape (count + top 5 businesses + dataset link) to Slack when the run finishes. Authorize a Slack connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default) — results are always saved to the dataset regardless.string
slackChannelChannel for the Slack summary (only used if a Slack connector is set), e.g. "#leads". Defaults to #general.string
notionConnectorOptional. Write each scraped business as a page into your Notion when the run finishes — great for turning leads into a CRM. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default) — results are always saved to the dataset regardless.string
notionParentIdOptional. The Notion data source ID of the database to write businesses into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead.string

What you get

A structured dataset — each result includes fields like:

nameratingreviewCountcategorypriceyelpUrl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in Maps & Local Lead Generation

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Google Maps Reviews Scraper iconMaps & Local Lead Generation

Google Maps Reviews Scraper

Scrape Google Maps reviews at $0.27 per 1,000. Rating, full text, exact date, reviewer and review count, owner reply and photos.

Ready to run — no setup

Google Maps Reviews Scraper iconMaps & Local Lead Generation

Google Maps Reviews Scraper

Scrape Google Maps reviews by place URL, place ID or search: rating, full text, date, reviewer, owner reply, photo count.

Ready to run — no setup

Yandex Maps Scraper iconMaps & Local Lead Generation

Yandex Maps Scraper

Extract Yandex Maps business listings: name, address, GPS coordinates, category, rating, review count, phone, website and opening hours.

Ready to run — no setup

Google Maps Scraper iconMaps & Local Lead Generation

Google Maps Scraper

Scrape Google Maps business listings by category and city: name, phone, website, rating, reviews, lat/lng and place ID. Build local lead lists fast.

24 use cases

Google Reviews Monitor — Multi-Location Alerts & Reports iconMaps & Local Lead Generation

Google Reviews Monitor — Multi-Location Alerts & Reports

Track Google Maps reviews across all your locations. Get only-new deltas, negative-review and rating-drop alerts to Slack, plus AI summaries and reply drafts.

4 use cases

2GIS Places Scraper iconMaps & Local Lead Generation

2GIS Places Scraper

Scrape 2GIS places at $0.50 per 1,000: name, category, address, coordinates, phone, website, rating and reviews. Russia and CIS coverage. No API key.

Ready to run — no setup

See all Maps & Local Lead Generation →

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.