Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Yandex Maps Scraper icon

Yandex Maps Scraper

Scrape Yandex Maps business listings: name, address, coordinates, rating, reviews, phone, website and hours. No API key. $0.40 per 1,000 places.

5 from 1 review on Apify 4,865 runs on Apify $0.0004 per place ($0.4 / 1,000)
Run this in the cloudRun on Apify →

Maps & Local Lead Generation

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust searchQueries, city, startUrls (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0004 per place = $0.4 per 1,000

You are charged forWhenPrice
Place returnedCharged once per unique Yandex Maps place returned. Duplicate listings, sample rows, diagnostics, captchas and empty runs are never charged.$0.0004

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-08, and they are what you are actually charged.

Inputs

FieldWhat it doesType
searchQueriesWhat to look for on Yandex Maps, for example "кафе", "стоматология", "coffee". One search per line. Yandex indexes Russian-language names most completely, so local-language terms return more results.array
cityCity to search in. English, Russian or local spelling all work ("Moscow", "Москва", "Almaty", "Istanbul"). You can also paste a numeric Yandex geo id such as 213. A name Yandex does not know as a place stops the run before any search. Leave empty to let Yandex pick the map view.string
startUrlsOptional. Paste Yandex Maps search pages (https://yandex.ru/maps/213/moscow/search/кафе/) or single organisation pages (https://yandex.ru/maps/org/osteria_mario/1769547913/). Works alongside the fields above.array
maxItemsHard cap on unique places returned across all searches (1-5000). Duplicates are removed before this cap is applied, so you get the number you asked for. You are charged per place returned.integer
minRatingOnly places Yandex rates at least this high. Yandex applies it to the search itself, so places under it never reach your dataset and are never charged. Places with no rating are left out too. It applies to searches, not to single organisation pages.string
latitudeSearch around a point instead of a whole city. Example: 55.7558string
longitudeUsed together with latitude. Example: 37.6173string
radiusKmOnly places within this distance of the latitude and longitude above, measured from each place's own map position. Yandex searches that area, and when it runs short it adds places from just outside it; those are left out and not charged, so a small radius can return fewer places than you asked for. Applies to search terms, not to pasted search links.number
zoomHas no effect on which places come back. Yandex searches around the point you set whatever the zoom level, so a higher number does not make the search tighter. Set a radius for that.integer
languageLanguage for names, categories and addresses. Yandex Maps is a Russian product: Russian is the most complete, and some fields stay in Russian whatever you pick.string

What you get

A structured dataset — each result includes fields like:

namecategoryPrimaryaddressphonewebsiteratingreviewCountopeningHoursTextlatitudelongitudeurlplaceId

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

1 ready-to-run use cases

Yandex Maps Business Search by City

Find businesses in any Russian city on Yandex Maps. Get name, address, rating, review count, phone and website.

Related tools in Maps & Local Lead Generation

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Google Maps Scraper iconMaps & Local Lead Generation

Google Maps Scraper

Scrape Google Maps places and reviews. Business name, category, address, rating, GPS coordinates and place ID. $0.27 per 1,000 rows.

28 use cases

Google Reviews Monitor — Multi-Location Alerts & Reports iconMaps & Local Lead Generation

Google Reviews Monitor — Multi-Location Alerts & Reports

Watch Google reviews for every location on a schedule. Get only the new ones, rating-drop alerts in Slack and AI reply drafts. $1.00 per 1,000 reviews.

4 use cases

2GIS Places Scraper iconMaps & Local Lead Generation

2GIS Places Scraper

Scrape 2GIS places: name, category, address, phone, email, website, rating and hours. Russia, the CIS, the UAE and Cyprus only. $0.50 per 1,000 places.

Ready to run — no setup

2GIS Reviews Scraper iconMaps & Local Lead Generation

2GIS Reviews Scraper

Scrape 2GIS reviews by place URL or city: rating, text, author, date, photos, owner replies. No API key. $0.50 per 1,000.

Ready to run — no setup

Yelp Scraper iconMaps & Local Lead Generation

Yelp Scraper

Scrape Yelp businesses and reviews through Yelp's official Fusion API. Get rating, review count, price, phone, address, GPS and text. Bring your own key.

Ready to run — no setup

Google Maps Reviews Scraper iconMaps & Local Lead Generation

Google Maps Reviews Scraper

Scrape Google Maps reviews: rating, full text, exact date, reviewer, owner reply and photos. Set a date cutoff. No API key. $0.27 per 1,000.

1 use cases

See all Maps & Local Lead Generation →

Yandex Maps Scraper: businesses from Yandex Maps with phones, hours and coordinates

Type a search and a city, the way you would into Yandex Maps, and get one row per business: name, category, full address, coordinates, rating, review count, phone, website, social links and opening hours. Paste organisation or search URLs instead if you already have them.

The directory behind Yandex Maps is strongest where Yandex is strongest: Russia, Kazakhstan, Belarus, Turkey and the rest of the CIS. It is a Russian product, so Russian-language search terms return more places than English ones, and some fields come back in Russian whatever response language you pick.

InputSearch terms plus a city, or Yandex Maps URLs
OutputOne row per place
Ceiling5,000 places per run
Account neededNone, and no API key
Price$0.40 per 1,000 places, flat on every plan

🗺️ What Yandex Maps Scraper does

Two ways in, and they work together in one run.

Search. A term and a city, like кафе in Moscow, and it pages through the results until it reaches your limit or the list stops producing new places. Give it coordinates instead and it searches around that point rather than a whole city, and add radiusKm to keep only the places that close to it. Set a minimum rating and Yandex leaves out every place under it before anything reaches your dataset.

URLs. Paste a Yandex Maps search page or a single organisation page and it reads that.

The same business found by two of your searches is written once and counted once. Duplicates are removed before your maxItems cap is applied, so you get the number you asked for.

📥 What you give it

{
  "searchQueries": ["кафе", "стоматология"],
  "city": "Moscow",
  "maxItems": 50,
  "language": "ru_RU"
}
FieldDefaultWhat it is
searchQueriesbox holds кафеOne search per line. Local-language terms return more places than English ones.
citybox holds MoscowEnglish, Russian or local spelling all work: Moscow, Москва, Almaty, Istanbul. A Yandex region id such as 213 works too. A name Yandex does not know as a place stops the run before any search.
startUrlsemptyYandex Maps search pages or single organisation pages. An organisation id alone works as https://yandex.ru/maps/org/<id>/.
maxItems50Unique places across every search, up to 5,000. You are charged per place returned.
minRatingany rating3.0, 3.5, 4.0, 4.5, 4.7 or 4.9. Only places Yandex rates at least that high. Places with no rating are left out. Applies to searches, not to single organisation pages.
latitude, longitudeemptySearch around a point instead of a city. Both are needed.
radiusKmempty0.1 to 50. With latitude and longitude, only places within that many km of the point, measured from each place's own coordinates. Yandex tops up a thin area with places from just outside it, and those are left out uncharged, so a small radius can return fewer places than maxItems. Applies to search terms, not to pasted search links.
zoom13Has no effect on which places come back. Yandex searches around the point at any zoom. Use radiusKm to set an edge.
languageautomaticru_RU, en_US, tr_TR, uk_UA, kk_KZ, uz_UZ or az_AZ. Russian is the most complete.
proxyConfigurationleave it aloneOptional. Only needed if you want requests to come from your own servers.

Run it with everything empty and you get one labelled sample row.

📤 What you get back

A real place row from a recent run, with the raw hours array trimmed:

{
  "placeId": "19464848293",
  "name": "Рыба моя",
  "categoryPrimary": "Ресторан",
  "categories": ["Ресторан", "кафе", "бар"],
  "address": "Москва, Славянская площадь, 2",
  "addressDetail": "Рыба моя, этаж -1",
  "country": "Россия",
  "city": "Москва",
  "street": "Славянская площадь",
  "postalCode": "109012",
  "latitude": 55.753391,
  "longitude": 37.633956,
  "phone": "+74957846858",
  "phones": ["+74957846858"],
  "website": "https://rybamoya.ru/",
  "socialProfiles": [{"type": "telegram", "url": "https://t.me/perelmanrestaurants"}],
  "rating": 4.9,
  "ratingCount": 6097,
  "reviewCount": 2726,
  "openingHoursText": "Mon: 12:00-00:00; Tue: 12:00-00:00; Wed: 12:00-00:00; ...",
  "openingHoursRaw": "ежедневно, 12:00 PM–12:00 AM",
  "isOpenNow": false,
  "priceRange": {"text": "от 3000 ₽", "lower": 3000, "upper": 3500, "currency": "₽"},
  "nearestMetro": {"name": "Китай-город", "distanceMeters": 36},
  "verifiedOwner": true,
  "status": "open",
  "url": "https://yandex.com/maps/org/ryba_moya/19464848293/",
  "searchQuery": "кафе",
  "position": 1,
  "scrapedAt": "2026-09-21T01:46:00.148Z"
}
FieldWhat it is
placeIdYandex's organisation id. It is the dedupe key here and the key to join on between runs.
phone, phonesThe numbers as Yandex holds them. Many listings have none.
website, websitesTracking parameters are stripped, so you get the clean address.
openingHoursTextNormalised to Monday through Sunday. openingHoursRaw keeps Yandex's own wording, and openingHours the raw arrays.
priceRangeYandex's own band, with the number and currency pulled out where it prints them.
nearestMetroStation name and distance in metres, on cities that have one.
verifiedOwner, statusWhether the owner claimed the listing, and whether the place is open, closed or moved.
rating, ratingCount, reviewCountThe score, how many ratings it came from, and how many wrote text.
positionWhere the place sat in that search's results.
distanceKmOnly with radiusKm: how far the place is from your point, in km.

🧾 Reading the output

Three kinds of row can land in your dataset.

RowHow to spot it
A placeIt has a placeId and a name
The sample rowWritten only when the input was empty
A diagnosticIt carries an errorCode

Diagnostic rows are never charged.

CodeWhat it means
CITY_NOT_FOUNDYandex could not place that city, knows several places by that name, or does not know the region id. The run stops before searching, so nothing is spent on the wrong place.
BAD_INPUTminRating is not one of the values above, or radiusKm is out of range, has no point to measure from, or came with pasted search links. The run stops before searching.
FILTER_NOT_APPLIEDYandex did not confirm the minimum rating on a page, so the rest of that search was skipped and not charged.
BAD_URLThat entry is not a Yandex Maps address. The other jobs carry on.
NOT_FOUND, API_ERRORThat organisation page is gone, merged, or would not answer.
NO_RESULTS, NO_RESULTS_BLOCKThe search came back with nothing new.
CAPTCHAYandex put a check in front of that search instead of answering.
HTTP_ERROR, NO_STATEYandex was unreachable, or the page did not carry the data it normally does.

▶️ How to run it

1. Open Yandex Maps Scraper and click Try for free. 2. Put your searches into Search terms. Russian terms find more than English ones, even in Turkey and Kazakhstan. 3. Type the City, spelled however you like. 4. Set Maximum places low for the first run, then click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$0.40 per 1,000 places. Flat on every Apify plan, no volume tiers.

One row is one place. A business that turns up under two of your searches is charged once. The sample row, every diagnostic row, a search that finds nothing, places under your minimum rating and places outside your radius are not charged.

💡 What people use it for

  • Building a local lead list with phone numbers and websites already on the row.
  • Mapping how many branches a chain has in a city, with coordinates ready to plot.
  • Checking rating and review counts across a category before choosing a location.
  • Finding which listings have no claimed owner, through verifiedOwner.
  • Joining Yandex data to your own records on placeId, on a schedule.

🚧 What it does not do

  • No review text and no photos. This returns the listing, not the reviews. There is a separate

actor for those.

  • No email addresses. Yandex does not publish them on a listing.
  • Zoom does not tighten a point search. Yandex searches around the point at any zoom level.

radiusKm is what sets an edge.

  • Filters set inside a pasted Yandex link are not carried over. Use minRating for the rating.
  • Some fields stay in Russian whatever language you pick. Category names especially.
  • Result totals are Yandex's estimate, not a count you can trust.
  • Paging stops when the results do. Yandex keeps serving pages past the end of a list, so the

run stops after two pages with nothing new rather than collecting repeats.

  • A search Yandex will not answer ends that job with an uncharged row. Re-running is worth one

try.

  • Phone and website are only there when the listing has them, which for small businesses is

often not the case.

  • Rows are a snapshot. Hours change, places close, ratings move.

🧭 Which maps scraper do you need?

If you wantUse
Businesses and their details from Yandex MapsThis one
The reviews written about a placeYandex Maps Reviews Scraper
Where a site ranks on Yandex searchYandex Search Engine Scraper
Products and prices on Yandex MarketYandex Market Scraper
The same job on Google MapsGoogle Maps Scraper

❓ Questions people ask

Do I need a Yandex account or an API key? No. Nothing to apply for and no quota.

Should I search in Russian or English? Russian, wherever you can. Yandex indexes Russian names most completely, and that holds in Almaty and Istanbul too.

Can I search a neighbourhood instead of a city? Yes. Put in latitude and longitude, and radiusKm for how far out to go. Without a radius there is no edge: around the Kremlin, 14 of the first 24 cafes were within 1 km and the farthest was 2.5 km out. With radiusKm at 1, every row is inside 1 km.

Will I get the same place twice? Not within a run. Places are deduplicated on placeId before your limit is applied.

Can I run it on a schedule? Yes. placeId is stable, so diffing hours, ratings or closures between runs is a join.

Is scraping Yandex Maps legal? These are public business listings. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the search term, the city and the run ID. The errorCode on the diagnostic row usually names the problem on its own.