Yelp Scraper: Businesses, Reviews, Menus - No Login avatar

Yelp Scraper: Businesses, Reviews, Menus - No Login

Pricing

from $1.89 / 1,000 business profiles

Go to Apify Store
Yelp Scraper: Businesses, Reviews, Menus - No Login

Yelp Scraper: Businesses, Reviews, Menus - No Login

Get Yelp business profiles, phones, websites, hours, photos, menus and reviews from a search or link. Track new reviews over time. No login or API key.

Pricing

from $1.89 / 1,000 business profiles

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Features

Limited permissions

Share

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.

Yelp Scraper turns a search or business link into a table of profiles, phones, websites, menus and reviews

Table of contents

What it does

Pick one of three modes in What to collect:

  • 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.

Optional extras add menus, more photos, questions with answers, and review rows next to each profile. Monitoring mode saves only businesses and reviews it has not seen in earlier runs.

Good fit

  • 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.

It is not a good fit if you need owner emails, reviewer contact details or private account data. Those fields are not collected. For a whole metro area, split the search by neighborhood or ZIP code, because each Yelp search stops at 240 positions, which give about 200 different businesses.

๐Ÿ‘‰ Try it now: open the input form

How it works

  1. You enter a search, or the businesses you already know, and choose what to collect.
  2. The run reads public Yelp pages and data feeds. You supply no account, cookie or proxy.
  3. Each business or review becomes one row. Open the rows in the Output tab, export them, or fetch them by API.

If one business cannot be read, the run skips it, writes the reason to RUN_SUMMARY and moves on.

๐Ÿ‘‰ Try it now: open the input form

Quick start

Input form with What to collect, Search query, Search location and Maximum results marked

  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.

Output table with the Output tab and the name, rating, reviewsCount, address, phone and website columns marked

  1. When the run ends, open the Output tab (box 6).
  2. Check name, rating, reviewsCount, address.formatted, phone and website (box 7). Some businesses publish no phone or website, so those cells can show null.

Expected result: 10 business rows in about a minute, for about $0.044 on the Free plan.

๐Ÿ‘‰ Try it now: open the input form

Use cases

Buyer jobInput pathOutput entityKey fieldsNext integration
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

๐Ÿ‘‰ Try it now: open the input form

Input

Input fields

