Yandex Maps Reviews Scraper API | Парсер отзывов Яндекс Карт avatar

Yandex Maps Reviews Scraper API | Парсер отзывов Яндекс Карт

Pricing

from $1.49 / 1,000 reviews

Go to Apify Store
Yandex Maps Reviews Scraper API | Парсер отзывов Яндекс Карт

Yandex Maps Reviews Scraper API | Парсер отзывов Яндекс Карт

Scrape Yandex Maps reviews (отзывы Яндекс Карт) for any place: star rating, full text, date, the business reply, photos and the author's display name, with the place name, address and rating on every row. Sort, date filter, optional search. No login. Pay per review.

Pricing

from $1.49 / 1,000 reviews

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

15 days ago

Last modified

Share

600 Yandex Maps reviews in 26 seconds: a recorded run read 200 reviews from each of 3 Moscow restaurants in 26 seconds

From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.

Export the reviews of any Yandex Maps place (отзывы Яндекс Карт) to JSON, CSV or Excel: the star rating, the full text, the date, the business's reply, the photos and the reviewer's display name, with the place's name, address, rating and coordinates on every row. Paste place links or business ids, or let a search find the places first. One CSV answers both "what do people say" and "about which branch".

Why choose this actor?

  • 600 reviews from 3 places in 26 seconds. On 1 Oct 2026 a run over three Moscow restaurants at 200 reviews each finished in 26 seconds from 14 requests, every one answered on the first attempt. No Yandex account, no cookies of yours and no browser to wait for.
  • Past Yandex's 600 review wall on busy places. Yandex serves at most 600 reviews in any one sort order. Ask for more and the actor also reads the other three orders and drops the overlap: on 29 Sep 2026 that gave 1,726 unique reviews of one Moscow restaurant in 132 seconds. A review found twice is delivered and charged once.
  • From $1.49 per 1,000 reviews, plus a flat $0.005 per run. Reviews older than your date filter, places Yandex does not know, duplicates, refused pages and the information rows are never charged.

Run it on Apify

Part of The Mine Works Marketing, SEO and reviews family: Facebook Ad Library Scraper, Similarweb Scraper, Google Ads Transparency Scraper, Google News Scraper, Trustpilot Reviews Scraper, Google Trends Scraper.

Try it in one minute

Paste this into the JSON tab of the input page and press Start. It returns the 10 newest reviews of one Moscow restaurant in a few seconds.

{
"startUrls": ["https://yandex.ru/maps/org/tanuki/1036014863/"],
"maxReviewsPerPlace": 10,
"sort": "newest"
}

Give places in startUrls, one per line, in any of these forms: a place link copied from the address bar on yandex.ru, yandex.com, yandex.kz or another Yandex domain (/maps/org/<name>/<id>/, with or without /reviews/), a link with oid= in it, a short link such as yandex.ru/maps/-/..., or just the numeric business id (1036014863). Or leave startUrls empty and type a searchQuery such as стоматология with a city, and the actor finds the places first. You can use both in one run.

Apify's free plan includes $5 of credit every month, which covers about 2,000 reviews at this actor's price.

Copy to your AI assistant

themineworks/yandex-maps-reviews-scraper-api on Apify. It exports the public reviews of Yandex Maps places (rating, full text, date, business reply, photo links, reviewer display name) with the place's name, address, rating and coordinates on every row. Call ApifyClient("TOKEN").actor("themineworks/yandex-maps-reviews-scraper-api").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: startUrls (array of Yandex Maps place links or numeric business ids) or searchQuery (string). Optional: city (default "moscow", one of moscow, spb, novosibirsk, yekaterinburg, kazan, nizhny, chelyabinsk, samara, rostov, ufa, krasnoyarsk, minsk, almaty, astana; used only with searchQuery), maxPlaces (default 10, 1 to 100), maxReviewsPerPlace (default 100, 0 means all it can reach, up to 5000), sort ("relevance" default, "newest", "lowest", "highest"), reviewsStartDate (a date such as "2026-01-01" or a window such as "30 days"). Rows with a _type field are information rows, not reviews. Full spec: GET https://api.apify.com/v2/acts/themineworks~yandex-maps-reviews-scraper-api/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral

