Yandex Maps Scraper - Places, Phones & New Business Monitor avatar

Yandex Maps Scraper - Places, Phones & New Business Monitor

Pricing

from $4.50 / 1,000 place returneds

Go to Apify Store
Yandex Maps Scraper - Places, Phones & New Business Monitor

Yandex Maps Scraper - Places, Phones & New Business Monitor

For lead lists and local market research: Yandex Maps (Яндекс Карты) places by category and city with name, address, phones, website, hours and rating - only places that really match your category, city and street, not other trades or nearby towns. Monitor mode returns only new or changed places.

Pricing

from $4.50 / 1,000 place returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

23 days ago

Last modified

Share

Get places from Yandex Maps (Яндекс Карты, yandex.ru/maps) by business type and city: name, categories, full address with street, house and postal code, coordinates, phones, website, social links, opening hours by day, status, rating, number of ratings and reviews, and whether the place pays Yandex for placement. Search by what you would type into Yandex Maps (стоматология, кафе, автосервис, dentist…) plus a city, paste a Yandex Maps search URL, or give place URLs or IDs.

Only places that really match. Yandex Maps mixes other trades and nearby towns into its results (a plain search for dentists also shows clinics in Mytischi and Krasnogorsk outside Moscow; a street name also matches a boulevard with a similar name). This Actor checks every place and, by default, returns and charges only places whose name or categories match the search term, whose city is the Location you gave, and whose address contains the street or postal code you asked for. Each row says how it matched (matchedBy, locationMatch, addressMatch), and a free row says how many places were left out, with examples.

Monitor mode reads the same search again and returns only what changed: places that appear for the first time, and places whose name, phones, website, address, opening hours, status or categories changed (with the old values). Every change is confirmed on the place's own page before it is returned, so a result page that shows something different for a moment is not sold as a change.

Unofficial. Reads public Yandex Maps pages only, without logging in. Not affiliated with Yandex.

What you get