FieldPlain nameTypeRequiredDefault / prefillAllowed valuesEffectExampleRecommendation
modeWhat to collectStringYessearchsearch, business, reviewsPicks the kind of rows you getreviewsStart with search
querySearch queryStringFor a searchprefill coffeeTextKeyword, category or name to look upplumberNeeds a location too
locationSearch locationStringFor a searchprefill San FranciscoTextCity, address, neighborhood or ZIP94103Narrow areas find more in total
businessUrlsBusiness URLs or aliasesArrayFor business linksemptyYelp /biz/ links or aliasesReads these businessesgary-danko-san-franciscoRegional Yelp links work too
businessIdsBusiness IDsArrayNoemptyYelp IDsReads reviews without a profile lookupWavvLdfdP6g8aZTtbBQHTwCheapest path for review monitors
searchTermsMore search queriesArrayNoemptyTextRuns each query in each location, replaces Search query["bakery","deli"]Multiplies search pages
locationsMore search locationsArrayNoemptyTextReplaces Search location["Oakland","Berkeley"]Use to cover a metro area
maxItemsMaximum resultsIntegerNo101 or moreTotal saved rows, business and review rows together100Main cost control
maxBusinessesPerSearchBusinesses per searchIntegerNo2401 or moreCaps one query and location pair50Lower it for many pairs
searchSortSearch orderStringNorecommendedrecommended, rating, review_count, distanceYelp order for resultsratingKeep the default for full lists
categoryCategory aliasStringNoemptyYelp category aliasMoves results toward a category. Yelp can still return nearby matches from other categoriescoffeeOptional
priceLevelsPrice levelsArrayNoempty1, 2, 3, 4Filters on Yelp's search page["1","2"]Optional
featuresBusiness featuresArrayNoemptyYelp feature keysFilters on Yelp's search pageDogsAllowed, WiFi.freeOptional
openNowOpen nowBooleanNofalsetrue, falseAsks Yelp for open businesses, then drops any whose profile says closed. Unknown hours staytrueEach dropped profile costs detail-page
includeAdsInclude sponsored resultsBooleanNofalsetrue, falseKeeps sponsored search rowstrueMarked with isAd
searchUrlsYelp search URLsArrayNoemptyYelp /search linksReplaces query and location, starts from the first pagehttps://www.yelp.com/search?find_desc=pizza&find_loc=BostonCopy filters from Yelp
minRatingMinimum business ratingNumberNo00 to 5Drops businesses below this rating, not reviews4The read still costs detail-page
minReviewsMinimum business review countIntegerNo00 or moreDrops businesses with fewer reviews50The read still costs detail-page
onlyWithWebsiteBusinesses with a websiteBooleanNofalsetrue, falseDrops businesses without a websitetrueThe read still costs detail-page
includeReviewsAlso collect reviewsBooleanNofalsetrue, falseAdds review rows after each businesstrueSet Maximum results for both kinds
maxReviewsPerBusinessReviews per businessIntegerNo1001 or moreCaps reviews for one business20Lower it for wide searches
reviewsSortReview orderStringNonewestrecommended, newest, oldest, rating_desc, rating_asc, elitesYelp review ordernewestKeep newest for monitors
ratingsReview ratingsArrayNoempty1 to 5Keeps reviews with these stars["1","2"]Good for complaints
languageReview languageStringNoenLanguage code, empty for allFilters reviews by languageesClear it to get every language
keywordsReview keywordsArrayNoemptyTextKeeps reviews with at least one word["parking"]Filtered pages still cost
dateFromReviews fromStringNoemptyYYYY-MM-DD or 30 days, 2 monthsOldest review date30 daysStops early with newest
dateToReviews throughStringNoemptyYYYY-MM-DDNewest review date, inclusive2026-10-31Optional
translateToTranslate reviews toStringNoemptyLanguage codeAdds translatedText where Yelp has itenRecommended reviews only
reviewTypeReview listStringNorecommendedrecommended, not_recommended, removedPicks Yelp's review listnot_recommendedThe other two lists have fixed order
includeReviewerDetailsPublic reviewer detailsBooleanNofalsetrue, falseAdds name, profile link, review count and Elite yeartrueLeave off unless needed
maxPhotosPhotos per businessIntegerNo200 or moreFirst 25 come with the profile, more load paid pages35Keep at 25 or lower to avoid page fees
maxQuestionsQuestions per businessIntegerNo20 or moreUp to 2 include a top-answer preview, more load paid pages3Keep at 2 or lower to avoid page fees
includeMenuMenu and popular dishesBooleanNofalsetrue, falseAdds menu and popularDishestrueMany businesses have no menu on Yelp
onlyNewOnly new resultsBooleanNofalsetrue, falseSaves only rows not seen in earlier runstrueNeeds State name
stateNameState nameStringWith Only new resultsemptyLetters, numbers, dashesNames the memory shared between runssf-coffeeUse one name per monitor
deliveryConnectorSend results to (optional)StringNoemptySlack, Notion or another MCP connectorSends a short summary after the runSlackSee below
deliveryTargetNotion page or channel (optional)StringWith some connectorsemptyNotion page link, Slack channel IDWhere the summary goesC0123456789Depends on the connector

Interacting settings

WhenInput AInput BEffective behaviorExampleCost or result effect
Lists replace single fieldssearchTermsqueryThe list wins["deli"] and coffeeOnly deli is searched
Links replace textsearchUrlsquery, locationLinks wina pizza link and coffeeOnly the link is searched
Find businesses gets links toobusinessUrlsqueryBoth runone link and one searchYou pay for both
Reviews next to profilesincludeReviewsmaxItemsBoth kinds count toward the totalmaxItems 50Profiles can use up the total before reviews
Filters run after the readminRating, minReviews, onlyWithWebsite, openNowsearch and business, not reviewsRejected profile saves no rowminRating 4Each rejected profile costs one detail-page
Date limit and orderdateFromreviewsSortWith newest, reading stops at the first old page30 daysOther orders read every page
Non-recommended listsreviewTypereviewsSort, language, translateToThe last three apply only to recommendedremovedTranslation and language stay null
Monitor needs a nameonlyNewstateNameNo name means the run fails before any readonlyNew aloneCosts the start fee only