Key features

  • 30 fields on a review row: 12 about the place (name, address, city, country, categories, rating, counts, coordinates, link) and 18 about the review (id, stars, full text, date, language, display name, likes, dislikes, photos, videos, business reply and its date, pinned flag, sort order, position, input and collection time).
  • 4 sort orders: relevance (as on Yandex Maps), newest, lowest rating first or highest rating first. Lowest first is the quickest way to read complaints.
  • A date filter that stops early. With reviewsStartDate set, reviews are read newest first and reading stops at the first older review, so older reviews are neither fetched nor charged.
  • Up to 500 places per run, read 3 at a time, and up to 5,000 reviews per place. The same place given twice is read once.
  • Optional search in 14 cities: Moscow, Saint Petersburg, Novosibirsk, Yekaterinburg, Kazan, Nizhny Novgorod, Chelyabinsk, Samara, Rostov-on-Don, Ufa, Krasnoyarsk, Minsk, Almaty and Astana. It adds up to 100 places, nearest the city center first.
  • A run summary for every place in the key-value record OUTPUT: ok, not_found, no_reviews, none_in_date_window, robots_disallowed, blocked, duplicate or skipped, with the review count Yandex shows and the sort orders read.

How to use it

Basic: one place

{
"startUrls": ["https://yandex.ru/maps/org/tanuki/1036014863/"],
"maxReviewsPerPlace": 100
}

Several places at once

{
"startUrls": [
"https://yandex.ru/maps/org/tanuki/1036014863/",
"1018907821",
"https://yandex.com/maps/org/-/1133929046/reviews/"
],
"maxReviewsPerPlace": 200
}

This is the input of our 1 Oct 2026 proof run: 600 reviews in 26 seconds. maxReviewsPerPlace applies to each place on its own, so three places at 200 gives up to 600 rows.

Weekly new reviews of your own branches

{
"startUrls": ["1036014863", "1018907821"],
"reviewsStartDate": "7 days",
"maxReviewsPerPlace": 0
}

Save this as a task and schedule it every Monday morning, for example with the cron 0 8 * * 1. Each run reads newest first and stops at the first review older than a week, so you get the week's new reviews and pay only for those, plus the $0.005 run fee. On 29 Sep 2026 a 30 day window over three Moscow restaurants returned 666 reviews in 111 seconds.

Read a competitor's complaints

{
"startUrls": ["1018907821"],
"sort": "lowest",
"maxReviewsPerPlace": 100
}

One and two star reviews come first. Read business_reply next to each one to see how, and how fast, the business answers criticism (business_reply_date minus date).

Compare the dentists nearest the center of Kazan

{
"searchQuery": "стоматология",
"city": "kazan",
"maxPlaces": 10,
"maxReviewsPerPlace": 50
}

The search walks the map outward from the city center and adds places nearest the center first. input on each row reads search: стоматология (<place name>), so you can group rows by clinic.

As many reviews as possible from one busy place

{
"startUrls": ["1036014863"],
"maxReviewsPerPlace": 0
}

0 means all the actor can reach, up to 5,000. A place with 600 reviews or fewer is read completely in one order. Above that the four orders overlap, so the total is less than 2,400: our test place with 11,727 reviews on Yandex gave 1,726 unique reviews.

Start from businesses you already have

If you collected businesses with our Yandex Maps Scraper, paste their business_id values into startUrls. The ids are the same, so a list of every cafe in a district becomes a review export in one more run.

Input parameters

ParameterTypeDefaultWhat it does
startUrlsarray of stringsnonePlaces, one per line: a place link on any Yandex domain, a link with oid=, a short link (yandex.ru/maps/-/...) or the numeric business id. Up to 500 per run; the same place twice is read once. Leave it empty if you use searchQuery.
searchQuerystringnoneOptional. A search such as кафе, стоматология or car wash. The actor finds places in city first, then reads their reviews. Works together with startUrls.
citystring, one of 14moscowCity for the search: moscow, spb, novosibirsk, yekaterinburg, kazan, nizhny, chelyabinsk, samara, rostov, ufa, krasnoyarsk, minsk, almaty, astana. Only used with searchQuery.
maxPlacesinteger, 1 to 10010How many places the search may add, nearest the city center first.
maxReviewsPerPlaceinteger, 0 to 5,000100Most reviews per place. 0 means all the actor can reach (up to 5,000). Above 600 the other sort orders are read too and duplicates dropped.
sortstringrelevancerelevance (as on Yandex Maps), newest, lowest or highest rating first.
reviewsStartDatestringnoneOnly reviews since a date (2026-01-01) or within a window (30 days, 6 months, 1 year). Reviews are then read newest first, whatever sort says, and reading stops at the first older review.

