Yandex Maps Reviews Scraper

Extract public Yandex Maps organization reviews, ratings, reviewer names, dates, likes, and owner replies for reputation monitoring.

Data fields

FieldTypeDescription
placeIdstringValue exported as placeId.
placeNamestring | nullValue exported as placeName.
placeUrlstringValue exported as placeUrl.
reviewIdstringValue exported as reviewId.
reviewerNamestring | nullValue exported as reviewerName.
reviewerProfileUrlstring | nullValue exported as reviewerProfileUrl.
ratingnumber | nullValue exported as rating.
reviewTextstring | nullValue exported as reviewText.

Input preview

startUrlsYandex Maps organization/reviews URLs
searchQueriesSearch queries
maxReviewsPerPlaceMaximum reviews per place
maxPlacesPerQueryMaximum places per search query
sortReview sort order
languageAccept-Language header

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Scrape public Yandex Maps organization reviews, ratings, reviewer names, dates, likes, and owner replies into a clean dataset.

What does Yandex Maps Reviews Scraper do?

Yandex Maps Reviews Scraper collects public review rows from Yandex Maps organization pages.

It is built for local SEO teams, reputation managers, market researchers, hospitality operators, retail chains, and agencies that need structured review exports.

The actor accepts direct Yandex Maps organization URLs and can also resolve simple Yandex Maps search queries to organization review pages.

Why scrape Yandex Maps reviews?

Yandex Maps is a major local discovery channel in many markets.

Reviews influence search visibility, conversion, customer trust, and operational decisions.

Manual review monitoring is slow when a team tracks many stores, restaurants, hotels, clinics, or service locations.

This actor turns public reviews into rows that can be exported to JSON, CSV, Excel, Google Sheets, BI tools, or internal dashboards.

Who is it for?

  • πŸͺ Multi-location operators use it to monitor branch-level review quality, missed owner replies, and recurring service problems across stores, restaurants, clinics, hotels, or service offices.
  • πŸ“ˆ Local SEO and reputation agencies use it to create recurring client reports, prove review-response coverage, and spot locations that need urgent attention.
  • 🧭 Market research teams use it to compare public customer feedback for competing venues in the same city or category.
  • πŸ§‘β€πŸ’» Data and automation teams use it to feed public review rows into sentiment analysis, alerts, warehouses, CRMs, and BI dashboards.

Use it when you need structured review rows rather than a general place directory export.

Typical use cases

Monitor recent customer feedback for local branches.

Collect review text for sentiment analysis.

Track owner replies and response coverage.

Compare ratings across competing businesses.

Build lead lists for reputation management services.

Audit hospitality, restaurant, retail, clinic, and service-location performance.

Archive public reviews for reporting and compliance workflows.

Input options

You can provide direct Yandex Maps organization URLs in startUrls.

You can provide optional search terms in searchQueries.

You can limit reviews per place with maxReviewsPerPlace.

You can limit resolved organizations per query with maxPlacesPerQuery.

You can set the language header with language.

You can configure Apify Proxy in proxyConfiguration.

Start URLs

Use public Yandex Maps organization URLs.

Both organization overview URLs and review-tab URLs are accepted.

The actor automatically normalizes organization URLs to the Reviews tab.

Example:

{
  "startUrls": [
    { "url": "https://yandex.com/maps/org/surf_coffee/238919133832/reviews/" }
  ],
  "maxReviewsPerPlace": 25
}

Search queries

Search queries are useful when you do not already know the organization URL.

The actor resolves Yandex Maps search results and then scrapes reviews for the matched places.

Keep queries specific for best results.

Examples:

{
  "searchQueries": ["coffee in Moscow"],
  "maxPlacesPerQuery": 1,
  "maxReviewsPerPlace": 25
}

Input settings

