Yandex Maps Scraper API - Emails, Phones & Reviews
Pricing
from $1.50 / 1,000 business or 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
Maintained by CommunityActor 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
Быстрый старт
- Откройте актор в Apify Console.
- Перейдите в Input. В интерфейсе владельца это Source → Input.
- В What to collect выберите Find businesses.
- В Search queries введите запрос, например
кофейни Казань. - Укажите количество результатов в Maximum output rows и выберите Язык данных / Data language.
- Нажмите Start или Save & start.
- Откройте 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.
Как работает актор
Вы задаёте источник → актор находит карточки → собирает выбранные данные → сохраняет готовые результаты.
- Поисковые фразы находят организации в выбранном городе или районе. Ссылки и ID открывают конкретные карточки.
- Актор читает опубликованные сведения об организации: адрес, телефоны, рейтинг, график и категории.
- Включённые настройки добавляют отзывы, меню, фотографии, публикации и контакты бизнес-сайта.
- При включённой дедупликации одна организация сохраняется один раз, даже если встретилась в нескольких запросах.
- Готовые карточки появляются в датасете по мере обработки. В режиме отзывов каждая строка представляет отдельный отзыв.
Выберите сценарий
| Задача | Выбор в форме | scrapeType | Что будет в одной строке |
|---|---|---|---|
| Найти организации по запросу | Find businesses | search | Карточка организации |
| Получить данные известных мест | Business details from URLs or IDs | details | Карточка организации |
| Собрать отзывы для анализа | Reviews — one row per review | reviews | Отзыв с данными организации |
Город можно указать прямо в запросе — стоматология Казань — или отдельно в 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 |
| English | en |
| Türkçe | tr |
| Қазақша | kk |
| Українська | uk |
| Azərbaycanca | az |
Язык применяется к адресам, категориям и другим метаданным, которые Яндекс выдаёт в выбранной локализации. Оригинальный текст отзыва сохраняется в 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.
Продолжение выгрузки организаций
- Откройте Storage → Key-value store завершённого запуска.
- Откройте запись RESUME_INPUT.
- Скопируйте её JSON в Input нового запуска.
- Нажмите 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 asyncioimport jsonimport osfrom pathlib import Pathfrom apify_client import ApifyClientAsyncasync 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
- Open the Actor in Apify Console and go to Input (Source → Input if you own the Actor).
- Under What to collect, choose Find businesses.
- Enter a query in Search queries, for example
coffee Moscoworстоматология Казань. - Set Maximum output rows and pick a Data language.
- 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
| Data | Contents | Key fields |
|---|---|---|
| 📍 Business | Name, address, categories, coordinates, rating | businessId, title, address, categories, latitude, longitude, rating |
| ☎️ Contacts | Card and website phones, published emails, sites and messengers | phones, phonesNormalized, websitePhones, emails, websites, socialLinks |
| 💬 Reviews | Text, score, date, author, reactions and the owner's reply | reviews, reviewId, text, date, authorName, businessComment |
| 🍽️ Menu and prices | Menu or price-list items, cost and the source currency | menu, price, priceValue, currency, currencyCode |
| 🖼️ Media | Photos, posts, videos and the logo | photos, posts, videos, logoUrl |
| 🕒 Place info | Opening hours, amenities, nearby metro and stops | workingHoursText, schedule, features, nearbyMetro, nearbyStops |
| 🔗 Provenance | Links to the card and to the pages a contact came from | sourceUrl, 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.
- Search phrases find businesses in the chosen city or district; links and IDs open specific cards.
- The Actor reads the published business record: address, phones, rating, hours and categories.
- The settings you enable add reviews, menu, photos, posts and contacts from the business website.
- With deduplication on, a business is saved once even when several queries return it.
- In review mode each row is a single review rather than a business.
Choose a scenario
| Goal | Choice in the form | scrapeType | One row holds |
|---|---|---|---|
| Find businesses by query | Find businesses | search | A business card |
| Read businesses you already know | Business details from URLs or IDs | details | A business card |
| Collect reviews for analysis | Reviews — one row per review | reviews | A 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
| Setting | What it does |
|---|---|
query | Search phrases, one per list item |
location | City or district appended to the queries |
startUrls / businessIds | Pick businesses directly by link or ID |
maxItems | Rows for the whole run: businesses or reviews, depending on the scenario |
language | Metadata language |
enrichContacts | Extra contacts from the business website and owner replies |
includeReviews / maxReviews | Whether to collect reviews, and how many per business |
reviewSort | Review order: relevance, newest, highest, lowest |
reviewsSince | Reviews published after a moment, for example 2026-01-01T00:00:00Z |
includeMenu | Menu or price list |
maxPhotos / maxPosts | Photos and posts per card |
requirePhone / requireWebsite | Keep only businesses that publish a phone or a site |
minRating / maxReviewRating | Rating band for the business, or for the review in review mode |
filterOpenNow | Only businesses the source marks as open now |
deduplicate | Drop repeated businesses or reviews |
excludeBusinessIds | Skip 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.
| Setting | What it does |
|---|---|
outputFormat | How many fields a row carries: full or compact |
maxPages | How many result pages to read per query |
viewportSpan | The size of the search area around given coordinates |
maxContactPages | How many pages of a business website to read while looking for contacts |
maxRuntimeSecs / maxRequests | Bounds on the run's time and request count |
maxConcurrency / maxRetries | How much runs at once, and how often a failure is retried |
proxyConfiguration | Apify proxy or your own |
resumeState | Continue an earlier collection from its RESUME_INPUT record |
Advanced settings
| Setting | What it does |
|---|---|
outputFormat | How many fields a row carries: full or compact |
viewportSpan | How wide an area to search around given coordinates |
maxPages | Result pages to read per query |
maxContactPages | Website pages to open while looking for contacts |
maxRuntimeSecs / maxRequests | Run guards on time and on request count |
maxConcurrency / maxRetries | Parallelism, and retries after a failure |
proxyConfiguration | The proxy requests go through |
resumeState | Continue 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.