Input examples

Search for businesses with a website:

{
"mode": "search",
"query": "dentist",
"location": "Austin, TX",
"maxItems": 100,
"onlyWithWebsite": true
}

Expected output: up to 100 business rows that have a website.

Cost note: about 12 search pages plus 100 businesses, about $0.47 on the Free plan. Each rejected profile adds $0.0014. Set a timeout of 10 minutes in Run options, because 100 search rows took about 6 to 7 minutes.

Read one profile with menu and extra photos:

{
"mode": "business",
"businessUrls": ["https://www.yelp.com/biz/sotto-mare-san-francisco-4"],
"includeMenu": true,
"maxPhotos": 35
}

Expected output: one business row with menu, popularDishes and up to 35 items in photos.

Cost note: about $0.003 for the profile, plus $0.0014 for each extra photo page.

Monitor the newest reviews of one business:

{
"mode": "reviews",
"businessIds": ["WavvLdfdP6g8aZTtbBQHTw"],
"maxItems": 100,
"reviewsSort": "newest",
"dateFrom": "30 days",
"onlyNew": true,
"stateName": "gary-danko-reviews"
}

Expected output: first run saves the matching reviews. Later runs save only reviews not seen before, and the dataset can be empty.

Cost note: a later run with nothing new costs the start fee plus $0.0014 per review page read, from about $0.0017.

๐Ÿ‘‰ Try it now: open the input form

Output

Output fields

FieldMeaningTypeCan be empty?Example / enumSource / notes
recordTypeRow kindStringNobusiness, reviewSet by the run
statusRow completenessStringNocompleteSet by the run
sourceData sourceStringNoYelpSet by the run
businessIdYelp business IDStringNoUXCtOlad97FzZNWyxOii3gUse for later review runs
nameBusiness nameStringBusiness rows onlyQ Specialty CoffeeProfile
aliasYelp link slugStringBusiness rows onlyq-specialty-coffee-san-franciscoProfile
businessNameBusiness of this reviewStringReview rows onlyGary DankoReview
businessAliasSlug of that businessStringReview rows onlygary-danko-san-franciscoReview
reviewIdYelp review IDStringReview rows onlyxtEERBKGS2OT72htwE2oDAReview
urlYelp link to the rowStringNohttps://www.yelp.com/biz/...Profile or review
ratingStar ratingNumberYes4.2Average on businesses, stars on reviews
reviewsCountYelp review totalIntegerYes356Profile
categoriesYelp categoriesArrayEmpty array{alias, title}Profile
addressStreet, city, region, postal code, country and formattedObjectYes3490 California St, Ste AProfile
neighborhoodsYelp neighborhoodsArrayEmpty arrayPresidio HeightsProfile
coordinatesLatitude and longitudeObjectYes37.786916, -122.451689Profile
phonePublic phoneStringYes, often(415) 757-0536null if the business lists none
websiteBusiness websiteStringYeshttp://www.qspecialtycoffee.comnull if the business lists none
menuUrlMenu linkStringYes, oftenLinkProfile
priceRangePrice levelStringYes$$Profile
isClosedClosed for goodBooleanYesfalseProfile
isOpenNowOpen at read timeBooleanYestrueProfile
hoursOpening hoursArrayEmpty arrayWeekday and timesProfile
specialHoursHoliday hoursArrayYesDate and timesProfile
descriptionText from the businessStringYesTextProfile
summaryYelp's summaryStringYesTextProfile
yearEstablishedFounding yearIntegerYes, often1999Profile
historyBusiness history textStringYes, oftenTextProfile
amenitiesName, label and valueArrayEmpty arrayValidated parkingProfile
photosPhoto or video itemsArrayEmpty array{photoId, url, caption, label}For business videos, url is the thumbnail
photosCountPhotos on YelpIntegerYes120Profile
questionsQuestions and answersArrayEmpty array{text, answers}Answer depth depends on maxQuestions
popularDishesPopular menu itemsArrayYes{name, priceText}With Menu and popular dishes
menuMenu items with pricesArrayYes, or absentItem name and priceWith Menu and popular dishes. null if the business has none or Yelp refused the menu, and menuBlocked in RUN_SUMMARY counts refusals
rankingPosition in the searchIntegerYes3Search rows, order changes between runs
isAdSponsored resultBooleanYesfalseSearch rows
searchQueryQuery that found itStringYescoffeeSearch rows
searchLocationLocation that found itStringYesSan FranciscoSearch rows
snippetShort text Yelp shows on the search page, usually from a reviewStringYesJust discovered the great coffee shop...Search rows
textReview textStringReview rows onlyTextReview
translatedTextYelp translationStringYesTextWith Translate reviews to
languageReview languageStringYesenReview
dateReview date, UTCStringReview rows only2026-11-02T04:16:53ZReview
reactionsReader reactionsObjectYes{helpful, thanks, love_this, oh_no}Review
videosReview videosArrayEmpty arrayLinkReview
ownerReplyReply from the businessObjectYes{text, date}Review
previousReviewsEarlier reviews by the same personArrayEmpty array{rating, text, date}Review
reviewerReviewer detailsObjectYes, or absentDisplay name, profile linkWith Public reviewer details
recommendationStatusYelp review listStringYesnot_recommendedNon-recommended lists
fetchedAtRead time, UTCStringNo2026-11-04T12:05:48ZSet by the run

