Reviews & apps · Live on Apify

Yelp Scraper: Businesses, Reviews and Menus

Get public Yelp data without login or API key. Search by keyword and city, or paste business links. Choose profiles or reviews. Export rows to CSV, Excel or JSON.

About $2.70 for 1,000 results$0.0027 per result + $0.00027 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

recordTypereview
businessIdWavvLdfdP6g8aZTtbBQHTw
businessNameGary Danko

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: search in What to collect. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Search Yelp by keyword and city, or paste business links, and get profiles with phones, websites, hours, photos, menus and reviews. Rows land in a table you can export to CSV, Excel or JSON, or read by API. You need no login and no API key, and 10 businesses take about a minute and cost about $0.044.

  • Find businesses: run a Yelp search by keyword and location, or from a Yelp search link, and save one full profile per business.
  • Business profiles: read the profiles for business links, aliases or IDs you already have.
  • Reviews: save one row per review for the businesses you list, with text, rating, date, language and owner reply.

Good for

  • You build a local lead list with phones and websites for a category and city.
  • You compare ratings, price levels and amenities across competing venues.
  • You read new reviews of your own or rival businesses on a schedule.
  • You collect menu items and prices for restaurant research.

Who uses it

Local lead builders

Make a list with phones and websites for a category and city.

Restaurant researchers

Collect menu items and prices.

Reputation teams

Read new reviews of your business or a rival.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Start fee$0.00027Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.
Business profile$0.0027 (from $0.00189 on paid Apify plans)One saved business profile.
Review$0.000255 (from $0.000179 on paid Apify plans)One saved review.
Search page$0.0165 (from $0.01155 on paid Apify plans)One successfully parsed Yelp search page, including an empty page.
Detail page$0.0014 (from $0.00098 on paid Apify plans)One successfully parsed review or extra gallery/Q&A page, including filtered or unchanged pages; or a confirmed missing business lookup. No charge for transport or source errors.

Examples

  • One result: about $0.003.
  • 1,000 results: about $2.70.
  • Every day 100 results, for 30 days: about $8.11 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 1,800 results.

Prices checked on 8 November 2026. See the current price on Apify.

Questions

Do I need a Yelp account or API key?

No. You need only an Apify account.

Can I get owner emails?

No. The run saves the phone and website the business publishes on Yelp.

Why do two identical searches differ?

Yelp reorders results between runs and repeats some businesses. A larger Maximum results gives a steadier list.

Can I get more than 240 businesses?

Yes, with several locations or queries. Each pair stops at 240 positions, and repeats inside a pair are removed, so expect about 200 different businesses.

How do I get only new reviews?

Turn on Only new results, set a State name, and start the same input on a schedule.

Can I set a cost limit?

Yes. Set Maximum cost per run in Run options. Rows saved before the limit stay yours.

Details

Step by step on Apify
  1. Open the Input tab and keep What to collect on Find businesses (box 1).
  2. Keep coffee in Search query, or type your own keyword (box 2).
  3. Keep San Francisco in Search location, or type your own city (box 3).
  4. Keep Maximum results at 10 (box 4).
  5. Click Start.
  6. When the run ends, open the Output tab (box 6).
  7. Check name, rating, reviewsCount, address.formatted, phone and website (box 7). Some businesses publish no phone or website, so those cells can show null.
Use cases
TaskInputYou getKey fieldsNext step
Build a local lead listFind businesses, keyword and city, Businesses with a website onBusinessname, phone, website, address, categoriesCSV for a CRM or outreach sheet
Compare rival venuesBusiness profiles, list of linksBusinessrating, reviewsCount, priceRange, amenities, hoursGoogle Sheets or BI table
Watch new reviewsReviews, business IDs, Only new results onReviewrating, text, date, ownerReply, urlApify schedule plus Slack or Notion summary
Study restaurant menusBusiness profiles, Menu and popular dishes onBusinessmenu, popularDishes, menuUrlJSON for pricing analysis
Analyse customer opinionsReviews, date range and keywordsReviewtext, language, translatedText, reactionsText analysis or LLM pipeline
Tips for better results
  • Yelp shows 240 positions per query and location. Use several locations for a big area.
  • Turn on Only new results and set a State name to get only new reviews.
  • Set Maximum cost per run in Run options to cap your spend.
