Yandex Maps Scraper: Businesses, Phones & Ratings avatar

Yandex Maps Scraper: Businesses, Phones & Ratings

Pricing

from $0.40 / 1,000 businesses

Go to Apify Store
Yandex Maps Scraper: Businesses, Phones & Ratings

Yandex Maps Scraper: Businesses, Phones & Ratings

Scrape Yandex Maps business listings across Russia and the CIS: name, address, phone, website, rating, review count, categories, opening hours and coordinates. No login, no API key.

Pricing

from $0.40 / 1,000 businesses

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

🏆 Part of The Mine Works' 149-actor portfolio · 40,000+ runs · 200,000+ results delivered across our full distribution stack · 99.9%+ success rate

💰 $0.40 / 1,000 results.

⚡ Walks a grid of map tiles outward from the city centre instead of paging a results list. Four tile positions returned 78 unique businesses where four pages returned 31. 💸 No login, no API key.

Scrape business listings from Yandex Maps, the dominant mapping service in Russia and much of the CIS, where Google Maps coverage is thin or absent. No login, no API key, no browser.

✅ Phone on 99% of records · ✅ Website on 96% · ✅ Rating & review count on 100% · ✅ Registered legal entity + tax ID where available · ✅ 14 cities across RU, BY and KZ · ✅ No per-business charge on an empty run

Scrape businesses by category and city

{
"queries": ["кафе"],
"city": "moscow",
"maxItems": 200
}

Search in Russian for far better coverage. кафе returns many times more results than cafe. English works for international brand names.

Build a multi-category lead list in one run

Several queries rotate through the same city, so one run can cover a whole vertical.

{
"queries": ["стоматология", "стоматологическая клиника", "ортодонт"],
"city": "spb",
"maxItems": 500
}

What you get for each business

Real record from a live run:

{
"business_id": "115736401897",
"name": "Галки",
"category": "Ресторан",
"categories": ["Ресторан", "кафе", "бар"],
"address": "Москва, Страстной бульвар, 4, стр. 3",
"longitude": 37.608719,
"latitude": 55.764844,
"phone": "+7 (930) 036-22-71",
"phones": ["+7 (930) 036-22-71", "+7 (930) 036-23-21", "+7 (495) 149-81-22"],
"website": "https://galki.moscow/",
"social_links": ["https://t.me/galkireserve", "https://vk.ru/galki_moscow"],
"rating": 4.9,
"rating_count": 9429,
"review_count": 5125,
"working_hours": "пн-чт 12:00 PM–12:00 AM; пт,сб 12:00 PM–1:00 AM",
"average_bill": "1300–2900 ₽",
"nearest_metro": "Чеховская",
"nearest_metro_distance": "117 м",
"legal_entity": "ООО \"БАНКЕТ\"",
"tax_id": "7716828550",
"maps_url": "https://yandex.ru/maps/org/galki/115736401897/"
}
FieldDescription
🏢 name, category, categoriesBusiness name and every category Yandex assigns it
📍 address, short_address, postal_code, countryFull and short postal address
🌐 longitude, latitudeCoordinates, named explicitly so there is no lat/lon swap
📞 phone, phonesPrimary number plus every other number listed
🔗 website, social_linksSite and social profiles (Telegram, VK, WhatsApp, YouTube)
rating, rating_count, review_countStar rating and how many people rated and reviewed
🕒 working_hours, currently, statusOpening hours, whether it is open right now
💰 average_billTypical spend band, on hospitality listings
🚇 nearest_metro, nearest_metro_distanceClosest metro station and walking distance
🧾 legal_entity, tax_idRegistered company name and Russian INN, where published
📣 is_advertWhether this was a paid placement

Where a business runs paid placement on Yandex, its registered legal entity and Russian tax number (ИНН) are published alongside the listing, and this actor extracts both. That turns a maps listing into something you can match against a company registry: the real company behind the trading name. It appears on roughly 6 in 10 records, so treat it as a bonus field rather than a guaranteed one.

How the coverage actually works

Yandex serves about 24 businesses per map viewport and shows a page count that makes ?p=2, ?p=3 look like ordinary pagination. It isn't. Measured across four pages, the unique count went 24 → 29 → 31 → 31: it saturates almost immediately and later pages re-serve the same businesses.

What genuinely pages is moving the map. This actor walks a grid of map tiles outward from the city centre, collecting the businesses at each position and deduplicating across the overlap. Four tile positions returned 78 unique businesses where four pages returned 31. A run that stops early because it found everything will say so in the log rather than burning your budget on empty tiles.

Because coverage is geographic, the most central and relevant businesses arrive first, so a small maxItems still returns the city core, not the suburbs.

Cities covered

Moscow · Saint Petersburg · Novosibirsk · Yekaterinburg · Kazan · Nizhny Novgorod · Chelyabinsk · Samara · Rostov-on-Don · Ufa · Krasnoyarsk · Minsk (Belarus) · Almaty and Astana (Kazakhstan)

Common use cases

B2B lead generation in the Russian-speaking market, where Google Maps data is sparse and phone coverage is poor.

Competitor and market mapping. Every restaurant, clinic or gym in a district with ratings and review volume.

Franchise and retail site selection, using coordinates, metro proximity and local competitive density.

Company registry matching, via the legal entity name and tax ID.

Pricing

EventPriceYou pay when
Business$0.0004A business record lands in your dataset
Actor Start$0.005The run starts. One event per GB of memory, and this actor runs on 1 GB, so one per run

Flat pricing across every Apify plan, not tiered. A search that turns up no businesses costs the actor start event and nothing else.

Run it on a schedule

  1. Run once with the input you want repeated, then click Save as a task.
  2. Turn on Monitor mode so later runs return only newly listed businesses.
  3. In the Apify Console go to SchedulesCreate new and add the saved task.

Nothing is charged just for a schedule existing.

FAQ

Do I need a Yandex account? No. Everything comes from public search pages.

Should I search in Russian or English? Russian, for anything generic. Yandex indexes businesses by their Russian category names, so аптека vastly outperforms pharmacy.

Why did I get fewer results than Yandex claims? The number Yandex shows is per map viewport, not per city. This actor works around that by tiling the map, which is why it typically returns several times what a single search page holds. When it stops early it is because consecutive tiles returned nothing new.

Are the phone numbers real? They are the numbers each business publishes on its own Yandex listing. Phone appears on about 99% of records.

Is this GDPR compliant? It collects business contact details published publicly by the businesses themselves. You are responsible for having a lawful basis for contacting them.

Part of the Russia and CIS local business suite

Cross-check the same city against 2GIS for a second source, which also reaches Central Asia, Cyprus and the UAE beyond Yandex's footprint. For the retail side of the same market, Ozon pulls live marketplace pricing.

Use from Claude, ChatGPT and any MCP agent

https://mcp.apify.com/?tools=themineworks/yandex-maps-search
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/yandex-maps-search').call({
queries: ['кафе'],
city: 'moscow',
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Keywords: Yandex Maps scraper, Russia business listings, CIS lead generation, business phone number scraper Russia, Yandex Maps ratings scraper, franchise site selection Russia, company registry matching Russia