Yandex Maps Scraper API - Emails, Phones & Reviews avatar

Yandex Maps Scraper API - Emails, Phones & Reviews

Pricing

from $1.50 / 1,000 business or reviews

Go to Apify Store
Yandex Maps Scraper API - Emails, Phones & Reviews

Yandex Maps Scraper API - Emails, Phones & Reviews

Turn Yandex Maps into structured business leads. Extract phones, emails, websites, social links, reviews, ratings, opening hours and menu prices. Search by keyword, URL or business ID. Supports 6 languages and regional currencies. Export to Excel, CSV or JSON.

Pricing

from $1.50 / 1,000 business or reviews

Rating

0.0

(0)

Developer

Kelopr_bk

Kelopr_bk

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

4

Monthly active users

2 days ago

Last modified

Categories

Share

🗺️ Yandex Maps Scraper

Организации, контакты, отзывы и цены — в одном датасете

Собирайте данные Яндекс Карт по поисковым запросам, ссылкам и ID организаций. Получайте структурированные карточки, изучайте отзывы и выгружайте результаты в Excel, CSV или JSON.

📍 Организации · ☎️ Телефоны · ✉️ Email · 💬 Отзывы · 🖼️ Медиа · 🍽️ Меню

Открыть в Apify Console · Быстрый старт · Примеры настроек · Запуск через API · English


Быстрый старт

  1. Откройте актор в Apify Console.
  2. Перейдите в Input. В интерфейсе владельца это Source → Input.
  3. В What to collect выберите Find businesses.
  4. В Search queries введите запрос, например кофейни Казань.
  5. Укажите количество результатов в Maximum output rows и выберите Язык данных / Data language.
  6. Нажмите Start или Save & start.
  7. Откройте Output, выберите нужную вкладку и нажмите Export.

Для первого запуска: запрос кофе Москва, 3 результата, язык Русский. Контакты и отзывы уже включены в стандартной форме.

Короткий маршрут: Input → Start → Output → Export.

Что вы получаете

ДанныеСодержаниеОсновные поля
📍 ОрганизацияНазвание, адрес, категории, координаты, рейтингbusinessId, title, address, categories, latitude, longitude, rating
☎️ КонтактыТелефоны карточки и сайта, опубликованные email, сайты и мессенджерыphones, phonesNormalized, websitePhones, emails, websites, socialLinks
💬 ОтзывыТекст, оценка, дата, автор, реакции и ответ организацииreviews, reviewId, text, date, authorName, businessComment
🍽️ Меню и ценыПозиции меню или прайса, стоимость и валюта источникаmenu, price, priceValue, currency, currencyCode
🖼️ МедиаФотографии, публикации, видео и логотипphotos, posts, videos, logoUrl
🕒 Информация о местеГрафик работы, удобства, метро и остановки рядомworkingHoursText, schedule, features, nearbyMetro, nearbyStops
🔗 ИсточникиСсылки на карточку и страницы, где найдены контактыsourceUrl, contactSources, fieldSources, scrapedAt

Телефоны из Яндекс Карт и телефоны бизнес-сайта представлены отдельно. Для дополнительных контактов сохраняется страница-источник — удобно проверять данные перед добавлением в CRM.

Как работает актор

Вы задаёте источник → актор находит карточки → собирает выбранные данные → сохраняет готовые результаты.

  1. Поисковые фразы находят организации в выбранном городе или районе. Ссылки и ID открывают конкретные карточки.
  2. Актор читает опубликованные сведения об организации: адрес, телефоны, рейтинг, график и категории.
  3. Включённые настройки добавляют отзывы, меню, фотографии, публикации и контакты бизнес-сайта.
  4. При включённой дедупликации одна организация сохраняется один раз, даже если встретилась в нескольких запросах.
  5. Готовые карточки появляются в датасете по мере обработки. В режиме отзывов каждая строка представляет отдельный отзыв.

Выберите сценарий

ЗадачаВыбор в формеscrapeTypeЧто будет в одной строке
Найти организации по запросуFind businessessearchКарточка организации
Получить данные известных местBusiness details from URLs or IDsdetailsКарточка организации
Собрать отзывы для анализаReviews — one row per reviewreviewsОтзыв с данными организации

Город можно указать прямо в запросе — стоматология Казань — или отдельно в Location. В последнем случае название города добавляется к каждой поисковой фразе.

Примеры настроек

Эти примеры можно вставить во вкладку Input → JSON или сохранить в файл input.json для запуска через API.

☕ Кофейни Казани с телефонами