Setting JSON key Type / default Description
Yandex Maps organization/reviews URLs startUrls array, default [{"url":"https://yandex.com/maps/org/surf_coffee/238919133832/reviews/"}] Paste one or more public Yandex Maps organization URLs. Regular org URLs are automatically converted to their Reviews tab.
Search queries searchQueries array, default ["coffee in Moscow"] Optional Yandex Maps search terms. The actor resolves the first matching places and then scrapes their reviews.
Maximum reviews per place maxReviewsPerPlace integer, default 20 Maximum number of review rows to save for each organization.
Maximum places per search query maxPlacesPerQuery integer, default 1 When using search queries, scrape this many places from each query.
Review sort order sort string, default "relevance" Best effort. Yandex may keep its default relevance ranking depending on UI availability.
Accept-Language header language string, default "en-US,en;q=0.9" Browser locale and HTTP language preference used for Yandex Maps pages.
Proxy configuration proxyConfiguration object, default {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]} Apify proxy configuration. Residential proxy is recommended for larger runs if Yandex starts challenging requests.

Example input

{
  "startUrls": [
    {
      "url": "https://yandex.com/maps/org/surf_coffee/238919133832/reviews/"
    }
  ],
  "searchQueries": [
    "coffee in Moscow"
  ],
  "maxReviewsPerPlace": 20,
  "maxPlacesPerQuery": 1,
  "sort": "relevance",
  "language": "en-US,en;q=0.9",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}

Example output

{
  "placeId": "238919133832",
  "placeName": "Surf Coffee",
  "placeUrl": "https://yandex.com/maps/org/surf_coffee/238919133832/reviews/",
  "reviewId": "238919133832-user-may-11",
  "reviewerName": "КсСния Π’.",
  "reviewerProfileUrl": "https://yandex.com/maps/user/example",
  "rating": 5,
  "reviewText": "Great coffee and friendly staff.",
  "reviewDate": "May 11",
  "likes": 3,
  "ownerReplyText": "Thank you for your review!",
  "ownerReplyDate": "May 24",
  "language": "en-US,en;q=0.9",
  "scrapedAt": "2026-07-03T12:00:00.000Z"
}

Review text

The reviewText field contains the visible public review text.

The actor removes common UI suffixes such as expanded text controls when possible.

Very long reviews are collected from the rendered review card.

Ratings

The rating field is parsed from the Yandex Maps star rating accessibility label.

It is returned as a number when available.

If a rendered card does not expose a rating, the value is null.

Owner replies

Many Yandex Maps reviews contain an official organization response.

The actor expands visible business response controls before extraction.

When a response is present, ownerReplyText and ownerReplyDate are saved.

When no response is present, those fields are null.

Likes

The likes field captures the visible like count on a review card when available.

If no count is visible, the value is null.

Dates

Yandex Maps may display relative or localized dates depending on the page language and review age.

The actor returns the date text exactly as shown by Yandex Maps.

Use language if you need predictable UI language for downstream parsing.

Limits

maxReviewsPerPlace controls how many reviews are saved per organization.

The default is intentionally small enough for quick tests.

Increase it for production monitoring runs.

Large limits may require proxies because Yandex Maps can throttle heavy browser sessions.

Proxy configuration

The actor supports Apify Proxy.

Residential proxy is recommended for larger production workloads.

Small local tests can often run without a proxy.

If Yandex Maps displays a challenge or empty page, enable proxy and reduce concurrency by keeping inputs small.

Performance notes

Review pages are rendered dynamically, so the actor uses Playwright.

Search query resolution uses lightweight HTTP parsing where possible.

The actor scrolls review cards until the requested limit is reached or no new reviews load.

API usage

Run Yandex Maps Reviews Scraper from your own code with the Apify API.

Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
  "startUrls": [
    {
      "url": "https://yandex.com/maps/org/surf_coffee/238919133832/reviews/"
    }
  ],
  "searchQueries": [
    "coffee in Moscow"
  ],
  "maxReviewsPerPlace": 20,
  "maxPlacesPerQuery": 1,
  "sort": "relevance"
};