The input form in Apify Console starts with the Tanuki restaurant link and 50 reviews per place filled in. Runs started through the API or an AI assistant get only what you send, plus the defaults above. A run with neither startUrls nor searchQuery stops at once with an information row that says so.

What data do you get?

One row per review. Fields Yandex leaves empty for a review are left out of that row rather than sent as null; photo_urls is an empty list when the review has no photos.

The place (repeated on each of its reviews): place_id (the Yandex business id), place_name, place_url, place_address, place_city, place_country, place_latitude, place_longitude, place_categories, and place_rating with place_rating_count and place_review_count as Yandex counts them.

The review: review_id, rating (1 to 5 stars), text in full, date (ISO 8601, UTC) and language as Yandex detected it.

The reviewer: author_name, the display name exactly as Yandex shows it. Nothing else about the reviewer is collected: no profile id, no avatar, no level.

Reactions and media: likes, dislikes, photos_count, photo_urls (links to the largest size) and videos_count.

The business's answer: business_reply and business_reply_date, when the business has answered in public.

Where the row came from: is_pinned, sort_order (the order the review was read in), position in that order, input (the line or search the place came from) and scraped_at.

Information rows: every run that delivers reviews ends with one _type: "info" row, and a run that delivers none adds one that says why. They are never charged. Filter on _type to keep only reviews.

What we saw in the 600 rows of our 1 Oct 2026 run, so you can plan for it:

  • business_reply was present on 571 of 600 rows. These three restaurants answer almost every review; other places may answer far less.
  • photo_urls had at least one link on 310 rows and was empty on 290.
  • author_name was missing on 1 row, where Yandex showed no name.
  • language was ru on 590 rows and unknown on 10.
  • In relevance order, 500 of the 600 reviews were five stars. Use sort: "lowest" when you need the complaints.

Stable fields for automations

These 15 fields were present in every one of the 600 rows we sampled on 1 Oct 2026, and in the 30 rows of our 29 Sep platform run. Their names will not change, so a Sheet, Zap, Make scenario or n8n flow can map to them safely.

FieldWhat it is
review_idYandex's review id. Use it as the unique key.
place_idYandex business id of the place
place_nameName of the place
place_addressFull address as Yandex shows it
place_cityCity of the place
place_ratingAverage rating of the place
place_review_countWritten reviews Yandex counts for the place
place_urlLink to the place on Yandex Maps
ratingStars given in this review, 1 to 5
textFull review text
dateReview date, ISO 8601 in UTC (the edit date if the author edited it)
photos_countPhotos attached to the review
sort_orderrelevance, newest, lowest or highest
inputThe input line or search the place came from
scraped_atWhen the row was collected, ISO 8601 in UTC

Output examples

Real rows from our test runs. Long texts are shortened and marked with "...".

A review with photos and a reply (1 Oct 2026, relevance order, shown in full apart from the text)

{
"place_id": "1133929046",
"place_name": "Армения",
"place_address": "Москва, Тверской бульвар, 28/17",
"place_city": "Москва",
"place_country": "Россия",
"place_categories": ["Ресторан", "банкетный зал", "кафе"],
"place_rating": 4.4,
"place_rating_count": 2106,
"place_review_count": 939,
"place_latitude": 55.764117,
"place_longitude": 37.60532,
"place_url": "https://yandex.ru/maps/org/armenia/1133929046/",
"review_id": "QNivjOSHgo_4bbA4lxHcwRRlZ7BpBfn",
"rating": 5,
"text": "Мое любимое место в Москве! Неприлично дерзко расположен в самом сердце столицы на пересечении самых топовых исторических мест!...",
"date": "2026-07-11T18:21:06.015Z",
"language": "ru",
"author_name": "Aleksandra",
"likes": 2,
"dislikes": 2,
"photos_count": 2,
"photo_urls": [
"https://avatars.mds.yandex.net/get-altay/20299570/2a0000019f5265faea3148b9ac217144f110/XXXL",
"https://avatars.mds.yandex.net/get-altay/20420873/2a0000019f5266123773a815fbba4b81b5a5/XXXL"
],
"videos_count": 0,
"business_reply": "Спасибо за прекрасный отзыв! Будем ждать вас вновь!",
"business_reply_date": "2026-07-12T09:51:30.966Z",
"is_pinned": false,
"sort_order": "relevance",
"position": 1,
"input": "https://yandex.com/maps/org/-/1133929046/reviews/",
"scraped_at": "2026-10-01T13:29:57.058Z"
}

A two star review and the business's answer (1 Oct 2026, place fields trimmed)

{
"place_id": "1018907821",
"place_name": "Кафе Пушкинъ",
"place_rating": 4.9,
"place_review_count": 6051,
"review_id": "bJjTe19yv-G_J4FNAEPyeJxK2b-HBzKcC",
"rating": 2,
"text": "Решила посетить данное заведение в рамках делового обеда, чтоб составить впечатление. Понравилась только атмосфера и интерьеры, всё остальное было плохо...",
"date": "2026-06-02T12:21:24.882Z",
"author_name": "Тамара Я.",
"photos_count": 2,
"business_reply": "Тамара, добрый день! \nБлагодарим за такую подробную обратную связь! Обязательно поработаем над теми ошибками, что Вы указали в своем отзыве!\n",
"business_reply_date": "2026-06-08T23:04:13.977Z",
"sort_order": "relevance",
"position": 28,
"input": "1018907821"
}

A row found by a search, lowest rating first (29 Sep 2026, стоматология in Kazan, place fields trimmed)

{
"place_id": "137241302033",
"place_name": "Стоматология Хаят смайл",
"place_address": "Республика Татарстан (Татарстан), Казань, улица Галактионова, 3",
"place_categories": ["Стоматологическая клиника", "детская стоматология"],
"place_rating": 5,
"place_review_count": 624,
"rating": 1,
"text": "Некомпетентная работа сотрудников!! То ли это администраторы, то ли сотрудники колл-центра, если он есть...",
"date": "2026-06-03T06:05:28.679Z",
"language": "ru",
"photos_count": 0,
"photo_urls": [],
"sort_order": "lowest",
"position": 1,
"input": "search: стоматология (Стоматология Хаят смайл)"
}

The reviewer's name is left out of this sample on purpose; the actor returns it.

The information row at the end of a run (1 Oct 2026, never charged)

{
"_type": "info",
"delivered": 600,
"message": "600 Yandex Maps reviews delivered. This row is informational: it is never billed.",
"schedule_tip": "Want this refreshed automatically? Apify Console -> this Actor -> Schedules -> Add schedule -> pick how often (e.g. daily) -> Save. It reruns with the same input on autopilot, no code required.",
"review_tip": "Found this useful? A quick Store review helps other buyers find it: https://apify.com/themineworks/yandex-maps-reviews-scraper-api?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral#reviews",
"scraped_at": "2026-10-01T13:30:10.538Z"
}

One place's entry in the OUTPUT summary (1 Oct 2026; this is the key-value record, not a dataset row)

{
"input": "1018907821",
"place_id": "1018907821",
"status": "ok",
"stop_reason": "reached maxReviewsPerPlace (200)",
"place_name": "Кафе Пушкинъ",
"reviews_on_site": 6051,
"orders_read": ["relevance"],
"page_attempts": 1,
"api_attempts": 3,
"api_pages": 4,
"reopens": 0,
"delivered": 200,
"duplicates_skipped": 0,
"outside_date_window": 0,
"last_error": null
}

Pricing

Pay per event: you are charged for each review saved to your dataset, plus a flat fee once per run. The review price drops as your Apify plan goes up.

EventFree planBronze (Starter)Silver (Scale)Gold and above (Business)
review-scraped, per review$0.00249$0.00219$0.00189$0.00149
Per 1,000 reviews$2.49$2.19$1.89$1.49
run-start, per run$0.005$0.005$0.005$0.005
  • Start fee: a flat $0.005 per run, charged once when the run starts, whatever memory you choose. It is our own run-start event, not Apify's per GB start charge, so a bigger memory setting does not raise it.
  • Never charged: places Yandex does not know, links robots.txt asks crawlers to leave alone, short links that cannot be resolved, reviews older than your date filter, the same review found twice (even when two sort orders return it), pages Yandex refused, and the information rows.
  • Included at no extra cost: the place details on every row, the search, the date filter and the proxies are included. You pay nothing for platform compute on top of these prices.
  • Spending cap: if you set a maximum cost per run in Apify, the actor stops adding reviews once that budget is used, so you never receive rows past your cap.
  • No price change is scheduled. These prices have applied since 30 Sep 2026. The Pricing tab always shows the rate for your own plan; if this table and the Pricing tab ever disagree, the Pricing tab is right.

Worked examples on the Free plan: 100 reviews cost $0.249 plus $0.005, about $0.25; 1,000 reviews cost $2.495. On Gold, the same 1,000 reviews cost $1.495.

