# Yandex Maps Scraper – Places & Business Data (`unnoted/yandex-maps-places`) Actor

Get places from Yandex Maps for any search and city: name, address, coordinates, categories, rating, rating and review counts, business phones, website, opening hours, open-now status and features. Hundreds of places per search. Export JSON, CSV or Excel. No login needed. Unofficial.

- **URL**: https://apify.com/unnoted/yandex-maps-places.md
- **Developed by:** [Unnoted](https://apify.com/unnoted) (community)
- **Categories:** Lead generation, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.80 / 1,000 places

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

### What does Yandex Maps Scraper – Places & Business Data do?

Yandex Maps Scraper collects the places Yandex Maps finds for your search terms in a city or area: name, address, coordinates, categories, rating with rating and review counts, the business's phones, website and social links, opening hours, open-now status and features, as clean rows you can export or call by API.

Unofficial, not affiliated with Yandex Maps.

**Main features:** search by keyword, up to 100,000 places per run, no login needed, export to JSON, CSV or Excel, and full API and scheduling support on Apify.

### What data can you get from Yandex Maps?

Each place is one row with these fields:

| Field | Description |
|---|---|
| `placeId` | Yandex Maps organisation id (always filled) |
| `url` | Link to the place on Yandex Maps (always filled) |
| `name` | Name of the place (always filled) |
| `shortName` | Short name, as shown on the map pin |
| `address` | Address as shown (e.g. Moscow, Strastnoy Boulevard, 4с3) |
| `city` | City or locality |
| `postalCode` | Postal code (empty where Yandex Maps has none) |
| `country` | Country |
| `lat` | Latitude |
| `lng` | Longitude |
| `categories` | Categories of the place (e.g. Restaurant, cafe, bar, pub) |
| `rating` | Average rating (1–5); empty for places without ratings |
| `ratingCount` | Number of ratings |
| `reviewCount` | Number of written reviews |
| `phones` | The business's listed phone numbers |
| `website` | The business's website (tracking parameters removed) |
| `socialLinks` | The business's social and messenger links (e.g. Telegram, VK, WhatsApp) |
| `workingHoursText` | Opening hours as shown (e.g. Mon-Thu 12:00 PM–12:00 AM; Fri,Sat 12:00 PM–1:00 AM) |
| `currentStatus` | Open or closed at the time of the run, as shown (e.g. Open until 12:00 AM) |
| `isOpenNow` | Whether the place was open at the time of the run |
| `features` | Features of the place (e.g. average bill: 1300–2900 ₽, takeout, Wi-Fi) |
| `isAd` | Whether the result is a paid placement |
| `searchQuery` | The search term that found it |
| `position` | Position in the results (1 = first result of page 1) |
| `scrapedAt` | When the place was collected (ISO 8601) |

### How to scrape Yandex Maps with Yandex Maps Scraper – Places & Business Data

1. Open Yandex Maps Scraper – Places & Business Data on Apify and go to the **Input** tab.
2. In **Search terms**, enter `cafe`.
3. In **Location**, enter `Moscow`.
4. In **Max places**, enter `20`.
5. Click **Start** and wait for the run to finish. A small run like this one takes under a minute.
6. Open the **Output** tab to see the results, or download them as JSON, CSV, Excel or HTML.

### Input

See the **Input** tab for every option. The fields:

| Field | Name | What it does | Default |
|---|---|---|---|
| `searchQueries` | Search terms | What to search for on Yandex Maps, one per line, as you would type it in the search box (e.g. cafe, dentist, car service, hotel). Each search gives up to 1,000 result slots (40 pages of 25). |  |
| `location` | Location | Where to search: a city or area name (e.g. Moscow, Saint Petersburg, Istanbul, Almaty) or coordinates as "latitude, longitude" (e.g. 55.7558, 37.6176). Results start at its centre and spread outwards. Leave empty to let Yandex Maps choose the area from the search terms (e.g. "cafe Kazan"). |  |
| `maxItems` | Max places | Maximum number of places in total, across all searches. You pay only for places saved. | `100` |

Example input:

```json
{
  "searchQueries": [
    "cafe"
  ],
  "location": "Moscow",
  "maxItems": 20
}
```

### Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. One real result:

```json
{
  "placeId": "1018907821",
  "url": "https://yandex.com/maps/org/pushkin/1018907821/",
  "name": "Pushkin",
  "shortName": "Pushkin",
  "address": "Moscow, Tverskoy Boulevard, 26А",
  "city": "Moscow",
  "postalCode": "125009",
  "country": "Russian Federation",
  "lat": 55.763722,
  "lng": 37.60493,
  "categories": [
    "Restaurant",
    "cafe",
    "banquet hall"
  ],
  "rating": 4.9,
  "ratingCount": 15344,
  "reviewCount": 6064,
  "phones": [
    "+7 (495) 739-00-33"
  ],
  "website": "https://cafe-pushkin.ru/",
  "socialLinks": [
    "https://t.me/cafepushkin_official"
  ],
  "workingHoursText": "Mon-Thu 9:00 AM–12:00 AM; Fri-Sun 24 hours",
  "currentStatus": "Open until Monday",
  "isOpenNow": true,
  "features": [
    "average bill: 3500–4500 ₽",
    "food delivery",
    "coffee to go",
    "takeout",
    "prices: high",
    "gift certificate",
    "services: wedding reception",
    "Events: Business meeting, Family dinner, Company party, The Banquet, Wedding, Birthday",
    "Tea",
    "parking",
    "payment method: prepayment, cash, payment by card, online, Fast payment system, payment by credit card",
    "Coffee",
    "breakfast",
    "music: live",
    "promotions: special offers, bonuses",
    "Charging station",
    "business lunch",
    "Pre-order online",
    "toilet",
    "WC",
    "preliminary registration",
    "Elevator wheelchair accessible",
    "Credit card payment",
    "special menu: lenten, seasonal, pancakes",
    "Water",
    "cuisine: european, russian, home cooking",
    "wheelchair accessibility: unavailable",
    "parking attendant",
    "Wi-Fi",
    "type of place: elite restaurant, Family restaurant, Russian restaurant, Summer terrace restaurant, French restaurant",
    "wheelchair accessible: Not available",
    "features institution: menu in English, live music, kitchen works twenty-four hours a day, free parking, bar counter, wine list, there is a banquet hall",
    "dimmed lights",
    "types of delivery: Yandex.Eda, Delivery-club, own courier service",
    "summer terrace"
  ],
  "isAd": true,
  "searchQuery": "cafe",
  "position": 1,
  "scrapedAt": "2026-10-08T19:47:27.151Z"
}
```

### How much does it cost to scrape Yandex Maps?

Yandex Maps Scraper – Places & Business Data uses pay-per-event pricing: **$2.80 per 1,000 places** (Place). You pay only for places saved to the dataset; platform usage is included in the price. Each run also has Apify's standard start fee of a fraction of a cent.

| Places | Price |
|---|---|
| 100 | $0.28 |
| 1,000 | $2.80 |
| 10,000 | $28.00 |

Set **Max items** (and the run's maximum cost in the run options) to cap what a run can spend. The run stops when either limit is reached.

### Use cases

- **Lead generation:** build lists of businesses of a type in a city, with their phones, websites and social links.
- **Market research:** count and compare the places of a category across cities and districts, with their ratings.
- **Local SEO and reputation:** track a business's rating and review count against its neighbours over time.
- **Location analysis:** map competitors with coordinates, categories and opening hours.
- **Data enrichment:** add addresses, coordinates and categories to your own list of places.

### Tips

- Set **Location** to the city you want. Coordinates ("latitude, longitude") let you aim at one district: results start at that point and spread outwards.
- Each search gives up to 1,000 result slots; Yandex Maps repeats some places across pages, so a search usually yields several hundred different places. For more, split it by district (several coordinates) or by narrower terms.
- Places found by more than one search are saved once, so overlapping searches don't cost twice.
- Search terms work in English and Russian (e.g. кафе, стоматология). Names and addresses come in English where Yandex Maps has them, otherwise in the local language.
- Paid placements are kept, as Yandex Maps shows them, and marked with **isAd**.

### FAQ

#### Is it legal to scrape Yandex Maps?

Yandex Maps Scraper – Places & Business Data collects only data that Yandex Maps shows publicly to every visitor, and it leaves out personal data such as private profiles and contact details. Our Actors are ethical and do not extract private user data. Results could still contain personal data in titles or descriptions written by uploaders. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You are responsible for how you use the data.

#### Can I use it through an API?

Yes. Every Apify Actor has an API: start runs, pass input and read results over HTTP, or use the JavaScript and Python clients. See the **API** tab on the Actor page for ready-made examples.

#### Can I schedule runs and connect other apps?

Yes. Use Apify **Schedules** to run Yandex Maps Scraper – Places & Business Data every hour, day or week, and integrations (Make, Zapier, Google Sheets, webhooks and more) to send the results where you need them.

#### Why did I get fewer results than expected?

The run stops at **Max items** or at the run's maximum cost, whichever comes first. Yandex Maps may also return fewer results for rare search terms. Duplicates across search terms are saved once. Check the run's `RUN_SUMMARY` record in the key-value store for the inputs that returned nothing.

#### What if it stops working?

Sites change. We run a daily check of our own and fix breakages quickly. If something looks wrong, open an issue in the **Issues** tab with the run link and we'll look at it.

#### Which countries does it cover?

Any place Yandex Maps covers. The data is richest in Russia, Belarus, Kazakhstan, Uzbekistan and Turkey, where Yandex Maps is most used.

#### Why are postalCode or website empty for some places?

Yandex Maps doesn't list them for every place. The Actor leaves a field empty rather than guessing.

#### Can I get the reviews or photos?

Not in this Actor: it collects place data only. Review texts, reviewer names and user photos are left out.

#### What does position mean?

The place's slot in the results, 25 per page: position 26 is the first result of page 2. Yandex Maps may move places between pages, so positions are approximate past the first page.

### Not included

No personal data: reviews, reviewer names and user photos are not collected. Phone numbers, websites and social links are the ones each business lists on its own Yandex Maps card.

### More Actors from us

- [Bilibili Scraper – Video Search & Stats API](https://apify.com/unnoted/bilibili-video-scraper)
- [Google Jobs Scraper – Job Listings API](https://apify.com/unnoted/google-jobs-listings)
- [Google Play Reviews Scraper – App Reviews API](https://apify.com/unnoted/google-play-reviews-scraper)
- [Google Trends Scraper – Interest & Related Queries](https://apify.com/unnoted/google-trends-data)
- [Kleinanzeigen Scraper – Listings & Prices](https://apify.com/unnoted/kleinanzeigen-listings-scraper)
- [Resident Advisor Scraper – RA Event Listings](https://apify.com/unnoted/resident-advisor-events)

***

Яндекс Карты, парсер организаций, адреса, телефоны, рейтинг, часы работы

# Actor input Schema

## `searchQueries` (type: `array`):

What to search for on Yandex Maps, one per line, as you would type it in the search box (e.g. cafe, dentist, car service, hotel). Each search gives up to 1,000 result slots (40 pages of 25).

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

Where to search: a city or area name (e.g. Moscow, Saint Petersburg, Istanbul, Almaty) or coordinates as "latitude, longitude" (e.g. 55.7558, 37.6176). Results start at its centre and spread outwards. Leave empty to let Yandex Maps choose the area from the search terms (e.g. "cafe Kazan").

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

Maximum number of places in total, across all searches. You pay only for places saved.

## Actor input object example

```json
{
  "searchQueries": [
    "cafe"
  ],
  "location": "Moscow",
  "maxItems": 20
}
```

# Actor output Schema

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

One item per place.

## `runSummary` (type: `string`):

Items saved, inputs done, and how complete each field was.

# 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 = {
    "searchQueries": [
        "cafe"
    ],
    "location": "Moscow",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("unnoted/yandex-maps-places").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 = {
    "searchQueries": ["cafe"],
    "location": "Moscow",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("unnoted/yandex-maps-places").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 '{
  "searchQueries": [
    "cafe"
  ],
  "location": "Moscow",
  "maxItems": 20
}' |
apify call unnoted/yandex-maps-places --silent --output-dataset

```

## MCP server setup

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

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/3hbvO1Z26IVoGPJNv/builds/ZHkIjsb1Zdm3oFACu/openapi.json
