Yandex Maps Reviews Scraper: Ratings, Replies, Place Summary avatar

Yandex Maps Reviews Scraper: Ratings, Replies, Place Summary

Pricing

from $1.20 / 1,000 reviews

Go to Apify Store
Yandex Maps Reviews Scraper: Ratings, Replies, Place Summary

Yandex Maps Reviews Scraper: Ratings, Replies, Place Summary

Scrape Yandex Maps reviews by place URL, id or search: stars, text, date, likes, photos and the business's reply, with the place on every row. Newest first, star and date filters, optional per-place summary (topics, reply rate, recent averages), new-review monitoring. Reviewer names only on request.

Pricing

from $1.20 / 1,000 reviews

Rating

0.0

(0)

Developer

Amit Aviv

Amit Aviv

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Reviews of Yandex Maps places, newest first: star rating, text, date, likes, photos and the business's reply, with the place's name, address and rating on every row. Give place URLs or ids, or a search term and a city. It works over plain HTTP (no browser), so a run of a few hundred reviews takes seconds; you pay only for reviews delivered, and a run that delivers nothing because of an error or a block ends as Failed, not as a green empty run.

What you get

  • One record per review: stars (1-5), full text and its language, date, likes and dislikes, number of photos and their URLs, number of videos, the business's reply and its date, Yandex's reviewer level (for example "Level 6 Local Expert").
  • On every review: the place's Yandex id, name, link, address, categories, coordinates, Yandex rating, number of ratings and number of reviews, so each row stands alone in a spreadsheet.
  • Optional, one summary record per place (includePlaceSummary): Yandex's rating and counts, the topics Yandex extracts from the reviews ("Quality of treatment", "Waiting time", …) with positive, neutral and negative mentions, and figures over the reviews the run read: their star distribution, average, share answered by the business, median reply delay, number and average rating of reviews in the last 30, 90 and 365 days.
  • Newest first by default; also Yandex's own order, highest rated first or lowest rated first.
  • Filters: minimum and maximum stars, and "only reviews newer than" a date or a period. Reviews left out by a filter are not charged.
  • "Only new reviews" monitoring: scheduled runs deliver and charge only reviews that are new since earlier runs.
  • A run summary (OUTPUT_SUMMARY in the run's key-value store): reviews delivered per place and why each place stopped, events charged, places found by a search, what was left out and why, requests made, proxy used.

What it does not return by default: reviewers' names, avatars and profile links (see "Reviewer names"). Never: anything behind a login, reviewers' contact data.

How to use

  1. Open the place on Yandex Maps (yandex.com, yandex.ru, yandex.com.tr, yandex.kz or another Yandex site) and copy the URL from the browser, for example https://yandex.com/maps/org/caffe_la_vita/117242594967/. The reviews tab URL, the link the Share button gives (https://yandex.ru/maps/-/…), the map URL with the place open on it, and the bare id (117242594967) work too.
  2. Paste it into Places. Several places are fine. Or type a Search term and a Location (dentist, Almaty) to take the first places Yandex lists for it.
  3. Set Max reviews per place and press Start.
  4. Download the results from the Output tab, or read them from the API.

Input

FieldTypeDefaultWhat it does
placeslist of textemptyPlace URLs from any Yandex Maps domain, Share-button links (/maps/-/…, followed once at the start), map links with oid= or poi[uri]=, yandex.ru/profile/<id> pages, numeric place ids, or Yandex Maps search URLs (their first places are read). A place given twice, or also found by a search in the same run, is read once; entries that are none of these are listed in the summary.
searchQuery, locationtextemptyA search such as dentist and a city such as Almaty: the reviews of the first places Yandex lists for "dentist Almaty".
maxPlacesnumber5How many places a search contributes (1-100). Permanently closed places are skipped.
maxReviewsPerPlacenumber100Reviews delivered per place (1-10,000). See "Limits" for what happens past 600.
sortchoicenewestnewest, relevance (Yandex's default order), highest, lowest.
minRating, maxRatingnumberemptyOnly reviews with at least / at most this many stars.
reviewsNewerThantextemptyA date (2026-01-01) or a period (30 days, 12 weeks, 6 months, 1 year). In newest-first order the run stops reading a place at the first older review.
includePlaceSummaryyes/nonoAdd one summary record per place (charged as a place summary). With onlyNew, only for places with new reviews in that run.
includeReviewerNamesyes/nonoDeliver reviewer names, avatars and profile links, and texts as written. Personal data: see "Reviewer names".
includeIndividualsyes/nonoAlso read places that are a person working under their own name (a notary or lawyer listed by surname, for example).
languagechoiceenen, ru, tr, uk or kk: language of place names, addresses and categories. Review text is always as the reviewer wrote it.
onlyNewyes/nonoDeliver and charge only new reviews. See "Monitoring".
monitorKeytextemptyName of the "only new" memory, to keep two schedules apart.
proxyConfigurationproxyoffNot needed. See the FAQ.

Runs use 512 MB by default; the largest run so far peaked at 70 MB.

This input was run as voLe1ent381hirVLo and buo8h6khEVl97muP5 (2026-10-20), PQxRmoo8jkS7oAcje and NDiNFrgdgLCNBfhM8 (2026-10-24):

{
"searchQuery": "dentist",
"location": "Almaty",
"maxPlaces": 3,
"maxReviewsPerPlace": 50,
"includePlaceSummary": true
}

Runs of this input end in under 10 seconds with about 100 reviews and 3 summaries: Scraped 96 reviews from 3 places — 3 place summaries delivered on 2026-10-20, 97 reviews in PQxRmoo8jkS7oAcje and in NDiNFrgdgLCNBfhM8 (7.9 seconds) on 2026-10-24 (two of the three clinics have fewer than 50 reviews). The count grows as the clinics get reviews.

Example result

A review from run voLe1ent381hirVLo on 2026-10-20, unedited. The business's reply opened with the reviewer's first name, which is replaced by [name] because reviewer names were not requested:

{
"recordType": "review",
"id": "O7Tyv_j9zRb-IRfsBIQN2eYg0Al65x",
"placeId": "98078498741",
"placeName": "Dobro Dent",
"placeUrl": "https://yandex.com/maps/org/dobro_dent/98078498741/",
"placeAddress": "Almaty, Naýaı kóshesi, 210/2",
"placeCategories": [
"Dental clinic"
],
"placeRating": 5,
"placeRatingCount": 429,
"placeReviewCount": 148,
"placeLatitude": 43.204177,
"placeLongitude": 76.886255,
"searchQuery": "dentist Almaty",
"rating": 5,
"text": "Отличная стоматология, высокий сервис ",
"textLanguage": "ru",
"publishedAt": "2025-07-28T04:31:15.798Z",
"likes": 0,
"dislikes": 0,
"photoCount": 0,
"photoUrls": [],
"videoCount": 0,
"businessReply": "[name], добрый день! Спасибо большое за такой позитивный отзыв о работе нашей клиники🙏 Мы очень рады, что Вы остались довольны!\n\nЖелаем Вам и Вашим близким крепкого здоровья💚\nС уважением, Dobro Dent 🦷",
"businessReplyAt": "2025-08-07T12:54:04.249Z",
"reviewerLevel": "Level 6 Local Expert",
"reviewerName": null,
"reviewerAvatarUrl": null,
"reviewerProfileUrl": null,
"reviewerNamesIncluded": false,
"nameRedactedInText": true,
"order": "newest",
"language": "en",
"scrapedAt": "2026-10-20T13:22:07.862Z"
}
FieldMeaning
idYandex's id of the review; stable between runs.
placeId, placeUrlYandex's id of the place and its page.
placeRating, placeRatingCount, placeReviewCountThe place's Yandex rating (1-5), number of ratings and number of written reviews when the run read it.
publishedAtThe review's date as Yandex gives it; a review its author edited carries the date of the edit.
photoUrlsFull-size links of the photos attached to the review.
businessReply, businessReplyAtThe business's public answer and its date; null when there is none.
reviewerLevelYandex's rank of the reviewer ("Level 3 Local Expert"), not a name.
reviewerName, reviewerAvatarUrl, reviewerProfileUrlOnly with includeReviewerNames; otherwise null.
nameRedactedInTexttrue when a name in the text or the reply was replaced by [name].
orderThe list the review came from: your chosen order (newest, …), or topic / another order for reviews read past the first 600 (see "Limits").
searchQueryThe search that found the place; null for a place given directly.

The summary record of the same place from the same run (topics cut to three here):

{
"recordType": "placeSummary",
"id": "summary-98078498741",
"placeId": "98078498741",
"placeName": "Dobro Dent",
"placeRating": 5,
"placeRatingCount": 429,
"placeReviewCount": 148,
"aspects": [
{ "topic": "Quality of treatment", "mentions": 49, "positive": 43, "neutral": 1, "negative": 5 },
{ "topic": "Waiting time", "mentions": 16, "positive": 13, "neutral": 0, "negative": 3 },
{ "topic": "Teeth removal", "mentions": 15, "positive": 12, "neutral": 1, "negative": 2 }
],
"reviewsRead": 50,
"readAllReviews": false,
"readOrder": "newest",
"newestReviewAt": "2026-10-06T13:20:09.353Z",
"oldestReviewReadAt": "2024-08-23T18:08:53.934Z",
"ratingDistributionRead": { "1": 2, "2": 0, "3": 1, "4": 3, "5": 44 },
"averageRatingRead": 4.74,
"replyRate": 0.98,
"medianReplyDelayDays": 23.2,
"reviewsLast30Days": 2,
"averageRatingLast30Days": 3,
"reviewsLast90Days": 3,
"averageRatingLast90Days": 3.67,
"reviewsLast365Days": 15,
"averageRatingLast365Days": 4.67
}

(The record also carries the place fields shown on the review, language and scrapedAt.) aspects are Yandex's own counts over all reviews of the place. The other figures are over the reviewsRead reviews this run read for the place, newest first, filtered or not: ratingDistributionRead is the star count of those reviews, not of the whole place (Yandex publishes no star histogram), unless readAllReviews is true. A period figure (reviewsLast90Days, …) is given only when the run's newest-first list read back past the start of the period, or the run read every review; otherwise it is null, not a guess. readAllReviews is false when Yandex kept failing part-way through the place's reviews (the status message says so). Raise Max reviews per place to cover a longer period. A place whose reviews the run did not get to read before its timeout gets no summary (and no charge for one).

Fields Yandex does not provide are null (or an empty list), never missing.

Pricing

Pay per event. You pay for what is delivered, not for time or memory.

EventFreeBronzeSilverGold and above
Actor start (once per run)$0.003$0.003$0.003$0.003
Review delivered$0.0018$0.0015$0.00135$0.0012
Place summary delivered (only with includePlaceSummary)$0.0018$0.0015$0.00135$0.0012

That is $1.50 per 1,000 reviews on the Bronze plan.

Worked example: 5 places with 100 reviews each on the Bronze plan cost 500 × $0.0015 + $0.003 = $0.753; with a summary per place, 5 × $0.0015 more, $0.7605. On the Free plan the 500 reviews cost 500 × $0.0018 + $0.003 = $0.903. A scheduled "only new" run on Bronze that finds 3 new reviews in one place costs 3 × $0.0015 + $0.003 = $0.0075 (plus $0.0015 for that place's summary, if you asked for summaries); one that finds nothing new costs $0.003, summaries or not.

  • Reviews left out by your star or date filter, and reviews already delivered in the same run, are not charged.
  • The start event is charged by Apify when a run starts (once per run at up to 1 GB of memory), also when the run then fails on unusable input, and again when you resurrect a run.
  • The maximum total charge you set for a run is respected: the actor stops before it would go over, keeps what was delivered, and says so. With a limit of $0.0121 a run delivered exactly 6 reviews and charged $0.012 (TluwNEfeus5bBFXUi, 2026-10-24).

Reviewer names

Reviews are written by private persons. By default the actor delivers no reviewer name, avatar or profile link, and replaces with [name], in the review text and the business's reply:

  • the reviewer's name and its case forms ("Люция" also catches "Люцию", "Люции");
  • the person a reply opens with, greets or thanks, anywhere in the text ("Даша, ваш отзыв …", "… Здравствуйте, Айгуль!", "Спасибо, Айдар!", "Ирина, спасибо!"): businesses often address the reviewer by a first name spelled differently from the display name;
  • about 720 common first names (Russian, Ukrainian, Tatar, Kazakh, Caucasian, Turkish and English, in Cyrillic and Latin letters) in any case form, anywhere in the text, with the surname next to them ("к Ринату Загилуллину", "Ксению Истомену", "Алсу Мередова");
  • names written with a patronymic, or a surname with initials ("врача Темирлана Алибековича", "Скворцов В.А.", "Х. М. Ал-Шахина");
  • a name right after a staff role word or a relative, alone or in a pair: "официант Артур", "управляющей Зуле", "ребятам Артуру и Нине", "помощнику Абдулазизу", "our waitress Anna", "Dr. Smith", "дочку Соню", and a name right before "(самый) лучший" and a role word ("Салианат лучший стоматолог");
  • the people a thank-you names ("Спасибо Анне и Олегу", "Thanks to Maria"), a surname after "к" or "у" ("записалась к Понетайкину"), and a woman's or declined surname after an unknown first name or mid-sentence ("Адиба Давронова", "у хваленной Гумеровой").

Words of the place's own name are left alone (a café called "Мария"), and so are names that are also common words or places ("Вера", "Надежда", "Роза", "Маргарита", "Шереметьево"), a first name in a street, church or monarch's name ("ул Толе би", "Собора Св Софии", "император Михаил VII"), and "доктор Айболит".

This is best effort, not a guarantee. Measured on build 0.1.13 (2026-10-24) on the Store example input (NDiNFrgdgLCNBfhM8, 97 reviews of three Almaty dental clinics), by reading every replacement against the original texts and checking by hand every capitalised word left in the middle of a sentence: 0 of the 97 reviews still name a private person, and all 62 replacements are people's names. On the same 97 reviews build 0.1.10 (PQxRmoo8jkS7oAcje) left a staff member's first name in 2 ("Салианат лучший стоматолог", "помощнику Абдулазизу") and replaced 3 things that are not names ("ул [name] би" for Tole bi street, "доктор Айболит", and the role word in "Терапевт Рауан Досжанович"). With the same rules, read the same day with the actor's code outside the platform: 1 of 300 reviews of three Kazan dental clinics still names a person (a name written in lower case, "у Амира хусейна"), 0 of 200 café reviews, and 0 of 300 reviews of the Galata Tower in Istanbul, where historical names ("император Михаил VII", "султан Мехмед") are now kept. Applied to earlier datasets, the same rules leave 0 of 611 café reviews (3srkBsQk4gXqi8MVC) and 0 of 1,500 airport reviews (FcZBomi7rANCzDalH) naming a private person; public figures such as Khrushchev are kept. Expect up to a few in a hundred for clinics, where reviews name staff most often: a rare first name at the start of a sentence or written in lower case, or a surname alone, can still be missed. A few words that are not names are replaced as well: a brand after "спасибо" ("Аэрофлоту"), the novel "Евгения Онегина", and a public figure written with initials, other than the best-known ones ("А.С. Пушкина" is kept).

With Include reviewer names on, reviewerName, reviewerAvatarUrl and reviewerProfileUrl are filled and texts are delivered as written. Turning it on, you confirm that you have a lawful basis under the GDPR (or the law that applies to you) to process those names.

Places that look like one person working under their own name (a notary, lawyer or psychologist listed by surname and initials, a title that says self-employed) are skipped by default, because their reviews are about a person. The recognition is the one of our Yandex Maps Scraper and is a heuristic.

Reliability and failure behaviour

What happenedRun statusStatus message
Reviews deliveredSucceededScraped 97 reviews from 3 places — 3 place summaries delivered (NDiNFrgdgLCNBfhM8)
A place with no reviewsSucceeded0 results: Yandex Maps has no reviews for this place (offline test)
The only place is an individual practitionerSucceeded0 results: the place was skipped as an individual practitioner — 1 place of individual practitioners skipped (turn on "Include individual practitioners" to get them) (offline test)
A search that finds no placesSucceeded0 results: the search found no places on Yandex Maps (OVBKdacnbR9mkSCdu)
Some places worked, some failedSucceededScraped 5 reviews from 1 place — 1 of 2 places failed ("https://yandex.com/maps/org/35193114937/": this place does not exist on Yandex Maps (anymore)) (XfiHqcrWJbSCpGnpb)
Yandex kept failing part-way through a placeSucceededScraped 100 reviews from 1 place — Yandex Maps kept failing part-way through a review list of "…" (stopped at page 3 of 6 after 3 attempts: …); the reviews before it were delivered (offline test)
Nothing delivered because of errors or blockingFailedNo reviews delivered: Yandex Maps blocked every attempt; try again later. No reviews were charged (the start fee applies). (offline test)
Input the actor cannot useFailed, within secondsNothing to do: none of the 1 entries in "places" is usable (…). Add a Yandex Maps place URL … No reviews were charged (the start fee applies). (U4FzbzAVBjVagufHd, 1.4 s)
Maximum charge reachedSucceededScraped 6 reviews from 1 place — stopped at the maximum charge set for this run (TluwNEfeus5bBFXUi, limit $0.0121)
Maximum charge below the start fee plus one reviewFailedThe maximum charge set for this run ($0.004) does not cover the start fee plus one review, … (offline test)
Run timeout closeSucceededScraped 496 reviews from 1 place — stopped just before the run timeout; raise the timeout to get the rest; 1 place summary delivered (GsdhT9JRWYpgz7CDX, 12-second timeout, 2 places: the second was not started and got no summary)
Run timeout before any review was readFailedNo reviews delivered before the run timeout: raise the run timeout and try again. No reviews were charged (the start fee applies). No place summary is charged either (offline test)
  • Requests are retried up to 3 times with increasing pauses on network errors, HTTP 429 and 5xx, and when Yandex answers with its captcha (as a page or as JSON).
  • Now and then the reviews API answers one request with an internal error and the same request a moment later with the reviews. Such an answer is asked again twice (after 1.5 and 3 seconds). In oLuV2gfdUbllsM2gx one such answer was retried and nothing was lost. If it keeps failing on a place's first page, that place fails; if it keeps failing further on, the reviews read so far are delivered and the status message names the place.
  • When no proxy is set and Yandex answers with its captcha, the retries and the rest of the run go through Apify Proxy: datacenter addresses first, residential addresses after 3 blocked answers. OUTPUT_SUMMARY names the proxy group under proxy. The price stays the same. (This path is tested offline only: no test run on the platform was blocked.)
  • The run stops starting new work shortly before its timeout (20% of the timeout, between 5 and 60 seconds) and always makes its first request, so even a short timeout returns what it could and says why it stopped.
  • Reviews are saved and charged page by page (50 reviews a request), so a run that stops early keeps what it delivered, and a resurrected run delivers and charges nothing twice. A resurrected run counts the reviews it delivered for each place before against Max reviews per place, also those Yandex's list no longer shows where they were: QO6SQ5yt6okvgJGWB (400 reviews, resurrected after it had finished) made no new request and charged no review again.
  • Measured from the Apify platform without a proxy: 30 test runs on builds 0.1.1 to 0.1.6 (2026-10-20), 3 on 0.1.7 and 19 on 0.1.8 and 0.1.9 (2026-10-24), none blocked. In every run the charged reviews and place summaries equalled the dataset items, read a minute or more after the run ended.

Limits

  • 600 reviews per list. Yandex Maps lists at most 600 reviews of a place in one order. Up to 600, newest first is exact. Asked for more, the run also reads Yandex's other orders (lowest rated first, highest rated first, relevance) and the lists of reviews that mention each topic Yandex extracted for the place (most mentioned first), and keeps what it has not delivered yet. For a place with up to 1,200 reviews the other orders come first; for a larger place the topic lists do, because they reach further. That reaches well past 600 but not always every review, and those reviews are not in your chosen order (order says which list they came from). Measured: a café with 2,377 reviews gave 1,983 different reviews in 184 requests and 229 seconds (oLuV2gfdUbllsM2gx); reading only Yandex's four orders, an earlier build got 1,120 of them (OHwJwfzL9a2QfhRr1). A place with 611 reviews gave all 611 in 34 review requests and 33 seconds (3srkBsQk4gXqi8MVC; 96 requests and 69 seconds before the other orders were read first).
  • "Only new reviews" reads newest first only, so it sees the newest 600 reviews of a place: enough for any schedule, as long as a place does not get more than 600 reviews between two runs.
  • Speed: 20 reviews in 3.3 seconds (0P08gbW7ohPjl9yhr), 97 reviews of 3 places found by a search in 6.3-7.9 seconds (P7UEtGZmR105OF0AI, NDiNFrgdgLCNBfhM8). Past 600 reviews per place it slows down, because the extra lists mostly repeat reviews already delivered (about 9 reviews a second in oLuV2gfdUbllsM2gx).
  • A search takes the places in the order Yandex lists them for the text "term location", the way you would type it into Yandex Maps; it is not a full list of an area (use our Yandex Maps Scraper for that, then pass the place URLs here).
  • Star or date filters do not lower the number of requests: the run still reads the place's reviews in order to find matching ones (vI04LiMRCX3kSIIUL: 14 one- and two-star reviews of the last year, 400 reviews read).
  • Coverage follows Yandex Maps: tested on places in Kazan (Russia) and Almaty (Kazakhstan).

Monitoring: only new reviews

  1. Turn on Only new reviews and save the input as a task.
  2. Schedule the task (daily is plenty for most places).
  3. The first run delivers the newest reviews of each place, up to the maximum. Every later run reads newest first, stops at the first page that holds a review seen before, and delivers and charges only the new ones; a run with nothing new ends as Succeeded with 0 new reviews in 2 places (no reviews charged; the start fee applies) and costs the start event only.

What counts as new: a review that no earlier run of the same monitor delivered or saw, and that is not dated more than 3 days before the newest review earlier runs saw. Yandex's newest-first list is not perfectly stable: between two runs, reviews weeks old come and go on its first page. Those are remembered without being delivered (lateOrOld in OUTPUT_SUMMARY). A review that Yandex publishes a few days after it was written (moderation) still counts as new within those 3 days; one published later than that with an older date is missed.

When a later run has more new reviews for a place than Max reviews per place (or stops at your charge limit or the run timeout), it delivers the newest ones and the next runs deliver the rest: the 3-day rule then counts from where the unfinished run started. Tested with a monitor set up as if its last run had come before the 20 newest reviews of an airport (5 days of reviews), 5 reviews per place: oS84yRy9cayrjHfur delivered the newest 5, aWBCwYAhcpqbMIxnJ the next 5, brT6RcuvkK1Ss8Tte (maximum 50) the remaining 10 and stopped at the reviews seen before: all 20 once, none taken for old.

With Add a summary record per place on, a monitoring run adds a summary only for the places that have new reviews in that run.

Tested on a large Moscow shopping centre and an airport (40,000-70,000 reviews each, several new ones a day), 10 reviews per place, monitor v016, three runs a few minutes apart: ruMtVwaimrhBOF3LQ delivered 20 reviews and 2 summaries; bdFIBcDyc4t8rhW2N delivered 1 review dated within the window (it was not in the first run's list) and 1 summary, and recognised 1 older review as old; tNIGsGNtdcWygfCcN delivered nothing, charged only the start, and recognised 2 older reviews as old.

The memory is a key-value store named yandex-maps-reviews-scraper-monitor in your own account (one record per place and monitor name). Delete the store or change Monitor name to start over. Reviews cut off by the maximum or by your charge limit on a first run are remembered as seen (the first run sets the starting point); on later runs the rest is delivered by the next runs, as above.

FAQ

Do I need a proxy? No. Leave it off: requests go directly, which is fastest, and if Yandex blocks them the run switches to Apify Proxy on its own.

Why did I get fewer reviews than the place shows? Yandex counts written reviews only (placeReviewCount; star ratings without text are in placeRatingCount); your star or date filter left some out (the status message says how many); or the place has more than 600 and you asked for 600 or fewer (the status message says so).

Where do I get place URLs in bulk? From our Yandex Maps Scraper: its url field is a place URL this actor accepts.

Can I run it from code? Yes: the API and the Apify clients for JavaScript and Python. The Output tab shows the URLs.

What happens when Yandex Maps changes? Runs fail with a message that says so instead of returning empty data. Report the run id under Issues.

This actor collects reviews that Yandex Maps shows publicly to any visitor without a login, by the same requests Yandex's own web page makes for an anonymous visitor. Reviews are written by private persons: their names, avatars and profiles are left out unless you ask for them, and names in the texts are replaced as described under "Reviewer names", which is best effort. Review texts can still mention people, so data-protection law can apply to how you use them.

Yandex's terms of use for Maps say the service's information is for personal, non-commercial use. You are responsible for how you use the data: respect the site's terms, copyright and database rights (review texts are their authors' work), and data-protection law (GDPR, Russian Federal Law 152-FZ and others) in your country and the country of the data. Do not use the output to contact or profile reviewers. If you are unsure, ask a lawyer before you build on it.

  • Yandex Maps Scraper: business listings from Yandex Maps for a search and an area (name, address, phones, website, hours, rating). Use it to build the list of places, then read their reviews here.

Changelog

  • 2026-10-24, 0.1.13: more names replaced in texts ("помощнику Абдулазизу", a name before "лучший стоматолог", a surname with initials before or after it, with or without dots, "Ал-Шахин", a first name run together with the word before it); fewer words replaced that are not people (a first name in a street, church or monarch's name, "Айя-София", "доктор Айболит", "Приветствуем Вас", "спасибо Всевышнему", "P. S.", the role word before a patronymic); replyRate in the place summary rounded to 2 decimals like the other figures (it had 3).
  • 2026-10-24, 0.1.10: README and input-schema texts only.
  • 2026-10-24, 0.1.9: many more people's names replaced in review texts and replies (common first names anywhere, with their surnames; people a thank-you names; greetings anywhere in a reply); "only new" no longer loses new reviews that a later run's maximum left over; a resurrected run keeps to the maximum per place; no place summary for a place whose reviews were not read before the timeout; places with 601-1,200 reviews read faster (other orders before topic lists); the summary field ratingDistribution is now ratingDistributionRead; the status message says when the only place was skipped as an individual practitioner.
  • 2026-10-20, 0.1.6: error answers of the reviews API asked again; a JSON captcha counts as a block; "only new" no longer delivers old reviews that move up the list, and adds summaries only for places with new reviews; staff first names after a role word replaced; Share links, poi[uri] map links and profile pages accepted; a place found by a search and also given directly is read once.
  • 2026-10-20, 0.1: first version.

Support

Open an issue on the actor's Issues tab with the run id.