# Yandex Maps Reviews Scraper API | Парсер отзывов Яндекс Карт (`themineworks/yandex-maps-reviews-scraper-api`) Actor

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.

- **URL**: https://apify.com/themineworks/yandex-maps-reviews-scraper-api.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Lead generation, Marketing, MCP servers
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 reviews

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

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

[![600 Yandex Maps reviews in 26 seconds: a recorded run read 200 reviews from each of 3 Moscow restaurants in 26 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/yandex-maps-reviews-scraper-api-hero.png)](https://console.apify.com/actors/XxnYGAAGpyZ8Wf1pb/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), 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](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/XxnYGAAGpyZ8Wf1pb/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Marketing, SEO and reviews family:** [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google Trends Scraper](https://apify.com/themineworks/google-trends-pro?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### 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.

```json
{
  "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

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

#### Several places at once

```json
{
  "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

```json
{
  "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

```json
{
  "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

```json
{
  "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

```json
{
  "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](https://apify.com/themineworks/yandex-maps-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), 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

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `startUrls` | array of strings | none | Places, 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`. |
| `searchQuery` | string | none | Optional. A search such as `кафе`, `стоматология` or `car wash`. The actor finds places in `city` first, then reads their reviews. Works together with `startUrls`. |
| `city` | string, one of 14 | `moscow` | City for the search: `moscow`, `spb`, `novosibirsk`, `yekaterinburg`, `kazan`, `nizhny`, `chelyabinsk`, `samara`, `rostov`, `ufa`, `krasnoyarsk`, `minsk`, `almaty`, `astana`. Only used with `searchQuery`. |
| `maxPlaces` | integer, 1 to 100 | `10` | How many places the search may add, nearest the city center first. |
| `maxReviewsPerPlace` | integer, 0 to 5,000 | `100` | Most 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. |
| `sort` | string | `relevance` | `relevance` (as on Yandex Maps), `newest`, `lowest` or `highest` rating first. |
| `reviewsStartDate` | string | none | Only 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.

| Field | What it is |
|---|---|
| `review_id` | Yandex's review id. Use it as the unique key. |
| `place_id` | Yandex business id of the place |
| `place_name` | Name of the place |
| `place_address` | Full address as Yandex shows it |
| `place_city` | City of the place |
| `place_rating` | Average rating of the place |
| `place_review_count` | Written reviews Yandex counts for the place |
| `place_url` | Link to the place on Yandex Maps |
| `rating` | Stars given in this review, 1 to 5 |
| `text` | Full review text |
| `date` | Review date, ISO 8601 in UTC (the edit date if the author edited it) |
| `photos_count` | Photos attached to the review |
| `sort_order` | `relevance`, `newest`, `lowest` or `highest` |
| `input` | The input line or search the place came from |
| `scraped_at` | When 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)

```json
{
  "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)

```json
{
  "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)

```json
{
  "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)

```json
{
  "_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)

```json
{
  "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.

| Event | Free plan | Bronze (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**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Trends Scraper](https://apify.com/themineworks/google-trends-pro?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Semrush Scraper](https://apify.com/themineworks/semrush-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [App Review Monitor](https://apify.com/themineworks/app-reviews-monitor?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Trustpilot Business Search](https://apify.com/themineworks/trustpilot-business-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [TripAdvisor Reviews Scraper](https://apify.com/themineworks/tripadvisor-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Username Checker](https://apify.com/themineworks/username-checker?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Backlink Building Agent](https://apify.com/themineworks/backlink-building-agent?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Hotels Prices Scraper](https://apify.com/themineworks/google-hotels-prices-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### 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.*

# Actor input Schema

## `startUrls` (type: `array`):

One Yandex Maps place per line: a place link (https://yandex.ru/maps/org/tanuki/1036014863/, yandex.com, yandex.kz and /reviews/ links all work), a link with oid=, a short link (yandex.ru/maps/-/...) or the numeric business id (1036014863). Up to 500 per run; the same place twice is read once. Leave empty if you use the search below.

## `searchQuery` (type: `string`):

Optional. A search such as кафе, стоматология or car wash. The actor finds places in the city below first, then reads their reviews. Works together with the list above.

## `city` (type: `string`):

Only used with a search. For another city, paste place links instead.

## `maxPlaces` (type: `integer`):

How many places the search may add, nearest the city centre first.

## `maxReviewsPerPlace` (type: `integer`):

Most reviews to return for each place. 0 means all the actor can reach. Yandex shows up to 600 reviews per sort order; above 600 the actor also reads the other sort orders and drops duplicates.

## `sort` (type: `string`):

The order Yandex returns reviews in. Lowest first is the quickest way to read complaints.

## `reviewsStartDate` (type: `string`):

Optional. A date (2026-01-01) or a window (30 days, 6 months, 1 year). Reviews are then read newest first and reading stops at the first older review, so older reviews are neither returned nor charged.

## Actor input object example

```json
{
  "startUrls": [
    "https://yandex.ru/maps/org/tanuki/1036014863/"
  ],
  "city": "moscow",
  "maxPlaces": 10,
  "maxReviewsPerPlace": 50,
  "sort": "relevance"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://yandex.ru/maps/org/tanuki/1036014863/"
    ],
    "maxReviewsPerPlace": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/yandex-maps-reviews-scraper-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": ["https://yandex.ru/maps/org/tanuki/1036014863/"],
    "maxReviewsPerPlace": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/yandex-maps-reviews-scraper-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://yandex.ru/maps/org/tanuki/1036014863/"
  ],
  "maxReviewsPerPlace": 50
}' |
apify call themineworks/yandex-maps-reviews-scraper-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/yandex-maps-reviews-scraper-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XxnYGAAGpyZ8Wf1pb/builds/rPJf4Z6TXJpm5Q3U9/openapi.json