const run = await client.actor('fetch_cat/yandex-maps-reviews-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/yandex-maps-reviews-scraper").call(run_input={
  "startUrls": [
    {
      "url": "https://yandex.com/maps/org/surf_coffee/238919133832/reviews/"
    }
  ],
  "searchQueries": [
    "coffee in Moscow"
  ],
  "maxReviewsPerPlace": 20,
  "maxPlacesPerQuery": 1,
  "sort": "relevance"
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(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 '{"startUrls":[{"url":"https://yandex.com/maps/org/surf_coffee/238919133832/reviews/"}],"searchQueries":["coffee in Moscow"],"maxReviewsPerPlace":20,"maxPlacesPerQuery":1,"sort":"relevance"}'

How to run with search queries

Leave startUrls empty.

Add one or more terms to searchQueries.

Set maxPlacesPerQuery to control how many organizations each query resolves.

Run the actor and inspect the dataset.

Integrations

  • πŸ“Š Actor β†’ Google Sheets: schedule the actor daily or weekly, export the dataset to Google Sheets, and give branch managers a simple review-response tracker.
  • πŸ“ˆ Actor β†’ BI dashboard: send dataset exports to BigQuery, Snowflake, Looker Studio, Power BI, or another warehouse/dashboard tool to trend ratings, reply coverage, and complaint themes.
  • 🧾 Actor β†’ CRM or helpdesk: route low-rating reviews or missing owner replies into HubSpot, Salesforce, Zendesk, or an internal queue for follow-up.
  • πŸ€– Actor β†’ AI analysis: pass fresh review rows to an LLM workflow for sentiment summaries, issue clustering, competitor comparison, or monthly reputation reports.

Use with AI agents via MCP

Yandex Maps Reviews Scraper can be used by AI assistants through the hosted Apify MCP server.

Claude Code setup

claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/yandex-maps-reviews-scraper"

Claude Desktop, Cursor, or VS Code JSON config

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/yandex-maps-reviews-scraper"
    }
  }
}

Example prompts

  • "Run Yandex Maps Reviews Scraper with this input JSON and summarize the dataset."
  • "Export the latest Yandex Maps Reviews Scraper results to a table I can review."
  • "Schedule this Actor for monitoring and tell me what changed between runs."

Best practices

Prefer direct organization URLs for repeatable monitoring.

Use specific search queries when discovering places.

Start with small limits before scaling up.

Use proxies for production-scale runs.

Store historical datasets if you need trend reporting.

Troubleshooting

If the dataset is empty, verify the Yandex Maps URL opens publicly in a browser.

If a search query returns an unexpected place, make the query more specific.

If Yandex Maps shows a cookie banner, the actor handles the common banner automatically.

If Yandex Maps throttles requests, enable Apify Proxy and lower limits.

Data quality

The actor extracts public data visible on Yandex Maps pages.

Some fields can be missing when Yandex does not render them for a given review.

The dataset schema keeps optional values as null instead of inventing values.

Legality

Only scrape public data that you are allowed to process.

Respect Yandex Maps terms, applicable privacy laws, and your internal compliance requirements.

Privacy and compliance

Only scrape data you are allowed to process.

Respect Yandex Maps terms and applicable privacy laws.

Do not use the actor to collect private account-only data.

Support

Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.

Common questions

Questions and answers reused from the canonical actor README.

Does this require a Yandex account?

No. The first version targets public organization review pages visible without login.

Can it scrape every review?

It scrolls the rendered review list up to your configured limit.

Availability depends on what Yandex Maps renders during the session.

Can it scrape owner replies?

Yes. Visible official responses are expanded and saved when present.

Can I use it for many locations?

Yes. Provide multiple start URLs or search queries, then choose safe limits and proxy settings.

Does it scrape photos?

No. This actor focuses on review rows, ratings, likes, and owner replies.