{
"scrapeType": "search",
"query": ["кофейни Казань"],
"maxItems": 20,
"language": "ru",
"requirePhone": true,
"minRating": 4.5,
"enrichContacts": true,
"includeReviews": true,
"maxReviews": 5
}

📌 Конкретные организации: контакты, меню и фотографии

{
"scrapeType": "details",
"businessIds": ["1036014863", "17323657526"],
"maxItems": 2,
"language": "ru",
"enrichContacts": true,
"includeMenu": true,
"includeReviews": true,
"maxReviews": 5,
"maxPhotos": 3,
"maxPosts": 3
}

Вместо ID можно заполнить Yandex Maps links:

{
"scrapeType": "details",
"startUrls": [
{
"url": "https://yandex.ru/maps/org/tanuki/1036014863/"
}
],
"maxItems": 1,
"language": "ru",
"includeMenu": true
}

💬 Свежие отзывы отеля — отдельными строками

{
"scrapeType": "reviews",
"businessIds": ["17323657526"],
"maxItems": 50,
"maxReviews": 50,
"reviewSort": "newest",
"language": "ru"
}

Такой формат удобно экспортировать в Excel: текст, оценка, дата, автор и ответ организации находятся в отдельных столбцах.

Настройки под вашу задачу

НастройкаЧто делает
queryПоисковые фразы: одна фраза на элемент списка
locationГород или район, добавляемый к запросам
startUrls / businessIdsПрямой выбор организаций по ссылкам или ID
maxItemsКоличество строк для всего запуска: организаций либо отзывов, в зависимости от сценария
languageЯзык метаданных
enrichContactsДополнительные контакты из бизнес-сайта и ответов организации
includeReviews / maxReviewsСбор отзывов и их количество на организацию
reviewSortПорядок отзывов: relevance, newest, highest, lowest
reviewsSinceОтзывы с датой источника позже указанного момента, например 2026-01-01T00:00:00Z
includeMenuМеню или прайс организации
maxPhotos / maxPostsКоличество фотографий и публикаций на карточку
requirePhone / requireWebsiteОтбор организаций с телефоном или сайтом
minRatingМинимальная оценка организации; в режиме отзывов — оценка отзыва
filterOpenNowОрганизации, отмеченные источником как открытые сейчас
deduplicateУдаление повторяющихся организаций или отзывов
excludeBusinessIdsПропуск организаций, которые уже есть в вашей базе

Поисковые фразы обрабатываются по очереди и используют общее значение maxItems.

Технические настройки. Их можно не трогать — значения по умолчанию рассчитаны на обычный запуск.

НастройкаЧто делает
outputFormatНабор полей в строке: полный или компактный
maxPagesСколько страниц выдачи читать по каждому запросу
viewportSpanРазмер области поиска вокруг заданных координат
maxContactPagesСколько страниц бизнес-сайта просматривать в поисках контактов
maxRuntimeSecs / maxRequestsГраницы прогона по времени и по числу запросов
maxConcurrency / maxRetriesСколько задач одновременно и сколько повторов при сбое
proxyConfigurationПрокси Apify или ваши собственные
resumeStateПродолжение предыдущего сбора из записи RESUME_INPUT

Технические настройки

НастройкаЧто делает
outputFormatНабор полей в строке: полный или сокращённый
viewportSpanШирина области поиска вокруг координат
maxPagesСколько страниц выдачи читать на один запрос
maxContactPagesСколько страниц сайта открывать в поисках контактов
maxRuntimeSecs / maxRequestsОграничители прогона по времени и числу запросов
maxConcurrency / maxRetriesПараллельность и число повторов при сбое
proxyConfigurationПрокси для запросов
resumeStateПродолжение прерванного сбора из записи RESUME_INPUT

🌐 Языки и региональная валюта

В Язык данных / Data language доступны:

ЯзыкЗначение для API
Русский — по умолчаниюru
Englishen
Türkçetr
Қазақшаkk
Українськаuk
Azərbaycancaaz

Язык применяется к адресам, категориям и другим метаданным, которые Яндекс выдаёт в выбранной локализации. Оригинальный текст отзыва сохраняется в text, а оригинал на выбранном языке или предоставленный Яндексом перевод — в textInRequestedLanguage.

Валюта относится к цене организации и сохраняется при смене языка. Например, выбор английского для московской карточки оставляет рубли, а выбор русского для алматинской — тенге.

Цена источникаКод валюты
₽ — российский рубльRUB
₸ — казахстанский тенгеKZT
Br — белорусский рубльBYN
₺ / турецкая лираTRY

