# Yandex Maps Scraper: Places, Phones & Reviews (`cliqtomedia/yandex-maps-scraper`) Actor

Collect Yandex Maps places and reviews for local leads and market research. Get phones, websites, ratings, hours and reviews by search, city or business URL. No login or API key needed.

- **URL**: https://apify.com/cliqtomedia/yandex-maps-scraper.md
- **Developed by:** [Cliqto Media](https://apify.com/cliqtomedia) (community)
- **Categories:** Lead generation, Business
- **Features:** Limited permissions
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.89 / 1,000 business places

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

Give this Actor a search term and a city, business IDs or Yandex Maps links. It returns public business places or separate review rows from [Yandex Maps](https://yandex.com/maps), with phones, websites, ratings, hours and review text, and you need no login or API key.

Sales, local marketing and research teams can use it for lead lists and local market checks. The smallest run, 10 cafes in Almaty, took about 20 seconds and costs about $0.06 on the Free plan.

![Yandex Maps Scraper: a search, city or business link goes in; places, phones, ratings and reviews come out as a table](https://api.apify.com/v2/key-value-stores/YpY194xNmuikFds3O/records/hero-20261104.png)

### Table of contents

- [What it does](#what-it-does)
- [How it works](#how-it-works)
- [Quick start](#quick-start)
- [Use cases](#use-cases)
- [Input](#input)
- [Output](#output)
- [Pricing](#pricing)
- [Limits](#limits)
- [API, export and integrations](#api-export-and-integrations)
- [Troubleshooting](#troubleshooting)
- [FAQ](#faq)
- [Related Actors](#related-actors)
- [Support](#support)

### What it does

This Yandex Maps scraper reads public business pages and search results. It has three modes:

- **Places** saves one row per business: name, category, rating, address, phone, website, hours, and up to 50 reviews inside the row.
- **Reviews** saves one row per review: rating, text, date, public reviewer details and the owner reply.
- **Monitor** saves new businesses and changes in ratings and review counts since the last run.

It works with Yandex Maps data only. A row keeps `null` when the source does not show a value, so an empty phone means that the Actor did not find a phone on the public record.

#### Good fit

- You need a list of local businesses with phones and websites for sales outreach.
- You want to read customer reviews of your business or of other businesses, in Russian, Kazakh or other languages.
- You want a weekly list of new businesses in a city, or of rating changes.
- You want to compare categories or chains across cities in a spreadsheet.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### How it works

1. You give the Actor search terms, cities, business IDs or Yandex Maps links.
2. The Actor reads the public pages, removes duplicate businesses and applies your filters and limits.
3. The Actor saves rows to a Dataset. It also saves a run report in `RUN_SUMMARY` with counts, the final status and the reason for any early stop.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Quick start

[![Input form with the search term, the city, the row limit and the start button marked as boxes 1, 2, 3 and 4](https://api.apify.com/v2/key-value-stores/YpY194xNmuikFds3O/records/quick-start-form-20261104d.png)](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)

1. Open the **Input** tab. Enter what to search in **Search terms** (box 1). The form starts with `кафе`.
2. Enter a place in **City or area** (box 2). The form starts with `Алматы`.
3. Keep **Maximum result rows** at `10` for a first test (box 3).
4. Click the green **Start** button at the bottom of the page (box 4). It can also read **Save & start**.
5. Open the **Output** tab and check **Business name**, **Category**, **Rating**, **Written reviews count**, **Address**, **Phone** and **Website** in the **Places** view (box 5).

   [![Output table with business names, ratings, addresses, phones and websites from a test run](https://api.apify.com/v2/key-value-stores/YpY194xNmuikFds3O/records/output-table-20261104b.png)](https://api.apify.com/v2/key-value-stores/YpY194xNmuikFds3O/records/output-table-20261104b.png)

Expected result: up to 10 rows, one per business. Each row has `status: "complete"` when the Actor read everything that you asked for.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Use cases

| Buyer job                    | Input path                                                          | Output entity | Key fields                                     | Next integration                          |
| ---------------------------- | ------------------------------------------------------------------- | ------------- | ---------------------------------------------- | ----------------------------------------- |
| Build a local lead list      | `query`, `locations`, `includeReviews: false`, `enrichBusinessData` | Place         | `name`, `phone`, `website`, `email`, `address` | CSV or Excel export, CRM import           |
| Study customer reviews       | `mode: reviews`, `businessIds`, `reviewSort: all`                   | Review        | `rating`, `text`, `date`, `businessComment`    | Text analysis in a spreadsheet or BI tool |
| Find reviews without a reply | `mode: reviews`, `startUrls`, `replyFilter: unanswered`             | Review        | `reviewId`, `rating`, `text`, `url`            | Slack or Notion summary                   |
| Track ratings each week      | `mode: monitor`, `query`, `location`, `stateName`                   | Place         | `changeType`, `rating`, `reviewsCount`         | Apify schedule, webhook                   |
| Compare a market by city     | `query`, `locations`, `filterRating`, `category`                    | Place         | `category`, `rating`, `reviewsCount`, `city`   | BI tool, spreadsheet                      |

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Input

You must give at least one source: `query`, `category`, `businessIds` or `startUrls`. An empty input fails at once with `INVALID_INPUT`, and only the start fee is charged. Input lists have no fixed length, but the input size, the run timeout and your charge limit still apply. The Actor returns a business only once per run, even if two searches find it.

#### Input fields

| Field                    | Plain name                        | Type    | Required | Default / prefill               | Allowed values                                                          | Effect                                                                                                                                                                                                                                                                                        | Example                                   | Recommendation                                                         |
| ------------------------ | --------------------------------- | ------- | -------- | ------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------- |
| `mode`                   | Data to collect                   | string  | no       | `"places"`                      | `places`, `reviews`, `monitor`                                          | Choose business places, separate review rows, or changes in ratings and review counts.                                                                                                                                                                                                        | `places`                                  | Start with `places`. Use `reviews` for one row per review.             |
| `query`                  | Search terms                      | array   | no       | prefill `["кафе"]`              | list of strings                                                         | One or more business names or types. Results are shared across the run limit.                                                                                                                                                                                                                 | `["кафе"]`                                | Use the words people type on Yandex Maps.                              |
| `location`               | City or area                      | string  | no       | default and prefill `"Алматы"`  | text                                                                    | City or area for the search. If you leave it empty, the Actor uses Алматы. A city in a search term may override this area.                                                                                                                                                                    | `Алматы`                                  | Use it for one city. Use `locations` for many.                         |
| `locations`              | Several cities                    | array   | no       | empty                           | list of strings                                                         | Search the same terms in each city. Duplicate businesses are returned once.                                                                                                                                                                                                                   | `["Алматы","Астана"]`                     | Add areas to find more businesses than one search window gives.        |
| `category`               | Business category                 | string  | no       | empty                           | text                                                                    | Add a business category as another search term.                                                                                                                                                                                                                                               | `Ресторан`                                | Use it when a term alone is too broad.                                 |
| `businessIds`            | Business IDs                      | array   | no       | empty                           | list of strings                                                         | Numeric organization IDs from Yandex Maps business page URLs.                                                                                                                                                                                                                                 | `["85901801207"]`                         | Use it for known businesses. It skips search.                          |
| `startUrls`              | Business page URLs                | array   | no       | empty                           | list of strings                                                         | HTTPS Yandex Maps organization pages, short links, or search pages. Other websites are rejected.                                                                                                                                                                                              | `yandex.ru/maps/org/basilic/85901801207/` | Paste links from the browser. Other sites fail validation.             |
| `maxItems`               | Maximum result rows               | integer | no       | prefill `10`                    | 1 to 10000                                                              | Total result limit for the whole run. In reviews mode this counts reviews. For large searches, turn reviews off and increase the run timeout and maximum charge. Source windows may return fewer rows; use several queries or areas.                                                          | `10`                                      | Keep 10 for a first test. Raise timeout and charge limit for big runs. |
| `maxResults`             | Maximum results (compatibility)   | integer | no       | empty                           | 1 to 10000                                                              | Optional older name for Maximum result rows. If you set it, it overrides Maximum result rows.                                                                                                                                                                                                 | `10`                                      | Avoid it in new inputs. Use `maxItems`.                                |
| `includeReviews`         | Include reviews in places         | boolean | no       | `true`                          | `true`, `false`                                                         | Add review text, dates, ratings, replies and public reviewer information to each business.                                                                                                                                                                                                    | `false`                                   | Turn it off for phone and website lists. The run needs fewer lookups.  |
| `maxReviews`             | Reviews per business              | integer | no       | `50`                            | 0 to 2400                                                               | Maximum matching reviews per business. In Reviews mode: up to 2400 (Yandex exposes up to 600 per order; All combines four orders). Inside Places and Monitor rows: up to 50 per business, so use Reviews mode for more. A reported source total may be higher than accessible public reviews. | `50`                                      | Inside a place, 50 is the top value. Use `reviews` mode for more.      |
| `reviewSort`             | Review order                      | string  | no       | `"relevance"`                   | `relevance`, `newest`, `oldest`, `highestRating`, `lowestRating`, `all` | Use source relevance, newest or star order. All combines four public source orders. Oldest sorts the accessible source window; rows may be partial when older reviews are outside it.                                                                                                         | `newest`                                  | Use `all` for the widest review window.                                |
| `reviewMinRating`        | Minimum review rating             | number  | no       | empty                           | 1 to 5                                                                  | Keep reviews with at least this many stars.                                                                                                                                                                                                                                                   | `4`                                       | Use it to study unhappy or happy customers.                            |
| `reviewMaxRating`        | Maximum review rating             | number  | no       | empty                           | 1 to 5                                                                  | Keep reviews with at most this many stars.                                                                                                                                                                                                                                                    | `2`                                       | Set 2 to read only low ratings.                                        |
| `reviewsFrom`            | Reviews updated from              | string  | no       | empty                           | text                                                                    | Keep reviews updated on or after this date. Use an ISO date or timestamp.                                                                                                                                                                                                                     | `2026-01-01`                              | Use it for a period report.                                            |
| `reviewsTo`              | Reviews updated to                | string  | no       | empty                           | text                                                                    | Keep reviews updated through this date. A date without a time includes the full UTC day.                                                                                                                                                                                                      | `2026-06-30`                              | Use it with `reviewsFrom`.                                             |
| `onlyWithText`           | Reviews with text only            | boolean | no       | `false`                         | `true`, `false`                                                         | Skip ratings that have no review text.                                                                                                                                                                                                                                                        | `true`                                    | Use it when you analyse text.                                          |
| `replyFilter`            | Owner reply filter                | string  | no       | `"all"`                         | `all`, `replied`, `unanswered`                                          | Keep all reviews, reviews with an owner reply, or reviews without a reply.                                                                                                                                                                                                                    | `unanswered`                              | Use `unanswered` to find reviews that still need a reply.              |
| `language`               | Business data language            | string  | no       | `"ru"`                          | `ru`, `en`, `tr`, `uk`, `kk`                                            | Language for addresses, categories, hours and feature names. Review text keeps its original language.                                                                                                                                                                                         | `en`                                      | Keep `ru` unless you need another business data language.              |
| `maxPhotos`              | Photos per business               | integer | no       | `0`                             | 0 to 1000                                                               | Maximum public photo links to return. Images are not downloaded.                                                                                                                                                                                                                              | `10`                                      | Keep 0 unless you need photo links.                                    |
| `maxPosts`               | Posts per business                | integer | no       | `0`                             | 0 to 1000                                                               | Maximum public business news posts to return.                                                                                                                                                                                                                                                 | `5`                                       | Keep 0 unless you need posts. More posts add lookups.                  |
| `includeMenu`            | Full menu or price list           | boolean | no       | `false`                         | `true`, `false`                                                         | Read the public menu tab and include item names, prices, currencies and photo links.                                                                                                                                                                                                          | `true`                                    | Use it for restaurants and cafes.                                      |
| `enrichBusinessData`     | Extra business details            | boolean | no       | `false`                         | `true`, `false`                                                         | Read the full menu and try role-based email addresses on the business website. Website checks are best effort; see emailStatus.                                                                                                                                                               | `true`                                    | Use it for leads. It adds a best-effort website check.                 |
| `excludeBusinessIds`     | Business IDs to skip              | array   | no       | empty                           | list of strings                                                         | Skip organizations you already collected. Skipped rows have no result charge.                                                                                                                                                                                                                 | `["85901801207"]`                         | Use it when you extend an earlier list.                                |
| `onlyNew`                | Only new results                  | boolean | no       | `false`                         | `true`, `false`                                                         | Return only new places or reviews using saved history. Monitor mode already returns changes and takes precedence over this option.                                                                                                                                                            | `true`                                    | Use it with a schedule to get new rows only.                           |
| `stateName`              | History store name                | string  | no       | `"yandex-maps-scraper-history"` | text in the format shown                                                | Use the same name to continue a history. Start the name with yandex-maps-scraper-.                                                                                                                                                                                                            | `yandex-maps-scraper-almaty`              | Use one name for each list you track.                                  |
| `radiusKm`               | Search radius                     | number  | no       | empty                           | 0.1 to 500                                                              | Radius in kilometres around Search center. The source searches a matching map rectangle.                                                                                                                                                                                                      | `2`                                       | Use it with `coordinates` for a walking or delivery zone.              |
| `coordinates`            | Search center                     | string  | no       | empty                           | text                                                                    | Longitude,latitude. Example: 76.94,43.25. Overrides the city map center.                                                                                                                                                                                                                      | `76.94,43.25`                             | Use it for an exact point. Format: longitude,latitude.                 |
| `viewportSpan`           | Search area size                  | string  | no       | empty                           | text                                                                    | Width,height in longitude and latitude degrees. Example: 0.1,0.1.                                                                                                                                                                                                                             | `0.1,0.1`                                 | Use a small area to split a big city.                                  |
| `filterRating`           | Minimum business rating           | string  | no       | `""`                            | empty, `gt4.9`, `gt4.7`, `gt4.5`, `gt4.0`, `gt3.5`, `gt3.0`             | Return businesses with at least this rating.                                                                                                                                                                                                                                                  | `gt4.5`                                   | Use it to ask the source for rated places only.                        |
| `minRating`              | Minimum place stars               | number  | no       | empty                           | 0 to 5                                                                  | Keep businesses with this rating or higher.                                                                                                                                                                                                                                                   | `4`                                       | Use it to drop low ratings from saved rows.                            |
| `filterOpenNow`          | Open now                          | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses currently open.                                                                                                                                                                                                                                                               | `true`                                    | Results depend on the time of the run.                                 |
| `filterOpen24h`          | Open 24 hours                     | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses open around the clock.                                                                                                                                                                                                                                                        | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterDelivery`         | Food delivery                     | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses offering food delivery.                                                                                                                                                                                                                                                       | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterTakeaway`         | Takeaway                          | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses offering takeaway.                                                                                                                                                                                                                                                            | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterWifi`             | Wi-Fi                             | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses with Wi-Fi.                                                                                                                                                                                                                                                                   | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterCardPayment`      | Card payments                     | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses that accept card payments.                                                                                                                                                                                                                                                    | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterParking`          | Parking                           | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses with parking.                                                                                                                                                                                                                                                                 | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterPetFriendly`      | Pets allowed                      | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses that allow pets.                                                                                                                                                                                                                                                              | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterWheelchairAccess` | Wheelchair access                 | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses marked as wheelchair accessible.                                                                                                                                                                                                                                              | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterGoodPlace`        | Good Place award                  | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses with the Yandex Good Place award.                                                                                                                                                                                                                                             | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterMichelin`         | Michelin places                   | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses with a Michelin mark.                                                                                                                                                                                                                                                         | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterBusinessLunch`    | Business lunch                    | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses offering a business lunch.                                                                                                                                                                                                                                                    | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterSummerTerrace`    | Summer terrace                    | boolean | no       | `false`                         | `true`, `false`                                                         | Keep businesses with a summer terrace.                                                                                                                                                                                                                                                        | `true`                                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterCuisine`          | Cuisines                          | array   | no       | empty                           | list of strings                                                         | Cuisine IDs, such as italian_cuisine or japanese_cuisine.                                                                                                                                                                                                                                     | `["italian_cuisine"]`                     | Use it to narrow the list. It can return fewer rows.                   |
| `filterPriceCategory`    | Price levels                      | array   | no       | empty                           | list of strings                                                         | Source price level IDs, such as price_reasonable.                                                                                                                                                                                                                                             | `["price_reasonable"]`                    | Use it to narrow the list. It can return fewer rows.                   |
| `filterCategories`       | Category IDs                      | array   | no       | empty                           | list of strings                                                         | Source business category IDs. A business may match any selected category.                                                                                                                                                                                                                     | `["184106390"]`                           | Use it to narrow the list. It can return fewer rows.                   |
| `filterChainId`          | Chain IDs                         | array   | no       | empty                           | list of strings                                                         | Keep branches of these numeric chain IDs.                                                                                                                                                                                                                                                     | `["67768784863"]`                         | Use it with `searchScope: country` for one chain.                      |
| `customFilters`          | Other source filters              | array   | no       | empty                           | list of strings                                                         | Advanced source key:value filters. Each entry is sent as a separate filter.                                                                                                                                                                                                                   | `["wi_fi:1"]`                             | Advanced. Copy a key and value from a Yandex Maps search URL.          |
| `filterPriceMin`         | Minimum average bill              | integer | no       | empty                           | 0 or more                                                               | Keep businesses with a stated average bill at or above this amount in local currency.                                                                                                                                                                                                         | `500`                                     | Use it with the local currency of the area.                            |
| `filterPriceMax`         | Maximum average bill              | integer | no       | empty                           | 0 or more                                                               | Keep businesses with a stated average bill at or below this amount in local currency.                                                                                                                                                                                                         | `3000`                                    | Use it with the local currency of the area.                            |
| `sortBy`                 | Place order                       | string  | no       | `""`                            | empty, `distance`                                                       | Use source relevance order or distance from the given origin.                                                                                                                                                                                                                                 | `distance`                                | Keep empty for source order.                                           |
| `sortOrigin`             | Distance origin                   | string  | no       | empty                           | text                                                                    | Longitude,latitude used for distance sorting.                                                                                                                                                                                                                                                 | `76.94,43.25`                             | Use it with `sortBy: distance`.                                        |
| `searchScope`            | Search coverage                   | string  | no       | `"city"`                        | `city`, `country`                                                       | Search one city, or chain branches across Russian cities and overlapping map areas, including smaller towns. Country mode needs a chain ID and a supported Russian starting city. Coverage is not exhaustive; check the run summary.                                                          | `city`                                    | Use `country` only for chain branches in Russia.                       |
| `deliveryConnector`      | Send results to (optional)        | string  | no       | empty                           | text                                                                    | Your Slack, Notion or other MCP connector. After the run the Actor posts a short summary there. Connect services once in Apify Console → MCP connectors.                                                                                                                                      | `your connector`                          | Use it if your team reads results in Slack or Notion.                  |
| `deliveryTarget`         | Notion page or channel (optional) | string  | no       | empty                           | text                                                                    | Where to post the summary: a Notion page link (each run is added on top of that page) or a Slack channel ID. Leave empty to let the connector decide.                                                                                                                                         | `C0123456789`                             | Leave empty to let the connector decide.                               |
| `reportNewOwnerReplies`  | New owner replies                 | boolean | no       | `false`                         | `true`, `false`                                                         | With Only new results in reviews mode, also return old reviews that have a new or updated owner reply.                                                                                                                                                                                        | `true`                                    | Use it to follow owner replies on known reviews.                       |
| `searchTransport`        | Search route                      | string  | no       | `"standard"`                    | `standard`, `webPages`                                                  | Standard search transfers less data. Choose web pages if the source rejects standard search. Result fields and filters are the same.                                                                                                                                                          | `standard`                                | Keep `standard`. Try `webPages` if the source rejects it.              |

#### Interacting settings

| When                       | Input A                | Input B                     | Effective behavior                                                        | Example                                            | Cost/result effect                                         |
| -------------------------- | ---------------------- | --------------------------- | ------------------------------------------------------------------------- | -------------------------------------------------- | ---------------------------------------------------------- |
| Both limits are set        | `maxResults`           | `maxItems`                  | `maxResults` wins                                                         | `maxResults: 5`, `maxItems: 10` gives up to 5 rows | Fewer rows, lower cost                                     |
| Monitor mode with new-only | `mode: monitor`        | `onlyNew`                   | Monitor mode wins and `onlyNew` is ignored                                | `mode: monitor`, `onlyNew: true`                   | Same as monitor mode                                       |
| Review limit in places     | `mode: places`         | `maxReviews`                | Up to 50 reviews stay inside each place row                               | `maxReviews: 500` still saves 50                   | Review rows are not charged here; more reviews add lookups |
| Review limit in reviews    | `mode: reviews`        | `maxReviews` and `maxItems` | Up to 2,400 per business, and `maxItems` counts reviews for the whole run | `maxReviews: 2400`, `maxItems: 100` stops at 100   | Each review row is charged                                 |
| Search center              | `coordinates`          | `location`                  | `coordinates` replaces the city center                                    | `76.94,43.25` with `Алматы`                        | Different result order                                     |
| City in the term           | `query`                | `location`                  | A city inside the term may override the area                              | `кафе Москва` with `Алматы`                        | Rows may come from the other city                          |
| Country scope              | `searchScope: country` | `filterChainId`, `location` | Needs a chain ID and a Russian location, or the input fails               | `searchScope: country` with no chain fails         | Start fee only when it fails                               |
| Two rating filters         | `filterRating`         | `minRating`                 | Both apply                                                                | `gt4.5` and `4`                                    | Fewer rows; lookups are still charged                      |
| New-only with replies      | `onlyNew`              | `reportNewOwnerReplies`     | Reviews mode also returns known reviews with a new owner reply            | Both `true`                                        | Extra review rows are charged                              |
| Email lookup               | `enrichBusinessData`   | `includeMenu`               | `enrichBusinessData` also loads the full menu                             | `enrichBusinessData: true`                         | More lookups and more time                                 |

#### Input examples

##### Find cafes in one city

```json
{
  "query": ["кафе"],
  "location": "Алматы",
  "maxItems": 10
}
```

Expected behavior: the Actor searches one city and stops at 10 businesses.
Expected output: place rows with `name`, `rating`, `address`, `phone` and `website`.
Limit or cost note: a test run took about 20 seconds and costs about $0.06 on the Free plan.

##### Build a phone list in two cities

```json
{
  "query": ["кафе", "ресторан"],
  "locations": ["Алматы", "Москва"],
  "includeReviews": false,
  "maxItems": 600
}
```

Expected behavior: the Actor works through the terms and cities in order, removes duplicates and stops at `maxItems`. In our test run, all 600 rows came from the first term and city. To reach the other terms and cities, raise `maxItems`. Set a longer timeout in **Run options** for big runs.
Expected output: place rows without nested reviews.
Limit or cost note: a test run with a 900-second timeout saved 600 places in 96 seconds and costs $1.72 on the Free plan.

##### Collect all reachable reviews of one business

```json
{
  "mode": "reviews",
  "businessIds": ["85901801207"],
  "reviewSort": "all",
  "maxReviews": 2400,
  "maxItems": 2400
}
```

Expected behavior: the Actor combines four review orders and removes duplicate reviews.
Expected output: review rows with `reviewId`, `rating`, `text`, `date` and `businessComment`.
Limit or cost note: a test run saved 635 reviews in about 30 seconds and costs $1.78 on the Free plan.

##### Check for changes each week

```json
{
  "mode": "monitor",
  "query": ["кафе"],
  "location": "Алматы",
  "maxItems": 100,
  "includeReviews": false,
  "stateName": "yandex-maps-scraper-almaty-cafes"
}
```

Expected behavior: the first run saves every place as `new` and keeps a history. Later runs with the same `stateName` save only new places and places with changed ratings or review counts.
Expected output: place rows with `changeType`.
Limit or cost note: a run with no changes saves no rows and still pays for its lookups.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Output

The Dataset has three views: **Places**, **Reviews** and **Full record**. Empty columns are normal. For example, a place row has no `reviewId`, and a review row has no `phone`.

#### Output fields

| Field                  | Meaning                                                                                                     | Type    | Can be empty? | Example / enum                                 | Source / notes                                                                 |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- | ------- | ------------- | ---------------------------------------------- | ------------------------------------------------------------------------------ |
| `recordType`           | Record type from the public Yandex Maps record. Null or empty when the source does not expose it.           | string  | no            | `place`, `review`                              | Both row types.                                                                |
| `status`               | Record outcome. See RUN_SUMMARY for run-level limits and errors.                                            | string  | no            | `complete`, `not_found`, `partial`, `error`    | Both row types.                                                                |
| `orgId`                | Organization ID from the public Yandex Maps record. Null or empty when the source does not expose it.       | string  | no            | `85901801207`                                  | Both row types.                                                                |
| `businessId`           | Organization ID from the public Yandex Maps record. Null or empty when the source does not expose it.       | string  | no            | `85901801207`                                  | Both row types. Same value as `orgId`.                                         |
| `name`                 | Business name from the public Yandex Maps record. Null or empty when the source does not expose it.         | string  | yes           | `Basilic`                                      | Place rows.                                                                    |
| `title`                | Business name from the public Yandex Maps record. Null or empty when the source does not expose it.         | string  | yes           | `Basilic`                                      | Place rows. Same value as `name`.                                              |
| `description`          | Description from the public Yandex Maps record. Null or empty when the source does not expose it.           | string  | yes           | `Алматы, ул. Желтоксан, 115`                   | Place rows.                                                                    |
| `shortTitle`           | Short title from the public Yandex Maps record. Null or empty when the source does not expose it.           | string  | yes           | `Basilic`                                      | Place rows.                                                                    |
| `category`             | Category from the public Yandex Maps record. Null or empty when the source does not expose it.              | string  | yes           | `Кафе`                                         | Place rows.                                                                    |
| `categories`           | Categories from the public Yandex Maps record. Null or empty when the source does not expose it.            | array   | yes           | list                                           | Place rows.                                                                    |
| `categoryIds`          | Category ids from the public Yandex Maps record. Null or empty when the source does not expose it.          | array   | yes           | list                                           | Place rows.                                                                    |
| `rating`               | Business or review rating from 1 to 5.                                                                      | number  | yes           | `4.7`                                          | Both row types.                                                                |
| `ratingCount`          | Number of all star ratings, including ratings without written text.                                         | number  | yes           | `1937`                                         | Place rows.                                                                    |
| `reviewsCount`         | Number of written reviews reported by the source.                                                           | number  | yes           | `635`                                          | Place rows.                                                                    |
| `reviewCount`          | Written reviews count from the public Yandex Maps record. Null or empty when the source does not expose it. | number  | yes           | `635`                                          | Place rows. Same value as `reviewsCount`.                                      |
| `address`              | Address from the public Yandex Maps record. Null or empty when the source does not expose it.               | string  | yes           | `Алматы, улица Желтоксан, 115`                 | Place rows.                                                                    |
| `additionalAddress`    | Additional address from the public Yandex Maps record. Null or empty when the source does not expose it.    | string  | yes           | `ТЦ Kaisar Plaza, этаж 1`                      | Place rows.                                                                    |
| `country`              | Country from the public Yandex Maps record. Null or empty when the source does not expose it.               | string  | yes           | `Казахстан`                                    | Place rows.                                                                    |
| `region`               | Region from the public Yandex Maps record. Null or empty when the source does not expose it.                | string  | yes           | `null`                                         | Place rows.                                                                    |
| `city`                 | City from the public Yandex Maps record. Null or empty when the source does not expose it.                  | string  | yes           | `Алматы`                                       | Place rows.                                                                    |
| `street`               | Street from the public Yandex Maps record. Null or empty when the source does not expose it.                | string  | yes           | `улица Желтоксан`                              | Place rows.                                                                    |
| `house`                | House from the public Yandex Maps record. Null or empty when the source does not expose it.                 | string  | yes           | `115`                                          | Place rows.                                                                    |
| `postalCode`           | Postal code from the public Yandex Maps record. Null or empty when the source does not expose it.           | string  | yes           | `null`                                         | Place rows.                                                                    |
| `phone`                | Phone from the public Yandex Maps record. Null or empty when the source does not expose it.                 | string  | yes           | `+77783449000`                                 | Place rows.                                                                    |
| `phones`               | Phones from the public Yandex Maps record. Null or empty when the source does not expose it.                | array   | yes           | list                                           | Place rows.                                                                    |
| `website`              | Website from the public Yandex Maps record. Null or empty when the source does not expose it.               | string  | yes           | `https://basilic.kz/`                          | Place rows.                                                                    |
| `websites`             | Websites from the public Yandex Maps record. Null or empty when the source does not expose it.              | array   | yes           | list                                           | Place rows.                                                                    |
| `socialLinks`          | Social links from the public Yandex Maps record. Null or empty when the source does not expose it.          | array   | yes           | list                                           | Place rows.                                                                    |
| `lat`                  | Latitude from the public Yandex Maps record. Null or empty when the source does not expose it.              | number  | yes           | `43.252995`                                    | Place rows.                                                                    |
| `lng`                  | Longitude from the public Yandex Maps record. Null or empty when the source does not expose it.             | number  | yes           | `76.938589`                                    | Place rows.                                                                    |
| `latitude`             | Latitude from the public Yandex Maps record. Null or empty when the source does not expose it.              | number  | yes           | `43.252995`                                    | Place rows. Same value as `lat`.                                               |
| `longitude`            | Longitude from the public Yandex Maps record. Null or empty when the source does not expose it.             | number  | yes           | `76.938589`                                    | Place rows. Same value as `lng`.                                               |
| `url`                  | Url from the public Yandex Maps record. Null or empty when the source does not expose it.                   | string  | yes           | `https://yandex.ru/maps/org/basilic/859018...` | Both row types.                                                                |
| `businessStatus`       | Business status from the public Yandex Maps record. Null or empty when the source does not expose it.       | string  | yes           | `open`                                         | Place rows.                                                                    |
| `isOpenNow`            | Is open now from the public Yandex Maps record. Null or empty when the source does not expose it.           | boolean | yes           | `true`                                         | Place rows.                                                                    |
| `workingHoursText`     | Working hours text from the public Yandex Maps record. Null or empty when the source does not expose it.    | string  | yes           | `ежедневно, 8:00 AM–11:00 PM`                  | Place rows.                                                                    |
| `schedule`             | Schedule from the public Yandex Maps record. Null or empty when the source does not expose it.              | array   | yes           | list                                           | Place rows.                                                                    |
| `isVerifiedOwner`      | Is verified owner from the public Yandex Maps record. Null or empty when the source does not expose it.     | boolean | yes           | `true`                                         | Place rows.                                                                    |
| `features`             | Features from the public Yandex Maps record. Null or empty when the source does not expose it.              | array   | yes           | list                                           | Place rows.                                                                    |
| `featureGroups`        | Feature groups from the public Yandex Maps record. Null or empty when the source does not expose it.        | array   | yes           | list                                           | Place rows.                                                                    |
| `chainId`              | Chain id from the public Yandex Maps record. Null or empty when the source does not expose it.              | string  | yes           | `67768784863`                                  | Place rows.                                                                    |
| `chainName`            | Chain name from the public Yandex Maps record. Null or empty when the source does not expose it.            | string  | yes           | `Basilic`                                      | Place rows.                                                                    |
| `chainSlug`            | Chain slug from the public Yandex Maps record. Null or empty when the source does not expose it.            | string  | yes           | `basilic`                                      | Place rows.                                                                    |
| `photoCount`           | Photo count from the public Yandex Maps record. Null or empty when the source does not expose it.           | number  | yes           | `89`                                           | Place rows.                                                                    |
| `photos`               | Photos from the public Yandex Maps record. Null or empty when the source does not expose it.                | array   | yes           | list                                           | Both row types. Needs `maxPhotos` in place rows.                               |
| `videoCount`           | Video count from the public Yandex Maps record. Null or empty when the source does not expose it.           | number  | yes           | `null`                                         | Place rows.                                                                    |
| `logoUrl`              | Logo url from the public Yandex Maps record. Null or empty when the source does not expose it.              | string  | yes           | `https://avatars.mds.yandex.net/get-altay/...` | Place rows.                                                                    |
| `nearbyMetro`          | Nearby metro from the public Yandex Maps record. Null or empty when the source does not expose it.          | array   | yes           | list                                           | Place rows.                                                                    |
| `nearbyStops`          | Nearby stops from the public Yandex Maps record. Null or empty when the source does not expose it.          | array   | yes           | list                                           | Place rows.                                                                    |
| `bounds`               | Bounds from the public Yandex Maps record. Null or empty when the source does not expose it.                | array   | yes           | list                                           | Place rows.                                                                    |
| `entrances`            | Entrances from the public Yandex Maps record. Null or empty when the source does not expose it.             | array   | yes           | list                                           | Place rows.                                                                    |
| `timezoneOffset`       | Timezone offset from the public Yandex Maps record. Null or empty when the source does not expose it.       | number  | yes           | `18000`                                        | Place rows.                                                                    |
| `geoId`                | Geo id from the public Yandex Maps record. Null or empty when the source does not expose it.                | number  | yes           | `162`                                          | Place rows.                                                                    |
| `reviewAspects`        | Review aspects from the public Yandex Maps record. Null or empty when the source does not expose it.        | array   | yes           | list                                           | Place rows.                                                                    |
| `popularityHistogram`  | Popularity histogram from the public Yandex Maps record. Null or empty when the source does not expose it.  | object  | yes           | object                                         | Place rows.                                                                    |
| `menu`                 | Public menu items with category, name, price, currency and photo link. Empty when unavailable.              | array   | yes           | list                                           | Place rows. Needs `includeMenu` or `enrichBusinessData`.                       |
| `bookingPartner`       | Booking partner from the public Yandex Maps record. Null or empty when the source does not expose it.       | object  | yes           | object                                         | Place rows.                                                                    |
| `bookingLinks`         | Booking links from the public Yandex Maps record. Null or empty when the source does not expose it.         | array   | yes           | list                                           | Place rows.                                                                    |
| `sources`              | Sources from the public Yandex Maps record. Null or empty when the source does not expose it.               | array   | yes           | list                                           | Place rows.                                                                    |
| `reviews`              | Collected reviews from the public Yandex Maps record. Null or empty when the source does not expose it.     | array   | yes           | list                                           | Place rows. Needs `includeReviews`. Up to 50 per place.                        |
| `posts`                | Posts from the public Yandex Maps record. Null or empty when the source does not expose it.                 | array   | yes           | list                                           | Place rows. Needs `maxPosts`.                                                  |
| `email`                | Corporate email addresses published in the business record. Null when not exposed.                          | string  | yes           | role-based address from the site               | Place rows. Filled only with `enrichBusinessData`, or when the record has one. |
| `relatedPlaces`        | Related places from the public Yandex Maps record. Null or empty when the source does not expose it.        | array   | yes           | list                                           | Place rows.                                                                    |
| `visitsHistogram`      | Visits histogram from the public Yandex Maps record. Null or empty when the source does not expose it.      | object  | yes           | object                                         | Place rows.                                                                    |
| `discoveryCollections` | Discovery collections from the public Yandex Maps record. Null or empty when the source does not expose it. | array   | yes           | list                                           | Place rows.                                                                    |
| `panorama`             | Panorama from the public Yandex Maps record. Null or empty when the source does not expose it.              | object  | yes           | object                                         | Place rows.                                                                    |
| `source`               | Name of the source service.                                                                                 | string  | no            | `Yandex Maps`                                  | Both row types.                                                                |
| `searchQuery`          | Search term that first found this business. Null for direct IDs and URLs.                                   | string  | yes           | `кафе`                                         | Place rows. Null for IDs and URLs.                                             |
| `fetchedAt`            | Time this run read the record, in UTC ISO 8601 format.                                                      | string  | no            | `2026-11-04T13:22:42.921Z`                     | Both row types.                                                                |
| `reviewsFetched`       | Number of matching review objects included with this place.                                                 | number  | yes           | `50`                                           | Place rows.                                                                    |
| `reviewsTruncated`     | True when the source reports more reviews than this run scanned.                                            | boolean | yes           | `true`                                         | Place rows.                                                                    |
| `reviewId`             | Stable source review ID. Use with orgId to deduplicate review rows.                                         | string  | yes           | `AxfPR-_cHHEVFVzLvKkwQajqeNLGl2iwA`            | Review rows.                                                                   |
| `text`                 | Text from the public Yandex Maps record. Null or empty when the source does not expose it.                  | string  | yes           | review text                                    | Review rows.                                                                   |
| `date`                 | Time the review was updated, in UTC ISO 8601 format.                                                        | string  | yes           | `2026-08-11T12:38:55.190Z`                     | Review rows.                                                                   |
| `authorName`           | Author name from the public Yandex Maps record. Null or empty when the source does not expose it.           | string  | yes           | public reviewer name                           | Review rows. Personal data. See Limits.                                        |
| `authorId`             | Author id from the public Yandex Maps record. Null or empty when the source does not expose it.             | string  | yes           | source ID                                      | Review rows. Personal data. See Limits.                                        |
| `authorProfileUrl`     | Author profile url from the public Yandex Maps record. Null or empty when the source does not expose it.    | string  | yes           | public profile link                            | Review rows. Personal data. See Limits.                                        |
| `authorLevel`          | Author level from the public Yandex Maps record. Null or empty when the source does not expose it.          | string  | yes           | `Дегустатор 3 уровня`                          | Review rows.                                                                   |
| `authorAvatarUrl`      | Author avatar url from the public Yandex Maps record. Null or empty when the source does not expose it.     | string  | yes           | image link                                     | Review rows. Personal data. See Limits.                                        |
| `likeCount`            | Like count from the public Yandex Maps record. Null or empty when the source does not expose it.            | number  | yes           | `0`                                            | Review rows.                                                                   |
| `dislikeCount`         | Dislike count from the public Yandex Maps record. Null or empty when the source does not expose it.         | number  | yes           | `0`                                            | Review rows.                                                                   |
| `businessComment`      | Business comment from the public Yandex Maps record. Null or empty when the source does not expose it.      | string  | yes           | owner reply text                               | Review rows.                                                                   |
| `businessCommentDate`  | Business comment date from the public Yandex Maps record. Null or empty when the source does not expose it. | string  | yes           | `2026-08-17T08:47:14.549Z`                     | Review rows.                                                                   |
| `videos`               | Videos from the public Yandex Maps record. Null or empty when the source does not expose it.                | array   | yes           | list                                           | Review rows.                                                                   |
| `textLanguage`         | Text language from the public Yandex Maps record. Null or empty when the source does not expose it.         | string  | yes           | `ru`                                           | Review rows.                                                                   |
| `textTranslations`     | Text translations from the public Yandex Maps record. Null or empty when the source does not expose it.     | object  | yes           | object                                         | Review rows.                                                                   |
| `isPinned`             | Is pinned from the public Yandex Maps record. Null or empty when the source does not expose it.             | boolean | yes           | `false`                                        | Review rows.                                                                   |
| `photosFetched`        | Photos fetched from the public Yandex Maps record. Null or empty when the source does not expose it.        | number  | yes           | `null`                                         | When the source or an option supplies it.                                      |
| `photosTruncated`      | True when more photos were available than the requested photo limit.                                        | boolean | yes           | `null`                                         | When the source or an option supplies it.                                      |
| `changeType`           | Change type from the public Yandex Maps record. Null or empty when the source does not expose it.           | string  | yes           | `new`, `changed`, `owner_reply_changed`        | When the source or an option supplies it. Monitor mode and reply tracking.     |
| `authorAchievements`   | Author achievements from the public Yandex Maps record. Null or empty when the source does not expose it.   | array   | yes           | list                                           | Review rows.                                                                   |
| `authorProfessions`    | Author professions from the public Yandex Maps record. Null or empty when the source does not expose it.    | array   | yes           | list                                           | Review rows.                                                                   |
| `trustedLikeCount`     | Trusted like count from the public Yandex Maps record. Null or empty when the source does not expose it.    | number  | yes           | `null`                                         | Review rows.                                                                   |
| `keyPhrases`           | Key phrases from the public Yandex Maps record. Null or empty when the source does not expose it.           | array   | yes           | list                                           | Review rows.                                                                   |
| `emailSourceUrl`       | Business website page checked for role-based contact addresses. Null if no website check was made.          | string  | yes           | contact page URL of the business               | When the source or an option supplies it. Only with `enrichBusinessData`.      |
| `emailStatus`          | Outcome of the optional business website email lookup. Complete, not_found, or a safe technical error code. | string  | yes           | `complete`, `not_found`, safe error code       | When the source or an option supplies it. Only with `enrichBusinessData`.      |
| `reviewsStopReason`    | Safe error code if review collection stopped before completion. Saved reviews remain available.             | string  | yes           | `SOURCE_ERROR`                                 | When the source or an option supplies it.                                      |
| `reviewHighlight`      | A review quotation selected by Yandex, when the source exposes one. This is not an AI-generated summary.    | string  | yes           | `null`                                         | Place rows. A source quote, not an AI summary.                                 |
| `mainPhotoUrl`         | Public main business photo URL.                                                                             | string  | yes           | `https://avatars.mds.yandex.net/get-altay/...` | Place rows.                                                                    |
| `regionId`             | Yandex region identifier.                                                                                   | number  | yes           | `162`                                          | Place rows.                                                                    |
| `eventsCount`          | Number of public business events or posts reported by Yandex.                                               | number  | yes           | `null`                                         | Place rows.                                                                    |
| `featureNames`         | Display names for source feature IDs.                                                                       | object  | yes           | object                                         | Place rows.                                                                    |
| `orgName`              | Name of the business for this review.                                                                       | string  | yes           | `Basilic`                                      | Review rows.                                                                   |
| `orgUrl`               | Public Yandex Maps business page for this review.                                                           | string  | yes           | `https://yandex.ru/maps/org/85901801207/`      | Review rows.                                                                   |
| `reportedReviewsCount` | Source total for this business. The accessible public review window can be smaller.                         | number  | yes           | `635`                                          | Review rows.                                                                   |
| `distanceKm`           | Straight-line distance from the requested search or sort point, rounded to three decimals.                  | number  | yes           | `null`                                         | Place rows. Needs `coordinates` or `sortOrigin`.                               |
| `references`           | Public source system identifiers for the business.                                                          | array   | yes           | list                                           | Place rows.                                                                    |
| `promo`                | Public business promotion details, when supplied by the source.                                             | object  | yes           | object                                         | Place rows.                                                                    |

#### Output entities and surfaces

| Situation                  | Dataset/API/KVS/live view                                                                                                                                     | Result shape                                              | User action                                            |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------ |
| Normal item                | Dataset views **Places** and **Reviews**                                                                                                                      | One row per business or review, with `status: "complete"` | Open the view, or export it                            |
| Domain-empty result        | Empty Dataset, `RUN_SUMMARY` with `status: "not_found"`                                                                                                       | No rows. The run ends as `SUCCEEDED`                      | Check the term, the city and the filters               |
| Partial result             | Dataset rows and `RUN_SUMMARY` with `status: "partial"` and a `stopReason` such as `SEARCH_WINDOW_LIMIT`, `REVIEW_WINDOW_LIMIT`, `CHARGE_LIMIT` or `DEADLINE` | Saved rows stay. Some rows may have `reviewsStopReason`   | Add areas, raise the timeout or raise the charge limit |
| Technical failure or retry | Run status `FAILED`, `RUN_SUMMARY` with `stopReason` such as `SOURCE_ERROR`, `RATE_LIMIT` or `INVALID_INPUT`, and `errors`                                    | Rows saved before the failure stay                        | Fix the input, or start the run again later            |

The `OUTPUT` record has links to the Dataset and to `RUN_SUMMARY`.

#### Output example

This trimmed place row comes from the first input example:

```json
{
  "recordType": "place",
  "status": "complete",
  "orgId": "85901801207",
  "name": "Basilic",
  "category": "Кафе",
  "rating": 4.7,
  "ratingCount": 1937,
  "reviewsCount": 635,
  "address": "Алматы, улица Желтоксан, 115",
  "city": "Алматы",
  "phone": "+77783449000",
  "website": "https://basilic.kz/",
  "lat": 43.252995,
  "lng": 76.938589,
  "url": "https://yandex.ru/maps/org/basilic/85901801207/",
  "workingHoursText": "ежедневно, 8:00 AM–11:00 PM",
  "businessStatus": "open",
  "email": null,
  "reviewsFetched": 50,
  "reviewsTruncated": true,
  "source": "Yandex Maps",
  "searchQuery": "кафе",
  "fetchedAt": "2026-11-04T13:22:42.921Z"
}
```

The real row has more fields. `null` means that the public record did not show a value, or that the option for it was off. It does not mean that the business has no such value. An empty Dataset means that the search found nothing. It is not a technical error.

#### Send results to Slack or Notion

Pick your connector in the optional `deliveryConnector` field. After the run saves its data, the Actor posts a short summary (up to 25 rows and a link to the full dataset) there. Put a Notion page link or a Slack channel ID in `deliveryTarget`: in Notion every run is added on top of that one page, so your workspace does not fill up with new pages. A delivery error never fails the run and costs nothing extra. Connect a service once in Apify Console → MCP connectors.

#### Use case → fields

| Buyer job                         | Input path                                 | Output entity | Key fields                                               | Next integration        |
| --------------------------------- | ------------------------------------------ | ------------- | -------------------------------------------------------- | ----------------------- |
| Call or email local businesses    | `query`, `locations`, `enrichBusinessData` | Place         | `phone`, `website`, `email`, `emailStatus`               | CRM import              |
| Rate your location against others | `businessIds`                              | Place         | `rating`, `ratingCount`, `reviewsCount`, `reviewAspects` | Spreadsheet             |
| Read customer problems            | `mode: reviews`, `reviewMaxRating`         | Review        | `rating`, `text`, `date`, `businessComment`              | Text analysis           |
| Find new competitors              | `mode: monitor`, `stateName`               | Place         | `changeType`, `name`, `address`                          | Slack or Notion summary |

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Pricing

#### Pricing unit

You pay per event. Apify platform usage is included in these prices: the developer pays for it.

| Event               | When it is charged                                                                 |    Free |   Bronze |   Silver | Gold and up |
| ------------------- | ---------------------------------------------------------------------------------- | ------: | -------: | -------: | ----------: |
| `place`             | One business row saved                                                             | $0.0027 | $0.00243 | $0.00216 |    $0.00189 |
| `review`            | One review row saved in reviews mode                                               | $0.0026 | $0.00234 | $0.00208 |    $0.00182 |
| `source-page`       | One completed source lookup, including empty searches and unavailable business IDs | $0.0026 | $0.00234 | $0.00208 |    $0.00182 |
| `apify-actor-start` | Run start. It scales with run memory, per GB and at least one                      | $0.0001 |  $0.0001 |  $0.0001 |     $0.0001 |

Reviews inside a place row have no `review` charge, but loading them adds lookups.

- **Valid search with no results:** you pay for the lookup and the start, $0.0027 in a test run.
- **Filter with no matches:** you pay for each lookup and the start, even with no saved rows.
- **Monitor run with no changes:** you pay for each lookup and the start, $0.0027 in a test run.
- **Invalid input:** you pay only the start fee, $0.0001.
- **Partial or failed run:** you pay for rows already saved and lookups already completed. A lookup that ends with a source error is not charged.

Set **Maximum cost per run** to at least $0.03. When the limit is reached, the Actor stops with `stopReason: "CHARGE_LIMIT"` and keeps the saved rows.

#### Cost examples

Measured runs at Free plan prices:

| Scenario               | Input scope                           |        Expected item/event count | Base charge | Optional charge | Stop/cap behavior                           |
| ---------------------- | ------------------------------------- | -------------------------------: | ----------: | --------------: | ------------------------------------------- |
| First test             | `кафе`, `Алматы`, 10 rows, reviews on |   10 places, 11 lookups, 1 start |     $0.0557 |            none | Stops at 10 rows                            |
| Phone list             | 2 terms, 2 cities, reviews off        |  600 places, 40 lookups, 1 start |       $1.72 |            none | Stops at `maxItems` or at the search window |
| One business, reviews  | Reviews mode, `reviewSort: all`       | 635 reviews, 49 lookups, 1 start |       $1.78 |            none | Stops when the review window ends           |
| Search with no results | Valid term, nothing found             |        0 rows, 1 lookup, 1 start |     $0.0027 |            none | Ends as `not_found`                         |
| Invalid input          | No source given                       |                          1 start |     $0.0001 |            none | Fails before any lookup                     |

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Limits

- **Run size:** up to 10,000 rows in a run. Big runs need a longer timeout than the default 300 seconds and a higher charge limit.
- **Reviews:** up to 2,400 per business in reviews mode, and up to 50 inside a place row. Yandex Maps can show fewer than its reported total, so check `reportedReviewsCount` and `reviewsTruncated`. This is not a full review archive.
- **Search windows:** the source returns a limited window for each search. A broad term in a big city can end with `SEARCH_WINDOW_LIMIT`. Add terms or areas to find more businesses.
- **Country scope:** works for chain branches in Russia only, and the result can be incomplete.
- **Photos and posts:** up to 1,000 links per business. The Actor does not download files.
- **Emails:** the optional website check reads up to 3 pages and keeps role-based company addresses such as sales or info mailboxes. Many businesses have none, so see `emailStatus`.
- **History:** a history store keeps the latest 100,000 entries. A name that you cannot write to moves to a name of this Actor, as the run log says.
- **Freshness:** data shows the public record at `fetchedAt`. Yandex Maps can change results, order and fields at any time.
- **Personal data:** review rows can have public reviewer names, profile links and photos. You are responsible for a lawful use of this data, for example under GDPR or local law.
- **Not included:** private data, data that needs a login, and any data from other map services.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### API, export and integrations

- **API:** start a run with `POST https://api.apify.com/v2/acts/cliqtomedia~yandex-maps-scraper/runs` and your Apify token. The JSON body is the same as the input examples above. Read rows from the run's Dataset, and read `RUN_SUMMARY` from its key-value store.
- **Export:** download a Dataset view as JSON, CSV, Excel, XML or HTML from the **Output** tab or the API.
- **Scheduling:** create a schedule in Apify Console with `mode: monitor` or `onlyNew: true` and one `stateName`. Each run compares with the same history.
- **Webhooks / no-code:** use an Apify webhook on run success to tell another system that new rows are ready. The next system reads the Dataset ID from the run and uses `orgId` or `reviewId` as the key.
- **SDK / MCP / agent:** call the Actor by the name `cliqtomedia/yandex-maps-scraper` with the Apify SDK or the MCP server.

#### Use with AI agents (MCP)

MCP server URL with only this Actor: `https://mcp.apify.com?tools=cliqtomedia/yandex-maps-scraper`

Smallest useful input:

```json
{
  "query": ["кафе"],
  "location": "Алматы",
  "maxItems": 10
}
```

Key output fields:

- `name`: business name.
- `rating` and `reviewsCount`: business rating and number of written reviews.
- `address`: full address as text.
- `phone` and `website`: public contacts, or `null` when not shown.
- `url`: public Yandex Maps page of the business.

A run of this size took about 20 seconds and costs about $0.06 on the Free plan. Limits: 10,000 rows in a run, 300 seconds default timeout. Check the run's `status` and `stopReason` in `RUN_SUMMARY` to see if the result is partial.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Troubleshooting

#### The Dataset is empty

Symptom: the run succeeded and has 0 rows.
Likely reason: the source found nothing for this term and area, or your filters removed every result.
Check: `RUN_SUMMARY` for `status`, `notFound` and `filtered`.
Action: use a simpler term, try the Yandex Maps site with the same words, and remove filters one by one.

#### I got fewer rows than the limit

Symptom: the run saved fewer rows than `maxItems`.
Likely reason: the search window ended, duplicates were removed, the timeout came first or the charge limit came first.
Check: `stopReason` and `duplicates` in `RUN_SUMMARY`.
Action: for `SEARCH_WINDOW_LIMIT`, add terms or areas. For `DEADLINE`, raise the timeout. For `CHARGE_LIMIT`, raise the maximum cost.

#### I got fewer reviews than the business shows

Symptom: `reportedReviewsCount` is higher than the rows that you got.
Likely reason: the source shows only part of the reviews, or your filters removed some.
Check: `stopReason` in `RUN_SUMMARY` and your review filters.
Action: use `reviewSort: all` and remove filters. If it still ends with `REVIEW_WINDOW_LIMIT`, these are the reviews that the Actor could reach.

#### The run failed with INVALID_INPUT

Symptom: the run failed after a second or two with no rows.
Likely reason: there is no source in the input, a value has the wrong format, or a link is not a Yandex Maps link.
Check: the message in the run log.
Action: fix the named field and start the run again. Only the start fee is charged.

#### The run failed with SOURCE_ERROR

Symptom: the run has status `FAILED`, and the summary shows `SOURCE_ERROR`.
Likely reason: the source rejected a request or returned an unexpected page. This is not the same as an empty result.
Check: `errors` and `pendingInputs` in `RUN_SUMMARY`. Saved rows stay in the Dataset.
Action: wait a few minutes and start the run again with the pending inputs. For a search, you can also try `searchTransport: webPages`.

#### The email column is empty

Symptom: `email` is `null`.
Likely reason: `enrichBusinessData` is off, the business has no website, or the site shows no role-based address.
Check: `emailStatus` and `emailSourceUrl`.
Action: turn on `enrichBusinessData`. A failed website check does not fail the row.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### FAQ

#### Do I need a Yandex account or API key?

No. The Actor reads public data and asks for no login, key or cookies. You need only an Apify account to run it.

#### Can I get more than one search window of results?

Yes, with more searches. Add terms, cities or small map areas with `coordinates` and `viewportSpan`. Use `excludeBusinessIds` to skip businesses that you already have, so that you do not pay for them twice.

#### Does it collect every review of a business?

Not always. Yandex Maps gives access to a limited window. With `reviewSort: all`, the Actor combines four orders and removes duplicates, up to 2,400 reviews. In a test run for a business with 635 reviews it saved all 635. Compare your rows with `reportedReviewsCount`.

#### Why does a place cost more when reviews are on?

Loading reviews, menus and posts takes more source lookups, and each lookup is charged. Set `includeReviews` to `false` if you need only contacts. The cost examples in [Pricing](#pricing) show both cases.

#### Are the data fresh and complete?

Each row shows the public record at the time in `fetchedAt`. Some businesses do not show phones, sites or hours, so these fields can be `null`. Check `status` on each row and in `RUN_SUMMARY`.

#### Which countries does it work for?

It works for places that Yandex Maps covers. We tested it in Kazakhstan and Russia. Business data can come in `ru`, `en`, `tr`, `uk` or `kk`, and review text keeps its original language.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Related Actors

- [OpenStreetMap POI Extractor: Cafes, Shops, Hotels by City](https://apify.com/cliqtomedia/openstreetmap-poi-extractor): get points of interest from an open map to compare with your list.
- [Website Contact Scraper | Contacts & Social Links](https://apify.com/cliqtomedia/website-contacts-scraper): find more contacts on the websites from the `website` column.
- [Bulk Email Verifier: MX, Disposable, Role & Typo Check](https://apify.com/cliqtomedia/email-verifier): check found emails before you send.
- [OpenTable Reviews & Restaurants Scraper, No Login](https://apify.com/cliqtomedia/opentable-reviews-scraper): add restaurant reviews from another source.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

### Support

For a bug, question or feature request, open the **Issues** tab of this Actor on Apify. Include the run ID, the input mode and the error text if it is not sensitive. Never send tokens, cookies, billing data or private data.

> **👉 [Try it now: open the input form](https://console.apify.com/actors/tmug7alvlTpm4vBvE/input)**

# Changelog

This Actor's version history is a separate document: https://apify.com/cliqtomedia/yandex-maps-scraper/changelog.md

# Actor input Schema

## `mode` (type: `string`):

Choose business places, separate review rows, or changes in ratings and review counts.

## `query` (type: `array`):

One or more business names or types. Results are shared across the run limit.

## `location` (type: `string`):

City or area for the search. If you leave it empty, the Actor uses Алматы. A city in a search term may override this area.

## `locations` (type: `array`):

Search the same terms in each city. Duplicate businesses are returned once.

## `category` (type: `string`):

Add a business category as another search term.

## `businessIds` (type: `array`):

Numeric organization IDs from Yandex Maps business page URLs.

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

HTTPS Yandex Maps organization pages, short links, or search pages. Other websites are rejected.

## `maxItems` (type: `integer`):

Total result limit for the whole run. In reviews mode this counts reviews. For large searches, turn reviews off and increase the run timeout and maximum charge. Source windows may return fewer rows; use several queries or areas.

## `maxResults` (type: `integer`):

Optional older name for Maximum result rows. If you set it, it overrides Maximum result rows.

## `includeReviews` (type: `boolean`):

Add review text, dates, ratings, replies and public reviewer information to each business.

## `maxReviews` (type: `integer`):

Maximum matching reviews per business. In Reviews mode: up to 2400 (Yandex exposes up to 600 per order; All combines four orders). Inside Places and Monitor rows: up to 50 per business, so use Reviews mode for more. A reported source total may be higher than accessible public reviews.

## `reviewSort` (type: `string`):

Use source relevance, newest or star order. All combines four public source orders. Oldest sorts the accessible source window; rows may be partial when older reviews are outside it.

## `reviewMinRating` (type: `number`):

Keep reviews with at least this many stars.

## `reviewMaxRating` (type: `number`):

Keep reviews with at most this many stars.

## `reviewsFrom` (type: `string`):

Keep reviews updated on or after this date. Use an ISO date or timestamp.

## `reviewsTo` (type: `string`):

Keep reviews updated through this date. A date without a time includes the full UTC day.

## `onlyWithText` (type: `boolean`):

Skip ratings that have no review text.

## `replyFilter` (type: `string`):

Keep all reviews, reviews with an owner reply, or reviews without a reply.

## `language` (type: `string`):

Language for addresses, categories, hours and feature names. Review text keeps its original language.

## `maxPhotos` (type: `integer`):

Maximum public photo links to return. Images are not downloaded.

## `maxPosts` (type: `integer`):

Maximum public business news posts to return.

## `includeMenu` (type: `boolean`):

Read the public menu tab and include item names, prices, currencies and photo links.

## `enrichBusinessData` (type: `boolean`):

Read the full menu and try role-based email addresses on the business website. Website checks are best effort; see emailStatus.

## `excludeBusinessIds` (type: `array`):

Skip organizations you already collected. Skipped rows have no result charge.

## `onlyNew` (type: `boolean`):

Return only new places or reviews using saved history. Monitor mode already returns changes and takes precedence over this option.

## `stateName` (type: `string`):

Use the same name to continue a history. Start the name with yandex-maps-scraper-.

## `radiusKm` (type: `number`):

Radius in kilometres around Search center. The source searches a matching map rectangle.

## `coordinates` (type: `string`):

Longitude,latitude. Example: 76.94,43.25. Overrides the city map center.

## `viewportSpan` (type: `string`):

Width,height in longitude and latitude degrees. Example: 0.1,0.1.

## `filterRating` (type: `string`):

Return businesses with at least this rating.

## `minRating` (type: `number`):

Keep businesses with this rating or higher.

## `filterOpenNow` (type: `boolean`):

Keep businesses currently open.

## `filterOpen24h` (type: `boolean`):

Keep businesses open around the clock.

## `filterDelivery` (type: `boolean`):

Keep businesses offering food delivery.

## `filterTakeaway` (type: `boolean`):

Keep businesses offering takeaway.

## `filterWifi` (type: `boolean`):

Keep businesses with Wi-Fi.

## `filterCardPayment` (type: `boolean`):

Keep businesses that accept card payments.

## `filterParking` (type: `boolean`):

Keep businesses with parking.

## `filterPetFriendly` (type: `boolean`):

Keep businesses that allow pets.

## `filterWheelchairAccess` (type: `boolean`):

Keep businesses marked as wheelchair accessible.

## `filterGoodPlace` (type: `boolean`):

Keep businesses with the Yandex Good Place award.

## `filterMichelin` (type: `boolean`):

Keep businesses with a Michelin mark.

## `filterBusinessLunch` (type: `boolean`):

Keep businesses offering a business lunch.

## `filterSummerTerrace` (type: `boolean`):

Keep businesses with a summer terrace.

## `filterCuisine` (type: `array`):

Cuisine IDs, such as italian_cuisine or japanese_cuisine.

## `filterPriceCategory` (type: `array`):

Source price level IDs, such as price_reasonable.

## `filterCategories` (type: `array`):

Source business category IDs. A business may match any selected category.

## `filterChainId` (type: `array`):

Keep branches of these numeric chain IDs.

## `customFilters` (type: `array`):

Advanced source key:value filters. Each entry is sent as a separate filter.

## `filterPriceMin` (type: `integer`):

Keep businesses with a stated average bill at or above this amount in local currency.

## `filterPriceMax` (type: `integer`):

Keep businesses with a stated average bill at or below this amount in local currency.

## `sortBy` (type: `string`):

Use source relevance order or distance from the given origin.

## `sortOrigin` (type: `string`):

Longitude,latitude used for distance sorting.

## `searchScope` (type: `string`):

Search one city, or chain branches across Russian cities and overlapping map areas, including smaller towns. Country mode needs a chain ID and a supported Russian starting city. Coverage is not exhaustive; check the run summary.

## `deliveryConnector` (type: `string`):

Your Slack, Notion or other MCP connector. After the run the Actor posts a short summary there. Connect services once in Apify Console → MCP connectors.

## `deliveryTarget` (type: `string`):

Where to post the summary: a Notion page link (each run is added on top of that page) or a Slack channel ID. Leave empty to let the connector decide.

## `reportNewOwnerReplies` (type: `boolean`):

With Only new results in reviews mode, also return old reviews that have a new or updated owner reply.

## `searchTransport` (type: `string`):

Standard search transfers less data. Choose web pages if the source rejects standard search. Result fields and filters are the same.

## Actor input object example

```json
{
  "mode": "places",
  "query": [
    "кафе"
  ],
  "location": "Алматы",
  "maxItems": 10,
  "includeReviews": true,
  "maxReviews": 50,
  "reviewSort": "relevance",
  "onlyWithText": false,
  "replyFilter": "all",
  "language": "ru",
  "maxPhotos": 0,
  "maxPosts": 0,
  "includeMenu": false,
  "enrichBusinessData": false,
  "onlyNew": false,
  "stateName": "yandex-maps-scraper-history",
  "filterRating": "",
  "filterOpenNow": false,
  "filterOpen24h": false,
  "filterDelivery": false,
  "filterTakeaway": false,
  "filterWifi": false,
  "filterCardPayment": false,
  "filterParking": false,
  "filterPetFriendly": false,
  "filterWheelchairAccess": false,
  "filterGoodPlace": false,
  "filterMichelin": false,
  "filterBusinessLunch": false,
  "filterSummerTerrace": false,
  "sortBy": "",
  "searchScope": "city",
  "reportNewOwnerReplies": false,
  "searchTransport": "standard"
}
```

# Actor output Schema

## `places` (type: `string`):

Open business rows in the default Dataset.

## `reviews` (type: `string`):

Open review rows in the default Dataset.

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

Read counts, limits, errors and delivery status.

# 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 = {
    "query": [
        "кафе"
    ],
    "location": "Алматы",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("cliqtomedia/yandex-maps-scraper").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 = {
    "query": ["кафе"],
    "location": "Алматы",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("cliqtomedia/yandex-maps-scraper").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 '{
  "query": [
    "кафе"
  ],
  "location": "Алматы",
  "maxItems": 10
}' |
apify call cliqtomedia/yandex-maps-scraper --silent --output-dataset

```

## MCP server setup

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

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/tmug7alvlTpm4vBvE/builds/LFjRUOCCvufNOxama/openapi.json
