Yandex Maps Scraper: Businesses, Phones & Ratings
Pricing
from $0.40 / 1,000 businesses
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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/"}
| Field | Description |
|---|---|
🏢 name, category, categories | Business name and every category Yandex assigns it |
📍 address, short_address, postal_code, country | Full and short postal address |
🌐 longitude, latitude | Coordinates, named explicitly so there is no lat/lon swap |
📞 phone, phones | Primary number plus every other number listed |
🔗 website, social_links | Site and social profiles (Telegram, VK, WhatsApp, YouTube) |
⭐ rating, rating_count, review_count | Star rating and how many people rated and reviewed |
🕒 working_hours, currently, status | Opening hours, whether it is open right now |
💰 average_bill | Typical spend band, on hospitality listings |
🚇 nearest_metro, nearest_metro_distance | Closest metro station and walking distance |
🧾 legal_entity, tax_id | Registered company name and Russian INN, where published |
📣 is_advert | Whether this was a paid placement |
The legal entity and tax ID are worth calling out
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
| Event | Price | You pay when |
|---|---|---|
| Business | $0.0004 | A business record lands in your dataset |
| Actor Start | $0.005 | The 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
- Run once with the input you want repeated, then click Save as a task.
- Turn on Monitor mode so later runs return only newly listed businesses.
- In the Apify Console go to Schedules → Create 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