Yandex Maps Scraper
Pricing
from $5.00 / 1,000 place scrapeds
Yandex Maps Scraper
Scrape Yandex Maps businesses with names, contacts, ratings, opening hours and reviews. Search by query, category and city, or paste place URLs.
Pricing
from $5.00 / 1,000 place scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
What is Yandex Maps Scraper?
Yandex Maps Scraper extracts public business listings from Yandex Maps into a clean dataset, one row per place. Each row returns the business name, primary and secondary categories, full address, coordinates, phone numbers, website, rating, review count, opening hours, the canonical Yandex Maps URL and the stable Yandex organisation ID. It is built for B2B lead generation teams, local-market researchers and AI agents working in Russia, Turkey, the CIS and Central Asia, where Yandex Maps carries deep local coverage.
Why teams use this Yandex Maps scraper
- Three ways to target places. Send a free-text
searchQuery, acategorypluscity, or paste Yandex Maps search and organisation URLs instartUrls. - Contact-ready rows.
phone,phonesandwebsitesit next toaddressandcoordinates, so a row can go straight into a CRM or a map. - Reputation signals included.
ratingandreviewCountlet you rank competitors or filter for well-reviewed businesses. - Regional coverage.
languageswitches betweenru_RU(yandex.ru),en_US(yandex.com) andtr_TR(yandex.com.tr). - Optional review text. Turn on
includeReviewsto attach up tomaxReviewsPerPlacereviews to each place. - Stable IDs for deduplication.
yandexIdstays the same across runs, which makes merging and monitoring simple.
Best fit and related Actors
Best fit for local lead lists and market maps in Russian, Turkish and Central Asian cities: coffee shops in Moscow, dentists in Istanbul, gyms in Almaty, hotels in Sochi. Use it when your market is covered by Yandex Maps and you want the business record itself.
- For the same job on worldwide Google Maps data, use Google Maps Leads Scraper instead.
- When you need deep review history for a list of places, pass the
urlvalues to Yandex Maps Reviews Scraper. - To enrich the
websitecolumn with emails and social profiles, then pass the websites to Bulk Website Contact Extractor.
Example workflow: from a city query to a call list
A sales team selling coffee equipment starts with the query coffee Moscow and maxPlaces set to 200. The dataset returns each café's name, address, phone, website, rating and reviewCount. They sort by reviewCount to find the busiest cafés, export the top rows to a spreadsheet for the call team, then feed the website column into a contact extractor for emails. A weekly schedule with the same input surfaces new cafés by comparing yandexId values against last week's export.
How to scrape Yandex Maps
- Enter a Search query such as
dentist Istanbul, or fill Category and City, or paste Start URLs. - Set Max places, choose Language / region, and decide whether to Include reviews.
- Click Start, then export the dataset as JSON, CSV or Excel, or read it through the API.
Input
{"searchQuery": "coffee Moscow","maxPlaces": 50,"includeReviews": false,"maxReviewsPerPlace": 20,"language": "ru_RU"}
Category and city targeting:
{"category": "restaurant","city": "Saint Petersburg","maxPlaces": 100,"language": "ru_RU"}
| Field | Type | What it controls |
|---|---|---|
searchQuery | string | Free-text search, for example coffee Moscow or dentist Istanbul. |
category | string | Business type, combined with city when no searchQuery is set. |
city | string | City or area for the category search. |
startUrls | array | Yandex Maps search URLs (.../maps/?text=...) or organisation URLs (.../maps/org/<id>/). |
maxPlaces | integer | Unique places to return across all queries and URLs. Default 50, up to 1000. |
includeReviews | boolean | Attach review rows to each place. Default false. |
maxReviewsPerPlace | integer | Reviews per place when includeReviews is on. Default 20. |
language | string | ru_RU, en_US or tr_TR. Default ru_RU. |
proxyConfiguration | object | Apify Proxy settings. Residential proxy is the default. |
Output
One dataset row per business.
| Field | What it contains |
|---|---|
yandexId | Stable Yandex organisation ID |
name | Business name |
category, categories | Primary category and the full category list |
description | Short location line shown on the card |
address | Full address |
coordinates | { lat, lng } |
phone, phones | Primary phone and all listed phones |
website | Website URL as listed on Yandex Maps |
socialLinks | Social profile links when the listing shows them |
rating, reviewCount | Average rating and number of reviews |
hours | Opening hours as one readable string |
url | Canonical Yandex Maps organisation URL |
reviews | Review entries when includeReviews is on |
searchQuery, scrapedAt | The query that found the place and the collection time |
{"yandexId": "171853587338","name": "Surf Coffee","category": "Кофейня","categories": ["Кофейня"],"description": "Пресненская наб., 2","address": "Москва, Пресненская набережная, 2","coordinates": { "lat": 55.748856, "lng": 37.538409 },"phone": "+7 (965) 229-97-23","phones": ["+7 (965) 229-97-23"],"website": "https://surfcoffee.ru/","socialLinks": [],"rating": 5,"reviewCount": 162,"hours": "пн-чт 09:00–22:00; пт 09:00–23:00; сб 10:00–23:00; вс 10:00–22:00","url": "https://yandex.ru/maps/org/surf_coffee/171853587338/","searchQuery": "coffee Moscow","reviews": null,"scrapedAt": "2026-10-01T21:01:52.892Z"}
Category names, addresses and hours come back in the language of the selected Yandex domain.
Pricing
This Actor uses Pay per event plus Apify platform usage. You are charged one Place scraped event for each business saved to the dataset, one Review scraped event for each review when includeReviews is on, and one Actor Start event per run. Platform usage, including the residential proxy traffic, is billed separately by Apify.
Worked example in words: a run for fifty cafés with reviews off costs fifty Place scraped events plus one Actor Start event, plus platform usage. The same run with five reviews per place adds two hundred fifty Review scraped events. Check the live Pricing tab on this page for current event prices, and set a maximum charge per run to cap spend.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~yandex-maps-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQuery": "dentist Istanbul", "language": "tr_TR", "maxPlaces": 50}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/yandex-maps-scraper").call(run_input={"category": "gym","city": "Almaty","maxPlaces": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["phone"], item["rating"])
Use with AI agents (MCP)
Connect the Actor to Claude, ChatGPT, Cursor or any MCP client through Apify MCP and ask in plain language:
Find 20 gyms in Almaty on Yandex Maps. Return name, address, phone, website and rating, sorted by review count.
The agent runs the Actor with searchQuery or category plus city, reads the rows back with the dataset tool, and can cite each place by its url and scrapedAt. Keep maxPlaces close to what you need so cost stays predictable; each saved place is one billed event.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A broad business type | Combine type and place, for example coffee Moscow | Focused, relevant rows |
| A large city target | Split into district or sub-category queries | Wider coverage across several listings |
| Turkish market | Set language to tr_TR | Results from yandex.com.tr with local names |
| A fixed list of businesses | Paste organisation URLs in startUrls | Exactly those places, one row each |
| Fast, lean lead lists | Keep includeReviews off | Contact rows at the lowest cost |
| Clean website links | Strip tracking parameters from website before outreach | Tidy CRM records |
Builder's note
I built this Actor around the data Yandex Maps' own web app loads while you browse, rather than reading page markup, so rows stay structured and consistent as the interface changes. I designed the input around how people actually search local markets: a quick free-text query, a category plus city, or a pasted link. I found that reviews are a separate decision from leads, so review collection is opt-in and billed on its own event.
FAQ
Do I need a Yandex account or cookies?
No account is needed. The Actor reads public Yandex Maps listings.
Which countries work best?
Russia, Turkey, Kazakhstan, Belarus, Uzbekistan and other markets where Yandex Maps has strong local coverage.
How do I get more places than one listing shows?
Run several narrower queries, for example by district or sub-category, and merge the results on yandexId.
In which language is the data returned?
In the language of the selected domain: Russian for ru_RU, English for en_US and Turkish for tr_TR. Review text stays in its original language.
Responsible use
This Actor collects publicly available business information from Yandex Maps. Use the data in line with Yandex's terms of service and applicable laws, including the GDPR and Russian Federal Law No. 152-FZ where relevant. Use contact data for legitimate business purposes and honor opt-out requests. Yandex is a trademark of its owner; this independent Actor is not affiliated with or endorsed by Yandex.