FieldMeaning
placeId, urlYandex Maps place ID (organization ID) and the place page
name, categoriesName and Yandex categories (for example Стоматологическая клиника, детская стоматология)
address, street, house, locality, area, postalCode, country, addressDetailsFull address and its parts (addressDetails is a note such as a floor)
latitude, longitudeCoordinates
phone, phonesFirst phone, and all phones as {number, display, type, mobile}; mobile is true / false for Russian and Kazakh +7 numbers and null for other countries
website, websitesWebsite(s) with Yandex ad tracking (yclid, utm_*) removed
socialLinksTelegram, VK, WhatsApp and other links shown on the place card
hoursText, hours, openNowOpening hours as shown, and by day: {"mon": ["09:00-21:00"], …, "sun": []} ([] = closed that day, 00:00-24:00 = open 24 hours)
businessStatusYandex status of the place, for example open
rating, ratingCount, reviewCountRating out of 5 (one decimal), number of ratings, number of text reviews
sponsoredtrue when the place pays Yandex for placement in the results
verifiedOwnertrue when Yandex marks the owner as verified
matchedByname or category (the search term is in the name or a category name), or yandex-rubric (the place has a category Yandex itself chose for the search term)
locationMatchcity (the Location is the place's city or district) or region (a region name found in the address)
addressMatchThe addressContains entry the address matched
page, positionOnPageWhere the place was in the Yandex Maps results
changeType, changedFields, previousMonitor mode only: first-check, new-in-results or changed, which fields changed, and their old values

Rows that explain something (no results, places left out as not matching, nothing changed, a place ID that does not exist, a check page, a run that reached its maximum charge) have a status other than ok and a note. They are never charged.

Input

InputWhat it does
searchQueriesWhat you would type into Yandex Maps: стоматология, кафе, автосервис, dentist, a chain name. Empty together with searchUrls and placeUrls = example search стоматология in Казань
locationCity, district or region: Казань, Москва, Санкт-Петербург, Almaty, Московская область. Added to each search term, and used to keep only places in that city
addressContainsKeep only places whose address contains one of these, word for word: Тверская улица, проспект Мира, or a postal code 420111 (exact)
searchUrlsYandex Maps search pages copied from the browser (https://yandex.ru/maps/213/moscow/search/кафе/, https://yandex.ru/maps/?text=кафе&ll=…&z=…)
placeUrlsPlace pages (https://yandex.ru/maps/org/<name>/<id>/) or place IDs, up to 100 per run
languageauto (default: Russian when the input has Cyrillic), ru or en
onlyMatchingOn (default): only places that match the search term, location and address filter. Off: everything Yandex Maps shows, with the match columns filled
maxResultsPerSearchMost places per search, 1 to 500 (default 50)
maxPagesResults pages per search, 25 places a page, 1 to 20 (default 4)
includeSponsoredReturn places that pay for placement too (default on), marked sponsored
onlyNewMonitor mode: only new places and changed details
includeRatingChangesMonitor mode: a rating change also counts (default off)
watchNameSeparate monitor memories, for example one per client
resetMonitoringStateForget what this monitor has seen and start again

Up to 10 searches (search terms plus search URLs) and 100 places by URL/ID per run.

Tips

  • Write search terms and the city in Russian for places in Russia (стоматология + Москва). In our tests the English dentist Moscow returned only 1 place on the first Yandex Maps page, while стоматология Москва returned 25.
  • Write the full city name (Санкт-Петербург, not СПб), in the same language as language.
  • A city name matches the place's city only. To cover a whole region, write the region (Московская область, Республика Татарстан).
  • addressContains is strict on purpose: Тверская улица does not match Тверской бульвар or 1-я Тверская-Ямская улица.

Monitor mode

  1. First run: returns up to maxResultsPerSearch places (first-check) and remembers them.
  2. Next runs: read the same pages and return only
    • new-in-results: a place this monitor has not seen in these results before. It may be newly opened, or it may have moved into the pages this Actor reads; Yandex Maps does not show an opening date, so this Actor does not invent one;
    • changed: the name, phones, website, address, opening hours, status or categories differ from what this monitor remembered, and the place's own page confirms it (changedFields and previous say what changed). Ratings are watched only with includeRatingChanges; the number of ratings is never watched.
  3. If a results page cannot be read, the monitor judges nothing for that search: nothing is returned, remembered or charged, and the next run checks again.
  4. If a run reaches your maximum charge, the places it could not return are returned by the next run.

Yandex Maps rotates places that pay for placement through the first results page from one request to the next. In our test (автосервис in Казань, 2 pages, 4 checks) every place that looked new after the first check was such an advertised place from further down the list. So in monitor mode an advertised place seen for the first time is remembered but not returned as new; its later changes are still returned. For the same reason, a place that drops out of the results is not reported: disappearing from a page is not a reliable sign of closing.

Phone numbers and personal data

Phones, websites and social links are returned exactly as the business shows them on its public Yandex Maps card. Some small businesses list a personal mobile number; such numbers are marked mobile: true so you can treat them separately. This Actor does not return anything Yandex does not show on the card, and it drops the advertiser's legal name and tax number that Yandex keeps in the page data. If you contact businesses, follow the rules that apply to you (for example, Russian advertising law requires prior consent for advertising calls and messages).

Pricing

Pay per event:

  • Run start: one small fee per run (not per page and not per GB of memory).
  • Place returned: per place row.

Places left out as not matching and all explanation rows are free. A search that finds nothing is not charged at all. In monitor mode, the run start fee is the price of the check itself, so it is charged even when nothing changed. Set a maximum charge per run and the Actor will not start a run that cannot return at least one place.

Reliability

  • Reads the plain Yandex Maps pages; no browser. Measured 2026-09-25 from Apify's servers (3 pages × 5 times): 15 of 15 answered without a proxy, 14 of 15 through datacenter proxies and 13 of 15 through residential proxies (the misses were 30-second timeouts), 0 check pages.
  • In 18 test runs of this Actor on 2026-09-25 (Kazan, Moscow, Saint Petersburg; 1 to 6 pages each), every page was read on the first request without a proxy, and a run took 5 to 25 seconds.
  • If Yandex refuses an IP address (403, 429, 5xx) or times out, the Actor asks again from other datacenter IPs, then from a residential IP outside Russia.
  • If Yandex shows its check page ("Are you not a robot?"), the Actor does not solve or bypass it: it stops, returns a free row and remembers nothing.
  • robots.txt of yandex.com is read on every run and every URL is checked against it before it is requested.

Example output

{
"status": "ok",
"placeId": "137241302033",
"name": "Стоматология Хаят смайл",
"categories": ["Стоматологическая клиника", "детская стоматология"],
"address": "Республика Татарстан (Татарстан), Казань, улица Галактионова, 3",
"street": "улица Галактионова",
"house": "3",
"locality": "Казань",
"postalCode": "420015",
"latitude": 55.793206,
"longitude": 49.126781,
"phone": "+79011439356",
"phones": [{ "number": "+79011439356", "display": "+7 (901) 143-93-56", "type": "phone", "mobile": true }],
"website": "https://hayat-smile.ru/",
"socialLinks": [{ "type": "telegram", "url": "https://t.me/prestigedent" }],
"hoursText": "ежедневно, 9:00 AM–9:00 PM",
"hours": { "mon": ["09:00-21:00"], "tue": ["09:00-21:00"], "wed": ["09:00-21:00"], "thu": ["09:00-21:00"], "fri": ["09:00-21:00"], "sat": ["09:00-21:00"], "sun": ["09:00-21:00"] },
"businessStatus": "open",
"rating": 5,
"ratingCount": 752,
"reviewCount": 625,
"sponsored": true,
"url": "https://yandex.com/maps/org/hayat_smile_dentistry/137241302033/",
"matchedBy": "name",
"locationMatch": "city",
"page": 1,
"positionOnPage": 3,
"searchQuery": "стоматология",
"searchLocation": "Казань"
}

Support

Questions, a search that returns something unexpected, or a field you need: open an issue in the Issues tab of this Actor. Include the run ID.