null means Yelp shows no value for that field. An empty array means the list exists and has no items. A field is absent only when the row kind does not use it or its option is off.

Output entities and surfaces

SituationDataset, API, KVS or live viewResult shapeUser action
NormalDataset table with Business profiles, Reviews and All fields views, API /items, RUN_SUMMARYstatus completeExport or fetch
Domain-emptyEmpty dataset, RUN_SUMMARY complete or not_foundNo rows, counts in the summaryWiden the search or check the link. A monitor with nothing new also ends here
PartialSaved rows stay, run SUCCEEDED, RUN_SUMMARY partial, stopReason ITEMS_SKIPPED, CHARGE_LIMIT or DEADLINERows plus itemErrors, itemErrorSample where relevantRerun skipped IDs or raise the limit
Technical failureRun FAILED, RUN_SUMMARY error or partial, stopReason holds the codeSaved rows stay in the datasetSee Troubleshooting. No page or row fee is taken for a failed read

RUN_SUMMARY also holds savedCount, businessCount, reviewCount, filteredOut, skippedSeen, notFound and delivery. menuBlocked and searchRowsUnreadable appear only when they are above 0. If a business is skipped and the run still reaches maxItems, status is complete, stopReason is MAX_ITEMS and itemErrors still counts the skip. REPORTS is the same summary with dataset and run links.

Output example

{
"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"
}

Send results to Slack or Notion

Choose a connector in Send results to (optional) and, where asked, fill in Notion page or channel (optional). After the run you get the row count, the status, up to 25 rows, and links to the dataset and the run. Delivery trouble never changes the rows. Its outcome is stored in delivery in RUN_SUMMARY.

Use case โ†’ fields

Use caseFields to read
Lead listname, phone, website, address.formatted, categories
Rival comparisonrating, reviewsCount, priceRange, amenities, hours
Review monitoringbusinessName, rating, text, date, ownerReply.text, url
Menu researchmenu, popularDishes, menuUrl

๐Ÿ‘‰ Try it now: open the input form

Pricing

Pay per event. Platform usage is included in these prices.