В меню сохраняются исходные price и currency; для обработки добавлены priceValue, currencyRaw и currencyCode. Поле currencies содержит обнаруженные коды валют. Суммы остаются в валюте источника, без пересчёта по курсу.

Пример результата

Сокращённый фрагмент реальной тестовой карточки:

{
"businessId": "69353267050",
"title": "Surf Coffee x Flow",
"address": "Москва, Страстной бул., 8А",
"phones": [
"+7 (993) 337-56-86"
],
"emails": [
"hello@surfcoffee.ru"
],
"website": "https://surfcoffee.ru/",
"currency": "RUB",
"menu": {
"items": [
{
"title": "Пирожное Картошка классическая",
"price": "195",
"currency": "₽",
"currencyCode": "RUB"
}
]
}
}

📊 Просмотр и экспорт

В Output данные распределены по вкладкам:

ВкладкаДля чего использовать
BusinessesСписок организаций: адреса, оценки, контакты и валюта
ContactsРабота с телефонами, email, сайтами и мессенджерами
ReviewsАнализ отзывов и ответов организации
Photos, posts & menusМедиа, публикации и прайсы
Location & featuresГеография, график работы и характеристики места
Sources & collection statusПроверка источников и сведений о сборе

Нажмите Export и выберите Excel, CSV или JSON. Для анализа отзывов в таблицах выбирайте сценарий Reviews — one row per review. Для сохранения структуры карточки вместе с меню и медиа используйте JSON.

Продолжение выгрузки организаций

  1. Откройте Storage → Key-value store завершённого запуска.
  2. Откройте запись RESUME_INPUT.
  3. Скопируйте её JSON в Input нового запуска.
  4. Нажмите Start.

Продолжение использует сохранённую позицию поиска и исключает уже записанные ID. Итоги обработки находятся в записи OUTPUT того же хранилища.

Для готовых интеграций в Export field format предусмотрены extended, zen и mamaev. Они позволяют выбрать нужное представление полей при работе с существующими таблицами и сценариями.

Запуск через API

API удобно использовать для интеграции с CRM, собственным приложением или обработкой данных на Python.

1. Установите клиент Apify:

$pip install apify-client

2. Сохраните один из примеров выше в input.json и передайте API-токен через переменную окружения APIFY_TOKEN.

3. Сохраните этот код в run_actor.py:

import asyncio
import json
import os
from pathlib import Path
from apify_client import ApifyClientAsync
async def main():
client = ApifyClientAsync(os.environ["APIFY_TOKEN"])
actor_input = json.loads(
Path("input.json").read_text(encoding="utf-8-sig")
)
run = await client.actor("trakk/yandex-maps-scraper").call(
run_input=actor_input
)
if not run or run["status"] != "SUCCEEDED":
raise RuntimeError("Check the run details in Apify Console.")
dataset = await client.dataset(run["defaultDatasetId"]).list_items(
clean=True
)
Path("results.json").write_text(
json.dumps(dataset.items, ensure_ascii=False, indent=2),
encoding="utf-8",
)
print(f"Saved {len(dataset.items)} records to results.json")
if __name__ == "__main__":
asyncio.run(main())

4. Укажите токен и запустите скрипт:

Windows — PowerShell:

$env:APIFY_TOKEN = "YOUR_APIFY_TOKEN"
py run_actor.py

macOS / Linux:

export APIFY_TOKEN="YOUR_APIFY_TOKEN"
python run_actor.py

Замените YOUR_APIFY_TOKEN своим токеном из настроек Apify. Скрипт запускает актор, ожидает завершения и сохраняет датасет в results.json с читаемым Unicode.



🌍 Работаете не только по России?

Этот актор читает Яндекс Карты. Для остального мира есть парный к нему Google Maps Scraper — Emails, Reviews & Local Rank Grid: те же карточки организаций, email и телефоны с сайтов, отзывы — плюс сетка локального ранга, показывающая, на каком месте бизнес стоит в выдаче из разных точек города.


English

Collect Yandex Maps businesses, published contacts, reviews, photos, posts and menu prices in one structured dataset. Everything above is in Russian; this half says the same in English.

Quick start

  1. Open the Actor in Apify Console and go to Input (Source → Input if you own the Actor).
  2. Under What to collect, choose Find businesses.
  3. Enter a query in Search queries, for example coffee Moscow or стоматология Казань.
  4. Set Maximum output rows and pick a Data language.
  5. Press Start, then open Output and use Export for Excel, CSV or JSON.

For a first run: the query кофе Москва, three results, language Russian. Contacts and reviews are already on in the standard form.

