Yandex Maps Reviews Scraper
Pricing
from $0.28 / 1,000 item extracteds
Yandex Maps Reviews Scraper
Export public Yandex Maps reviews with ratings, exact dates, reactions, media, reviewer details, and owner replies using fast JSON pagination.
Pricing
from $0.28 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Export public Yandex Maps reviews through fast paginated JSON requests. Collect stable review IDs, exact dates, ratings, text, reactions, photos, videos, reviewer details, and owner replies without starting a browser.
Ready-to-run examples
- Yandex Maps Owner Reply Audit
- Yandex Maps Restaurant Review Comparison
- Yandex Maps Known Organization Reviews
- Yandex Maps Hotel Reviews Monitoring
- Yandex Maps Moscow Coffee Reviews
View all ready-to-run examples
What does it do?
Yandex Maps Reviews Scraper turns public organization reviews into analysis-ready JSON, CSV, Excel, or API data. Give it organization URLs, numeric Yandex business IDs, or search queries. It follows Yandex's review pagination up to your limit and saves one review per dataset row.
The Actor is designed for:
- Multi-location operators tracking branch ratings, complaints, and unanswered reviews.
- Local SEO and reputation agencies producing recurring client reports.
- Market researchers comparing customer feedback across venues and categories.
- Data teams feeding review rows into alerts, warehouses, BI, CRM, or AI analysis.
Who is it for and common use cases?
Reputation teams can monitor new low-rating reviews and response coverage. Local SEO agencies can compare locations or competitors. Operations teams can route complaints by branch. Researchers and data teams can archive exact review records for analysis, dashboards, or authorized AI workflows.
Key features
- Up to 1,000 matching reviews per place.
- Native Yandex sorting by relevance, newest, highest rating, or lowest rating.
- Inclusive rating and ISO date filters.
- Exact source review IDs and update timestamps for monitoring workflows.
- Reviewer name, public profile, avatar, and contributor level.
- Likes, dislikes, photos, videos, text language, and pinned state.
- Business owner replies with exact reply timestamps.
- Direct organization URLs, numeric business IDs, and query discovery.
- Lightweight HTTP collection with no browser startup.
- Checkpointed progress, duplicate protection, bounded retries, and per-place failure diagnostics.
- Agent-readable input, output, dataset, and key-value-store schemas.
Input example
At least one of startUrls, placeIds, or searchQueries is required.
{"startUrls": [{ "url": "https://yandex.com/maps/org/surf_coffee/238919133832/reviews/" }],"maxReviewsPerPlace": 100,"sort": "date","minRating": 1,"maxRating": 3,"dateFrom": "2026-01-01","language": "en-US,en;q=0.9","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input settings
| Setting | Type / default | Description |
|---|---|---|
startUrls | array | Public Yandex Maps organization or Reviews URLs. Existing overview URLs are normalized to the Reviews tab. |
placeIds | string array | Numeric Yandex business IDs, useful when another place scraper supplies identifiers. |
searchQueries | string array | Optional discovery terms such as coffee in Moscow. Specific queries give more repeatable matches. |
maxReviewsPerPlace | integer, 20 | Maximum matching rows per organization, from 1 to 1,000. |
maxPlacesPerQuery | integer, 1 | Organizations to collect per search query, from 1 to 10. |
searchRegionId | integer, 213 | Legacy region hint retained for input compatibility. The current Yandex search route derives location from query text, so include the city or region in each query. |
sort | string, relevance | relevance, date, highest, or lowest. These map to Yandex's native review rankings. |
minRating / maxRating | integer, optional | Inclusive star bounds from 1 to 5. |
dateFrom / dateTo | string, optional | Inclusive date bounds in YYYY-MM-DD format. |
maxRunSeconds | integer, optional | Safety budget from 65 to 540 seconds. One minute is reserved for checkpoints and diagnostics. |
language | string, en-US,en;q=0.9 | HTTP language preference and API locale context. |
proxyConfiguration | object, residential proxy by default | The existing residential default is retained because Yandex commonly challenges cloud datacenter traffic. Disable it in authorized environments where direct requests work. |
Use numeric business IDs
{"placeIds": ["238919133832"],"maxReviewsPerPlace": 50,"sort": "highest"}
Discover places by query
{"searchQueries": ["coffee in Moscow"],"searchRegionId": 213,"maxPlacesPerQuery": 3,"maxReviewsPerPlace": 25}
Direct URLs or IDs are preferable for repeatable scheduled monitoring. Query discovery depends on current search ranking and may be challenged separately from review collection.
Output example
Each dataset item is one review:
{"placeId": "238919133832","placeName": "Surf Coffee","placeUrl": "https://yandex.com/maps/org/surf_coffee/238919133832/reviews/","reviewId": "ozOWw-4cUE8Yp-DzdhGseAdC8qAH6B","reviewerName": "Ксения Плетнева","reviewerProfileUrl": "https://yandex.com/maps/user/cj5g11g0d6awj8vren68yugvac/reviews/","reviewerAvatarUrl": "https://avatars.mds.yandex.net/get-yapic/example/orig","reviewerLevel": "Level 5 Local Expert","rating": 5,"reviewText": "Great coffee and friendly staff.","reviewDate": "2026-07-19T19:54:17.948Z","reviewTextLanguage": "en","likes": 1,"dislikes": 0,"ownerReplyText": "Thank you for your review!","ownerReplyDate": "2026-07-20T09:00:00.000Z","photoUrls": [],"videoUrls": [],"isPinned": false,"language": "en-US,en;q=0.9","scrapedAt": "2026-07-20T12:00:00.000Z"}
Output fields
| Field | Description |
|---|---|
placeId, placeName, placeUrl | Yandex organization identity and public Reviews URL. |
reviewId | Stable source identifier on the primary JSON route; suitable for monitoring deduplication. |
reviewerName, reviewerProfileUrl | Public author identity when Yandex exposes it. |
reviewerAvatarUrl, reviewerLevel | Public avatar and contributor level when present. |
rating, reviewText, reviewDate | Stars, public review text, and exact ISO update time. |
reviewTextLanguage | Text language reported by Yandex. |
likes, dislikes | Current public reaction counts. |
ownerReplyText, ownerReplyDate | Business response and exact update time when present. |
photoUrls, videoUrls, isPinned | Review media and pinned state. |
language, scrapedAt | Run language context and collection time. |
When the signed JSON route is unavailable before any row is emitted, the Actor can use Yandex's bounded public reviews widget. Fallback rows keep the same keys, use null or empty arrays for unavailable enrichment, and include a warnings entry.
Reliability and run records
The Actor checks source response shape instead of treating malformed or challenge pages as empty reviews. It bounds transient retries, shares one run deadline across all requests, detects repeated pagination pages, and continues healthy places when one place fails.
RUN_SUMMARY in the default key-value store includes saved and charged counts, completed and failed places, API/widget route counts, warnings, and resume status. PENDING_WORK is maintained during active work and removed after a successful run.
Dataset writes use the Actor's item PPE event in the same SDK operation. On Apify, a successfully saved row therefore corresponds to one item event.
Performance and proxy guidance
The primary route is lightweight and fetches up to 50 reviews per source request. Yandex commonly challenges Apify cloud datacenter traffic, so the Actor retains its existing residential proxy default. In an authorized environment where direct requests work, set useApifyProxy to false to avoid proxy transfer cost.
The Actor does not log in, accept account cookies, or solve CAPTCHAs.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/yandex-maps-reviews-scraper').call({placeIds: ['238919133832'],maxReviewsPerPlace: 100,sort: 'date',minRating: 1,maxRating: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("fetch_cat/yandex-maps-reviews-scraper").call(run_input={"placeIds": ["238919133832"],"maxReviewsPerPlace": 100,"sort": "date","minRating": 1,"maxRating": 3,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~yandex-maps-reviews-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"placeIds":["238919133832"],"maxReviewsPerPlace":100,"sort":"date","minRating":1,"maxRating":3}'
Integrations
- Schedule the Actor into Google Sheets for a branch-level review-response tracker.
- Send datasets to BigQuery, Snowflake, Looker Studio, Power BI, or another warehouse/dashboard.
- Route low ratings or missing owner replies into HubSpot, Salesforce, Zendesk, Slack, or an internal queue.
- Feed exact review rows into sentiment analysis, issue clustering, alerts, and competitor reports.
Use with AI agents through MCP
$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/yandex-maps-reviews-scraper"
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/yandex-maps-reviews-scraper"}}}
Example prompt: “Export the newest one-star to three-star reviews for these Yandex business IDs, then group complaints by location.”
Pricing
This Actor uses pay-per-event pricing. The event names and configured prices are:
| Event | Charge | Price |
|---|---|---|
start | Once when an authorized run begins | $0.005 |
| Event | Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
item per 1,000 saved reviews | $0.54581 | $0.47461 | $0.37020 | $0.28477 | $0.18985 | $0.13289 |
Apify may separately charge platform compute, storage, proxy, or transfer usage according to the user's plan. The input form visibly defaults to residential proxy traffic for source reliability; disable it when an authorized direct route works.
Limits and data quality
Yandex can change or challenge its public site. Optional fields remain null or empty when Yandex does not expose them; the Actor does not invent values. Sorting is source-native, while rating/date filters are applied deterministically to returned review objects.
A run fails clearly if all requested places fail or no review matches the requested filters. If at least one place succeeds, other place failures are preserved in RUN_SUMMARY.
Responsible use
Collect only public data you are authorized to process. Respect Yandex's terms, applicable privacy and data-protection laws, and your internal retention rules. Do not use the Actor for private account-only data or unnecessary sensitive profiling.
Inputs and outputs remain in the Apify storage configured for the run. FetchCat does not send them to advertising networks, data brokers, or model-training services. Requests go only to the target source and, when explicitly enabled, Apify Proxy.
FAQ
Does it require a Yandex account?
No. It works with public organization reviews and does not accept login cookies.
Can it collect more than the first visible reviews?
Yes. It follows Yandex's review pages up to maxReviewsPerPlace, with a current maximum of 1,000 matching reviews per place.
Does it include owner replies and media?
Yes, when Yandex exposes them. Owner replies, reply dates, photo URLs, and video URLs are included on the primary route.
Can I monitor many locations?
Yes. Supply multiple URLs or business IDs and schedule the Actor. Stable reviewId and ISO reviewDate fields support downstream new-review detection.
Related Actors
- Yandex Maps Scraper
- Apple Maps Places Scraper
- ATS Jobs Scraper for 6 ATS Sources
- Craigslist Classifieds Scraper
Support
Report blocked runs, schema changes, incorrect fields, or missing reviews from the Actor page. Include the Apify run ID or run URL, sanitized input JSON, expected output, actual output returned by the dataset, and one reproducible public URL.