FAQ

What is Yandex Maps? Yandex Maps (Яндекс Карты) is the main map and local business directory in Russia, also widely used in Belarus and Kazakhstan. Its place pages carry star ratings and written reviews, often with photos and a public answer from the business.

How many reviews can I get per place? Up to 5,000 per place and 500 places per run. Yandex serves at most 600 reviews in any one sort order (12 pages of 50). When you ask for more and the place has more, the actor reads the other three orders and drops the overlap. A place with 600 reviews or fewer is read completely.

How fresh is the data? Each run reads Yandex Maps live when it starts. There is no cache. date is the date Yandex shows on the review; if the author edited the review, it is the date of the edit.

Do I need a Yandex account, cookies or an API key? No. The actor reads the place page as an anonymous visitor, then asks for further pages of reviews the way the page itself does when you scroll, on the same visitor session. You only need an Apify account.

Do I need a proxy? No setting is needed. The actor goes through Apify datacenter proxies on its own, and the proxy cost is included in the price. On 1 Oct 2026 all 14 requests of our proof run were answered on the first attempt, with no captcha.

Can it search places by itself? Yes, in the 14 cities of the city list. The search walks the map outward from the city center and adds up to 100 places, nearest the center first. For places elsewhere, or in a city not on the list, paste their links.

What happens with a wrong link, a closed place or a place without reviews? The run carries on with the other places. Each place gets a status in the OUTPUT summary (not_found, no_reviews, none_in_date_window, robots_disallowed, blocked or duplicate) and nothing is charged for it. Lines that are not a Yandex place link or id are skipped with a warning in the log.

What if I give no places and no search? The run stops at once with an information row saying what to add. No review is charged, but the flat $0.005 start fee still applies, so check the input before scheduling it.

What if Yandex refuses pages? A place page is tried up to 3 times, each on a new session, and a place is reopened on a fresh session up to 2 times when its review calls keep failing. If Yandex refuses every page, the run ends with an information row saying so and nothing is charged for reviews. Reviews already delivered stay in your dataset. A run also stops cleanly before its timeout (one hour by default) and keeps everything delivered so far.

Can I run it on a schedule? Yes. Save your input as a task, then add a schedule in Apify Console under Schedules, for example every Monday at 08:00. With reviewsStartDate set to 7 days, a weekly schedule gives you each week's new reviews. Each scheduled run is billed like a manual one; the schedule itself costs nothing.

Which formats can I export? JSON, CSV, Excel, XML, RSS or HTML from the run's Storage tab, or through the Apify API. In CSV and Excel, list fields such as photo_urls are split into numbered columns (photo_urls/0, photo_urls/1 and so on).

Can I use it from Claude, ChatGPT or another AI assistant? Yes. Connect Apify's MCP server at https://mcp.apify.com/?tools=themineworks/yandex-maps-reviews-scraper-api, or paste the block in "Copy to your AI assistant" above into your assistant.

Is it legal to scrape Yandex Maps reviews? The actor reads only public reviews that anyone can see without an account, keeps to what robots.txt allows (read fresh at the start of every run, and checked again on every redirect), and collects nothing about reviewers beyond the display name shown next to the review. Review text can still contain personal data. You are responsible for how you store and use it, including Yandex's terms and data protection law such as GDPR, CCPA and Russia's 152-FZ. This is general information, not legal advice.

Integrations

  • Google Sheets: send each run's reviews to a sheet with Apify's Google Sheets integration.
  • Make, Zapier and n8n: start a run and read the reviews with the official Apify modules and nodes, for example to post every new one star review to a team chat.
  • Webhooks: have Apify call your URL when a run finishes, then fetch the dataset.
  • API: start runs and read results over HTTP, or with the Python and JavaScript clients.
  • MCP clients: Claude, ChatGPT, Cursor and other MCP clients can call the actor through https://mcp.apify.com.

More from The Mine Works

Marketing, SEO and reviews

Social media and video

Leads and business directories

LinkedIn

Real estate

Science, health and government data

Jobs and hiring

E-commerce and marketplaces

Company and business data

Food and local services

Developer and AI tools

More tools

Support

Found a bug or need a field we do not return? Open an issue in the Issues tab. Want a review site or map we do not cover yet? Email dmineworks@gmail.com.

Yandex Maps Reviews Scraper turns any Yandex Maps place, or a search in 14 cities, into review rows with the place details attached, sorted and date filtered as you choose, from $1.49 per 1,000 reviews.