Pricing unitWhen you payNo plan or FreeGold and above
Run startOnce per run$0.00027$0.00027
BusinessOne saved business row$0.0027$0.00189
Search pageOne Yelp search page read, including a valid empty page$0.0165$0.01155
ReviewOne saved review row$0.000255$0.0001785
Detail pageOne extra page read: a review page, extra photo or question page, a business that does not exist, or a profile your filter rejected$0.0014$0.00098

Paid Apify plans save more: Bronze 10%, Silver 20%, Gold, Platinum and Diamond 30%. The start fee stays the same on every plan.

  • Zero results: a valid empty search costs the start fee plus one search page, about $0.017. A review page or a missing business costs one detail page.
  • Filter with no match: you pay for the pages read, because filters run after the read. A rejected profile costs one detail page and saves no row. filteredOut in RUN_SUMMARY counts every rejected profile and review.
  • Nothing new in a monitor: you pay for the search or review pages read. Seen businesses are not read again.
  • Partial results: you pay only for what was saved and read. A failed Yelp response costs nothing, so in a full source outage you pay only the start fee, $0.00027.

Cost examples

Free plan prices.

ScenarioInput scopeExpected item-event countBase chargeOptional chargeStop-cap behavior
10 businesses1 search10 business, 1 search page$0.04377NoneStops at Maximum results
100 businesses1 search, 10-minute timeout100 business, 12 search pages$0.46827Rejected profiles $0.0014 eachAbout 6 to 7 minutes. The default 5-minute timeout saves about 50 to 80
1 profile by link1 alias1 business$0.00297Menu has no fee and adds about 5 seconds. Extra photo pages $0.0014 eachEnds after the profile
3 profiles, 35 photos, 3 questions3 aliases3 business, 18 detail pages$0.03357IncludedEnds after the third profile
100 reviews1 business100 review, 3 detail pages$0.02997NoneStops at Maximum results
1,000 reviews1 business1,000 review, 21 detail pages$0.28467NoneStops at Maximum results
7,000 reviews2 businesses, 10-minute timeout7,000 review, 143 detail pages$1.98547NoneAbout 7 minutes. The default 5-minute timeout saves about 5,000
Review date filter with no match1 business, about 6,000 reviews read126 detail pages$0.17667NoneAbout 5 minutes, so a larger business can hit the default timeout
Monitor, nothing new1 business, 1 review page1 detail page$0.00167NoneDataset stays empty
Empty search1 search1 search page$0.01677NoneDataset stays empty
Source outageAnyStart only$0.00027NoneRun fails with no rows

Maximum cost per run: set it in Run options. The run stops before going over and keeps saved rows, with stopReason CHARGE_LIMIT. The lowest accepted value is $0.02.

The start fee scales with run memory per GB. The default 256 MB run pays it once.

๐Ÿ‘‰ Try it now: open the input form

Limits

  • 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.
  • Batch handling. A business that cannot be read is skipped with a reason in itemErrorSample, which lists up to 25 of them. Three failed businesses in a row stop the run as FAILED, because that points at a wider problem, and rows already saved stay.
  • Time. With the default 5-minute timeout, one business gives about 5,000 reviews, and a search gives about 50 to 80 businesses, or about 20 with menus. The number depends on the query. When time runs out, saved rows stay and the run ends with stopReason DEADLINE. Raise the timeout for more.
  • Run budget. Each run has internal limits on requests and bytes that grow with Maximum results, ending with REQUEST_LIMIT or BYTE_LIMIT. A single Yelp response over 8 MiB ends the run the same way.
  • Menus. The menu is read directly, without paid unblocking. If Yelp refuses it, the profile stays with menu null.
  • Retries. A failed search read is retried at most once, and other reads at most twice. A search page with no business data is read one more time, so one page can take up to 4 requests. You still pay for one page. A search result without profile data is skipped and counted in searchRowsUnreadable.
  • Small review runs. Each review page costs one detail page, so 1 to 10 reviews cost more than a flat per-review price.
  • Not included. Email lookup, AI summaries and custom scripts.

๐Ÿ‘‰ Try it now: open the input form