Limits and good to know
  • Public data only. The run uses no login and no customer cookies. Yelp's terms of service apply to how you use the data, so check them for your case
  • The source can change. The run depends on Yelp's public data feeds, which are not a documented API. If Yelp changes one, reads fail with a *_FORMAT_CHANGED code rather than saving wrong data
  • Countries. Tested on US businesses through Yelp's public frontend. Other countries can work but are not all tested
  • Search depth. Yelp shows 240 positions per query and location. It repeats some businesses on later pages, and the run saves each one once, so two deep searches gave 185 and 204 different businesses from 24 pages. Repeats cost no row, so a page brings about 8 rows, not 10. There is no automatic map splitting, so use several locations for bigger areas
  • Search order. Yelp's order differs between runs, so a monitor with a low Maximum results can return different businesses each time
  • Photos and questions. A profile includes up to 25 gallery items and 2 question previews. Larger values load paid pages. For business videos, url is the thumbnail only
  • Non-recommended and removed reviews. These lists have a fixed order, and language and translation are null
  • Monitor memory. Only new results keeps the latest 100,000 hashed IDs, so a very old row can come back. If the memory cannot be opened, you get all results and a stateWarning in RUN_SUMMARY

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "recordType": "review",
  "status": "complete",
  "source": "Yelp",
  "businessId": "WavvLdfdP6g8aZTtbBQHTw",
  "businessName": "Gary Danko",
  "businessAlias": "gary-danko-san-francisco",
  "reviewId": "xtEERBKGS2OT72htwE2oDA",
  "url": "https://www.yelp.com/biz/gary-danko-san-francisco?hrid=xtEERBKGS2OT72htwE2oDA",
  "rating": 5,
  "text": "Review text as published on Yelp.",
  "translatedText": null,
  "language": "en",
  "date": "2026-11-02T04:16:53Z",
  "reactions": { "helpful": 0, "thanks": 0, "love_this": 0, "oh_no": 0 },
  "photos": [],
  "videos": [],
  "ownerReply": null,
  "previousReviews": [],
  "fetchedAt": "2026-11-03T00:06:42.987Z"
}

Use it from code

Actor ID: cliqtomedia/yelp-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/yelp-scraper").call(run_input={
    "mode": "search",
    "query": "coffee"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~yelp-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "query": "coffee"}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/yelp-scraper")
result = tool.invoke({"run_input": {"mode": "search", "query": "coffee"}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (40)
FieldTypeMeaning
recordTypestringWhether this row is a business profile or a review.
statusstringCompleteness of this result.
sourcestringSource of the data: Yelp.
businessIdstringEncoded Yelp business ID.
namestringBusiness display name.
aliasstringBusiness alias used in Yelp URLs.
businessNamestringName of the business reviewed.
businessAliasstringURL alias of the reviewed business.
reviewIdstringUnique Yelp review ID.
urlstringCanonical Yelp page or review link.
ratingnumberBusiness average rating or review stars.
reviewsCountintegerNumber of recommended reviews reported by Yelp.
categoriesarrayBusiness categories with aliases and titles.
addressobjectStreet, city, region, postal code, country, and formatted business address.
neighborhoodsarrayPublic business neighborhoods.
coordinatesobjectLatitude and longitude from Yelp business map.
phonestringPublic business phone number.
websitestringBusiness website URL.
menuUrlstringLink to the menu published on the business profile.
priceRangestringYelp price range, from $ to $$$$.
isClosedbooleanWhether the business is permanently closed.
isOpenNowbooleanWhether Yelp reports the business open at fetch time.
hoursarrayWeekly opening hours, grouped by weekday.
descriptionstringBusiness specialties or description.
summarystringShort profile summary published by Yelp.
yearEstablishedintegerEstablishment year when published.
historystringBusiness history text when published.
amenitiesarrayFeatures and amenities with their names, labels, and values.
photosarrayBusiness gallery or review media with IDs, URLs, and captions. Business gallery mediaType distinguishes photo and video; a video URL is its public thumbnail, not a playable video.
photosCountintegerTotal business media items reported by Yelp.
questionsarrayPublic community questions and answers.
popularDishesarrayPopular dishes shown by Yelp; this is not the complete restaurant menu.
rankingintegerPosition in the current search results.
isAdbooleanWhether the search result is sponsored.
searchQuerystringSearch query that found this business.
searchLocationstringSearch location that found this business.
snippetstringReview excerpt from the search result.
textstringFull review text.
languagestringLanguage code of the review text.
datestringReview publication time in ISO 8601 UTC.
Input settings (25)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
What to collectmodestring"search"
Search queryquerystring"coffee"
Search locationlocationstring"San Francisco"
Business URLs or aliasesbusinessUrlsarray
Business IDsbusinessIdsarray
More search queriessearchTermsarray
More search locationslocationsarray
Maximum resultsmaxItemsinteger10
Businesses per searchmaxBusinessesPerSearchinteger240
Search ordersearchSortstring"recommended"
Category aliascategorystring""
Price levelspriceLevelsarray
Business featuresfeaturesarray
Open nowopenNowbooleanfalse
Include sponsored resultsincludeAdsbooleanfalse
Also collect reviewsincludeReviewsbooleanfalse
Reviews per businessmaxReviewsPerBusinessinteger100
Review orderreviewsSortstring"newest"
Review ratingsratingsarray
Review languagelanguagestring"en"
Review keywordskeywordsarray
Reviews fromdateFromstring""
Reviews throughdateTostring""
Translate reviews totranslateTostring""
Public reviewer detailsincludeReviewerDetailsbooleanfalse

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure