🧪 Yandex Maps Reviews Scraper — Full Review Export
Pricing
from $0.21 / 1,000 reviews
🧪 Yandex Maps Reviews Scraper — Full Review Export
Export a Yandex Maps organisation's reviews with the stars, full text and its language, the reviewer's name and contributor level, likes and dislikes, attached photographs, and Yandex's own per-aspect summary of what reviewers praise and complain about.
Pricing
from $0.21 / 1,000 reviews
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Yandex Maps Reviews Scraper
Every written review of a Yandex Maps organisation, as a spreadsheet. Each row carries the stars, the full text and the language it was written in, when it was last edited, whether Yandex has pinned it, the reviewer's name, public id and contributor level, likes and dislikes, the photographs attached to it — and Yandex's own per-aspect summary of what reviewers praise and complain about, on every row.
The walk reaches the end. Yandex's review counts agree with themselves across page sizes —
6,001 reviews is 301 pages of 20 and 121 pages of 50 — so maxItems: 0 genuinely means every
review rather than as many as the pager happens to hand over.
Accepted input
placeUrls is required and takes one organisation per line, as either the numeric id
(1018907821) or the page address
(https://yandex.com/maps/org/pushkin/1018907821/). Both are accepted in the same list.
Every Yandex Maps Scraper row publishes
both, as id and as url, which is how the two Actors compose.
reviewSort chooses the ordering: newest first (the default), highest rated first, or lowest
rated first. Yandex's own relevance ordering is deliberately not offered. It answers with a
perfectly healthy response carrying no reviews at all, which would read as an organisation
with none — the worst possible failure on a reviews export, because it is indistinguishable
from a real answer.
language picks the language the response comes back in: English, Russian, Turkish or
Ukrainian. It does not translate the reviews themselves — each carries the language it was
written in, under text_language.
maxItems defaults to 100 and caps each organisation separately, so twenty
organisations with a cap of 100 returns up to 2,000 rows rather than 100 shared between them.
0 means no limit.
There is no page-size input. It is always fifty, which is the largest that works: asking for a hundred returns a body with neither reviews nor totals in it — not an error, just nothing.
{"placeUrls": ["1018907821"],"reviewSort": "newest","language": "en_US","maxItems": 500}
Response fields
{"place_id": "1018907821","sort": "newest","language": "en_US","review_id": "aXaLK0yGz9E1MsCLBc8sMg","business_id": "1018907821","review_rating": 5,"review_text": "Прекрасное место, обязательно вернусь.","text_language": "ru","updated_at": "2026-08-01T10:12:00Z","pinned": false,"author_name": "Мария","author_public_id": "b5702370dd1141b080fb8693fe2991fc","author_level": "Знаток города 7 уровня","author_avatar_url_template": "https://avatars.mds.yandex.net/get-yapic/…/{size}","likes": 12,"dislikes": 1,"photos": [],"total_reviews": 6001,"total_pages": 121,"page": 1,"page_size": 50,"reviews_remaining": 5951,"aspects": { "food": 4.8, "service": 4.5 }}
Fields absent from a review are returned as null rather than omitted, so every row has the same shape.
The review's own fields are namespaced away from the organisation's: review_rating is the
stars this review gave, and place_id is the organisation it belongs to. A dataset that used
rating for both would be unsortable.
author_level is Yandex's own contributor level for the reviewer, which is the cheapest signal
available for weighting an opinion. author_reviews-style totals are not published, because
Yandex does not state one here.
author_avatar_url_template contains a literal {size} and is not a fetchable address. It
is published as the template it is rather than filled in with a size this Actor picked, because
a picked size is a decision you did not make.
aspects is Yandex's own per-aspect summary for the organisation — the things reviewers praise
and complain about, scored. It describes the organisation rather than the review, so it repeats
on every row of one organisation.
total_reviews and total_pages are Yandex's own and they are consistent: 6,001 reviews is
301 pages of 20 and 121 pages of 50. That is why the walk trusts them, unlike the estimate on
the Maps search, which grows as you page.
Behaviour on partial results
The walk goes to total_pages and stops there — never on "did this page come back full",
which is unreliable on any paged surface and would ask for a page past the end of every
organisation with a round number of reviews.
An organisation that no longer resolves is skipped with a line in the run log and the rest of the list still runs. An entry that is not an organisation is skipped before any request is made.
An organisation with no written reviews is a successful run with no rows, and the run log says so explicitly. Coverage is deepest in Russia and the CIS: a Moscow restaurant carried 6,001 written reviews while Manhattan coffee shops carried none. That is real sparsity in Yandex's data rather than a failed read, and the log line exists so an empty dataset is not mistaken for one.
Frequently asked questions
How many reviews can I actually get?
All of them. Yandex's review totals agree with themselves across page sizes, so a walk to
total_pages is a complete walk. That is unusual — the Maps search on the same site publishes
an estimate that grows as you page — and it is why maxItems: 0 is a safe thing to set here.
Why is the relevance ordering missing? Because it does not work. Yandex answers it with a healthy response carrying no reviews at all, and an Actor that offered it would produce empty datasets that look exactly like organisations with no reviews. Only measured orderings are offered.
Does the ordering change which reviews I get?
Only their order, on a complete walk. If you cap the run with maxItems, the ordering decides
which slice you keep — which is exactly when highest-rated or lowest-rated matters.
The organisation's page says thousands of reviews and I got far fewer.
Check which number you read. Yandex counts people who rated separately from people who
wrote, and only the second has text to export. Yandex Maps Place
Scraper publishes both as
rating_count and review_count, and review_count is the one this Actor reaches.
Does language translate the reviews?
No. It sets the language of the response around them; each review carries the language it was
actually written in, under text_language. Nothing here translates a review, because a
translated review attributed to its author is a quote they did not write.
Where do I get organisation ids?
From Yandex Maps Scraper — every row
publishes both an id and a url, and either works here.
Is a Yandex account or API key required? No. No account, session cookie or key of any kind is supplied to the Actor or needed by it.
Related Actors
Yandex Maps Scraper is where the ids come from: organisations by name, category or address, centred anywhere in the world, with phone numbers and opening hours already on each search row.
Yandex Maps Place Scraper reads one
organisation in full, and is where to check review_count before planning a large harvest.
Yandex Search Scraper is the other half of this site: web results with paid placements flagged on every row.