API, export and integrations

  • API: start runs and read rows with the Apify API.
  • Export: download CSV, Excel, JSON, XML or HTML from the Output tab.
  • Scheduling: use Apify schedules with Only new results for monitors.
  • Webhooks: call your endpoint when a run ends with Apify webhooks.
  • SDK: use the Python or JavaScript client.
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~yelp-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"search","query":"coffee","location":"San Francisco","maxItems":10}'

Use with AI agents (MCP)

Connect the Apify MCP server at https://mcp.apify.com?tools=cliqtomedia/yelp-scraper.

  • Minimal input: {"mode":"search","query":"coffee","location":"San Francisco","maxItems":10}
  • Key fields: name, rating, reviewsCount, address.formatted, phone, website, url
  • Typical run: 10 businesses, about a minute, about $0.044
  • Limits: keep maxItems low, and read RUN_SUMMARY to tell empty results from skipped items.

๐Ÿ‘‰ Try it now: open the input form

Troubleshooting

The run fails right after it starts

Symptom: stopReason is SEARCH_INPUT_REQUIRED, BUSINESS_INPUT_REQUIRED or STATE_NAME_REQUIRED.

Likely reason: a search needs both a query and a location or a search link, the other modes need links or IDs, and a monitor needs a name.

Check: the input of the run.

Action: fill in the missing field. You pay only the start fee.

The dataset is empty

Symptom: the run succeeded with no rows.

Likely reason: the search has no matches, filters rejected every profile or review, or a monitor found nothing new.

Check: filteredOut, skippedSeen and notFound in RUN_SUMMARY.

Action: loosen the filters or the search. For a monitor, an empty dataset is a normal result.

Symptom: FAILED with stopReason INVALID_INPUT_OR_RUNTIME.

Likely reason: a business link or a search link is not a Yelp link, or another input value is wrong.

Check: the links in the input. A business link has /biz/ and a search link has /search.

Action: fix the value and start again. You pay only the start fee.

Some businesses are missing

Symptom: status is partial and stopReason is ITEMS_SKIPPED, or itemErrors is above 0 and stopReason is MAX_ITEMS.

Likely reason: Yelp returned an error or incomplete data for those businesses.

Check: itemErrors and itemErrorSample in RUN_SUMMARY.

Action: rerun with those IDs. Skipped businesses are not charged as business rows.

The run failed with a source code

Symptom: FAILED with SEARCH_HTTP_ERROR, SEARCH_DATA_MISSING, NETWORK_ERROR, TRANSPORT_UNAVAILABLE, BUSINESS_HTTP_ERROR or a *_FORMAT_CHANGED code.

Likely reason: Yelp blocked or changed that route, or three businesses failed in a row.

Check: the code in RUN_SUMMARY, and any rows already saved.

Action: retry later. If the same code repeats, send it through the Issues tab.

Fewer rows than requested

Symptom: stopReason is CHARGE_LIMIT, DEADLINE, REQUEST_LIMIT or BYTE_LIMIT.

Likely reason: the run reached the maximum cost, the timeout or an internal budget.

Check: savedCount and the run options.

Action: raise the maximum cost or the timeout, or split the job into smaller runs. Search takes about 4 to 6 seconds per business, and about 15 with menus.

Phone or website is empty

Symptom: phone or website is null.

Likely reason: the business lists none on Yelp. In a test search for coffee in San Francisco, about 6 of 10 profiles had a phone and 7 of 10 a website.

Check: the business page on Yelp.

Action: turn on Businesses with a website if you need that field. Rejected profiles still cost one detail page each.

๐Ÿ‘‰ Try it now: open the input form

FAQ

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.

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.

Why do two identical searches differ?

Yelp reorders results between runs, repeats some businesses on later pages and adds sponsored positions. Use a larger Maximum results for a steadier list.

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.

๐Ÿ‘‰ Try it now: open the input form

๐Ÿ‘‰ Try it now: open the input form

Support

Use the Issues tab on this page. Include the run ID, the mode and the error code. Do not include tokens or cookies.

๐Ÿ‘‰ Try it now: open the input form