Yandex Maps Reviews Scraper API
Pricing
Pay per event
Yandex Maps Reviews Scraper API
Paste a Yandex Maps organisation URL and get its reviews: star rating, full text, author, date, likes, photos and the owner's reply where there is one. Every row also carries the place's name, address, category, overall rating and review count. $0.30 per 1,000. No key, no login.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
29 minutes ago
Last modified
Categories
Share
Yandex Maps Reviews Scraper
Give it a Yandex Maps organisation URL and it returns that place's reviews: star rating, the full text, the author, the date, likes and dislikes, any photos the reviewer attached, and the business's own reply where there is one.
Every row also carries the place itself: name, address, category, overall rating, total review count and back-links. One row stands on its own without a second lookup.
No Yandex account, no API key, no cookie, no browser.
Price
$0.30 per 1,000 reviews, plus $0.001 to start a run. Same rate on every plan.
You're charged per review returned. Reviews removed by your filters are not charged. A run that finds nothing costs the start fee and nothing else.
What you get
| Field | Notes |
|---|---|
reviewId | stable id, safe to diff on between runs |
rating | 1–5 |
text, textLanguage, hasText | the review body, verbatim, in whatever language it was written |
publishedAt, publishedAtTimestamp | ISO 8601 and epoch ms |
authorName, authorId, authorLevel, authorAvatarUrl, authorProfileUrl | authorLevel is Yandex's "Знаток города N уровня" contributor rank |
likes, dislikes | reaction counts |
businessReplyText, businessReplyAt, hasBusinessReply | the owner's reply, when there is one |
photoUrls, photoCount, videoCount | attached media |
organizationId, organizationName, organizationAddress, organizationCategory | the place |
organizationRating, organizationReviewCount | the place's aggregate score |
organizationUrl, organizationReviewsUrl | back-links |
isPinned, position, scrapedAt | ordering and run metadata |
How full those columns actually are depends on the business. Two runs, side by side: a Moscow
dental clinic returned 12 reviews and the owner had replied to every one of them; a large Moscow
shopping centre returned 300 reviews and the owner had replied to none. Photos are the same story.
Of those 300 reviews, 107 carried at least one photo, 295 had an author avatar and all 300 had text.
Missing values come back null or empty, never guessed.
Input
{"startUrls": ["https://yandex.ru/maps/org/aviapark/1200353900/"],"maxItems": 300}
| Field | What it does |
|---|---|
startUrls | The organisation page (https://yandex.ru/maps/org/<slug>/<id>/), the reviews tab, or just the numeric id. A Yandex Maps search URL works too and gets expanded into its top organisations. |
maxReviewsPerOrganization | Per place, 1–600. 600 is the ceiling because that's all Yandex serves. |
maxItems | Budget stop across every organisation in the run. |
searchQueries + city | Find places by name or category instead of pasting URLs — "стоматология" in "Москва". Yandex indexes Russian-language names most completely. |
maxOrganizationsPerQuery | How many places each search term contributes before its reviews get scraped. |
minRating / maxRating | Star bounds. Set maxRating to 2 or 3 to pull complaints only. |
onlyWithText | Skip star-only ratings with no written review. |
onlyWithBusinessReply | Keep only reviews the business answered. |
newerThan | ISO date. Only reviews published on or after it. |
language | Language for the organisation name, address and category. Review text is always in the language the reviewer used. |
proxyConfiguration | Leave it. The actor brings its own egress. |
Anything a filter removes is dropped before it's charged.
Run it with no input and you get one labelled sample row, uncharged, so you can see the shape first.
How fast
A 300-review run on a busy Moscow shopping-centre listing finished in 27 seconds, container start included. Yandex server-renders its map data into the page rather than exposing a public JSON API, so this reads that embedded state directly. Nothing launches a browser, which is what keeps a run that size under half a minute. That 300-review run cost $0.091 to buy: $0.09 of reviews and the $0.001 start fee.
Yandex re-orders results between page requests, so reviews are de-duplicated as they're collected.
maxItems means unique reviews, not raw rows fetched.
Limits
- 600 reviews per organisation is the ceiling. That's Yandex's own limit — it won't page past that for anyone. A place with 4,000 reviews gives you its first 600 in Yandex's relevance order, newest and longest first.
- Business replies are the business's doing, not the scraper's.
hasBusinessReplyis false on every row for a place that never replies. - No reviewer contact details. Yandex doesn't publish them.
- No review translation. Text comes back exactly as written.
- Photo URLs point at Yandex's own CDN. Fetch them during or soon after the run if you need to keep the images.
Questions
Do I need a Yandex account or API key? No. Nothing to authenticate.
What does 1,000 reviews cost? $0.30, plus the $0.001 start fee.
Can I scrape several places at once? Yes. Pass multiple URLs in startUrls. Every row carries its
own organizationId and organizationName.
Can I get only the complaints? Set maxRating to 3 and onlyWithText to true. You get written
complaints and nothing else, and the reviews the filter drops aren't charged.
Are the reviews in Russian? Whatever the reviewer wrote. Russian dominates on Russian listings.
textLanguage tells you per row.
How do I find the organisation URL? Search the place on Yandex Maps and copy the address bar. It
looks like https://yandex.ru/maps/org/<slug>/<id>/. A bare id works too.
Can I export to CSV or Excel? Yes — Apify exports the dataset as JSON, CSV, Excel or XML, with a REST endpoint for the same data.