What you get

DataContentsKey fields
📍 BusinessName, address, categories, coordinates, ratingbusinessId, title, address, categories, latitude, longitude, rating
☎️ ContactsCard and website phones, published emails, sites and messengersphones, phonesNormalized, websitePhones, emails, websites, socialLinks
💬 ReviewsText, score, date, author, reactions and the owner's replyreviews, reviewId, text, date, authorName, businessComment
🍽️ Menu and pricesMenu or price-list items, cost and the source currencymenu, price, priceValue, currency, currencyCode
🖼️ MediaPhotos, posts, videos and the logophotos, posts, videos, logoUrl
🕒 Place infoOpening hours, amenities, nearby metro and stopsworkingHoursText, schedule, features, nearbyMetro, nearbyStops
🔗 ProvenanceLinks to the card and to the pages a contact came fromsourceUrl, contactSources, fieldSources, scrapedAt

Phones from Yandex Maps and phones from the business website are kept apart, and every extra contact carries the page it came from — useful when you want to check a record before it reaches your CRM.

How it works

You give a source, the Actor finds the cards, collects what you asked for, and saves finished rows as it goes.

  1. Search phrases find businesses in the chosen city or district; links and IDs open specific cards.
  2. The Actor reads the published business record: address, phones, rating, hours and categories.
  3. The settings you enable add reviews, menu, photos, posts and contacts from the business website.
  4. With deduplication on, a business is saved once even when several queries return it.
  5. In review mode each row is a single review rather than a business.

Choose a scenario

GoalChoice in the formscrapeTypeOne row holds
Find businesses by queryFind businessessearchA business card
Read businesses you already knowBusiness details from URLs or IDsdetailsA business card
Collect reviews for analysisReviews — one row per reviewreviewsA review with its business

You can put the city in the query itself — стоматология Казань — or set it once in Location, which appends it to every phrase.

Settings

SettingWhat it does
querySearch phrases, one per list item
locationCity or district appended to the queries
startUrls / businessIdsPick businesses directly by link or ID
maxItemsRows for the whole run: businesses or reviews, depending on the scenario
languageMetadata language
enrichContactsExtra contacts from the business website and owner replies
includeReviews / maxReviewsWhether to collect reviews, and how many per business
reviewSortReview order: relevance, newest, highest, lowest
reviewsSinceReviews published after a moment, for example 2026-01-01T00:00:00Z
includeMenuMenu or price list
maxPhotos / maxPostsPhotos and posts per card
requirePhone / requireWebsiteKeep only businesses that publish a phone or a site
minRating / maxReviewRatingRating band for the business, or for the review in review mode
filterOpenNowOnly businesses the source marks as open now
deduplicateDrop repeated businesses or reviews
excludeBusinessIdsSkip businesses you already hold

Search phrases are processed in turn and share one maxItems.

Technical settings. You can leave these alone; the defaults suit an ordinary run.

SettingWhat it does
outputFormatHow many fields a row carries: full or compact
maxPagesHow many result pages to read per query
viewportSpanThe size of the search area around given coordinates
maxContactPagesHow many pages of a business website to read while looking for contacts
maxRuntimeSecs / maxRequestsBounds on the run's time and request count
maxConcurrency / maxRetriesHow much runs at once, and how often a failure is retried
proxyConfigurationApify proxy or your own
resumeStateContinue an earlier collection from its RESUME_INPUT record

Advanced settings

SettingWhat it does
outputFormatHow many fields a row carries: full or compact
viewportSpanHow wide an area to search around given coordinates
maxPagesResult pages to read per query
maxContactPagesWebsite pages to open while looking for contacts
maxRuntimeSecs / maxRequestsRun guards on time and on request count
maxConcurrency / maxRetriesParallelism, and retries after a failure
proxyConfigurationThe proxy requests go through
resumeStateContinue an interrupted collection from the RESUME_INPUT record

Languages and currency

Set language to en for English metadata. Prices keep the currency of the source even when the data language changes, and any translation the source provides is returned separately from the original text.

Running it from the API

Use search for queries, details for business links or IDs, and reviews for one review per row. The JSON examples in the Russian half paste straight into the input editor. For a repeat collection, reuse the generated RESUME_INPUT record or pass the IDs you already have in excludeBusinessIds.


🌍 Working outside Russia?

This Actor reads Yandex Maps. For everywhere else there is its counterpart, Google Maps Scraper — Emails, Reviews & Local Rank Grid: the same business records, emails and phones pulled from their websites, and reviews — plus a local rank grid that shows where a business appears in search from different points across a city.