Yandex Maps Scraper avatar

Yandex Maps Scraper

Pricing

from $5.00 / 1,000 place scrapeds

Go to Apify Store
Yandex Maps Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

1

Monthly active users

10 days ago

Last modified

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, a category plus city, or paste Yandex Maps search and organisation URLs in startUrls.
  • Contact-ready rows. phone, phones and website sit next to address and coordinates, so a row can go straight into a CRM or a map.
  • Reputation signals included. rating and reviewCount let you rank competitors or filter for well-reviewed businesses.
  • Regional coverage. language switches between ru_RU (yandex.ru), en_US (yandex.com) and tr_TR (yandex.com.tr).
  • Optional review text. Turn on includeReviews to attach up to maxReviewsPerPlace reviews to each place.
  • Stable IDs for deduplication. yandexId stays the same across runs, which makes merging and monitoring simple.

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.

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

  1. Enter a Search query such as dentist Istanbul, or fill Category and City, or paste Start URLs.
  2. Set Max places, choose Language / region, and decide whether to Include reviews.
  3. 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"
}
FieldTypeWhat it controls
searchQuerystringFree-text search, for example coffee Moscow or dentist Istanbul.
categorystringBusiness type, combined with city when no searchQuery is set.
citystringCity or area for the category search.
startUrlsarrayYandex Maps search URLs (.../maps/?text=...) or organisation URLs (.../maps/org/<id>/).
maxPlacesintegerUnique places to return across all queries and URLs. Default 50, up to 1000.
includeReviewsbooleanAttach review rows to each place. Default false.
maxReviewsPerPlaceintegerReviews per place when includeReviews is on. Default 20.
languagestringru_RU, en_US or tr_TR. Default ru_RU.
proxyConfigurationobjectApify Proxy settings. Residential proxy is the default.

Output

One dataset row per business.

FieldWhat it contains
yandexIdStable Yandex organisation ID
nameBusiness name
category, categoriesPrimary category and the full category list
descriptionShort location line shown on the card
addressFull address
coordinates{ lat, lng }
phone, phonesPrimary phone and all listed phones
websiteWebsite URL as listed on Yandex Maps
socialLinksSocial profile links when the listing shows them
rating, reviewCountAverage rating and number of reviews
hoursOpening hours as one readable string
urlCanonical Yandex Maps organisation URL
reviewsReview entries when includeReviews is on
searchQuery, scrapedAtThe 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 ApifyClient
client = 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 situationHelpful actionExpected outcome
A broad business typeCombine type and place, for example coffee MoscowFocused, relevant rows
A large city targetSplit into district or sub-category queriesWider coverage across several listings
Turkish marketSet language to tr_TRResults from yandex.com.tr with local names
A fixed list of businessesPaste organisation URLs in startUrlsExactly those places, one row each
Fast, lean lead listsKeep includeReviews offContact rows at the lowest cost
Clean website linksStrip tracking parameters from website before outreachTidy 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.