2gis Places Scraper
Pricing
from $2.00 / 1,000 results
2gis Places Scraper
Извлекайте данные из тысяч мест и предприятий на 2ГИС, включая номера телефонов, соцсети, сайты. отзывы, фотографии и многое другое. Экспортируйте данные, запускайте через API, планируйте и отслеживайте запуски или интегрируйте с другими инструментами.
Pricing
from $2.00 / 1,000 results
Rating
5.0
(7)
Developer
Mikhail Mamaev
Actor stats
13
Bookmarked
432
Total users
48
Monthly active users
18 days ago
Last modified
Categories
Share
Extract business and place data from 2GIS in minutes. Use it to build lead lists, research local markets, compare competitors, or collect places inside a specific area.
What this Actor gives you
- Business names, addresses, coordinates, categories, working hours, ratings, and 2GIS links
- Optional contacts such as phone numbers, emails, websites, and social links
- Optional reviews, photos, and videos for each place
- An export-ready dataset plus an interactive HTML map
Why people use it
- Build local lead lists for sales and outreach
- Track competitors by city, district, or custom search area
- Research markets and spot gaps in local coverage
- Create or enrich business directories
- Monitor newly opened places with filters and sorting
How to use it
- Enter one or more search terms such as
restaurant,dentist, orcar wash. - Add a location like
Moscow, or use a custom GeoJSON area if you want precise boundaries. - Choose how many places you want per search and run the Actor.
You can also search by 2GIS categories, apply built-in filters, sort results, and enrich places with contacts, reviews, or media.
Input examples
Quick start
{"query": ["restaurant", "coffee shop"],"locationQuery": "Moscow","maxItems": 100}
Enriched results
{"query": ["dentist"],"locationQuery": "Almaty","maxItems": 50,"includeContacts": true,"maxReviewsPerPlace": 20,"reviewSortBy": "friends","reviewRatings": "positive","maxMediaPerPlace": 10,"sortBy": "rating"}
Configuration
🔎 Basic search
| Input | What it does |
|---|---|
query | Your search terms. Using a few different terms can broaden coverage. |
locationQuery | A city, district, street, metro station, or any other place name. |
maxItems | How many places to save for each search term. Use 0 for no limit. |
domain | Choose from 19 country-specific 2GIS domains, or leave it on Auto. |
language | Select from 13 supported languages. |
📞 Contact details
| Input | What it does |
|---|---|
includeContacts | Add phones, emails, websites, and social links for each place. |
⭐ Reviews
| Input | What it does |
|---|---|
maxReviewsPerPlace | Add reviews for each place. Use 0 to skip reviews. |
reviewSortBy | Choose how reviews are sorted: trust or friends (newest). |
reviewRatings | Collect all rated reviews, or only negative or positive ones. |
includeUnratedReviews | Add unrated reviews when reviewRatings is set to all. |
includeReviewerData | Include public reviewer profile data when it is available. |
🖼️ Photos and videos
| Input | What it does |
|---|---|
maxMediaPerPlace | Add extra photos and videos. Use 0 to skip media. |
includePhotoAuthors | Include photo author information when 2GIS provides it. |
🧭 Filters and categories
| Input | What it does |
|---|---|
rubricIds | Search inside more than 1,700 built-in 2GIS categories. |
filterHasGoods, filterHasSite, filterHasPhotos | Keep only places with prices, a website, or photos. |
filterHomeDelivery, filterTakeaway, filterPaymentCard, filterWifi | Filter by delivery, takeaway, card payment, and Wi-Fi. |
filterAvgPriceMin / filterAvgPriceMax | Restrict results by average price range. |
filterCreatedRecently, filterRating | Focus on newly added places or only places above a chosen rating threshold. |
🔃 Sorting
| Input | What it does |
|---|---|
sortBy | Sort by rating, newest, alphabetically, or keep the original 2GIS order. |
🛰️ Custom search area
| Input | What it does |
|---|---|
customGeolocation | Use a GeoJSON area instead of a plain text location when you need precise search boundaries. |
⚙️ Advanced
| Input | What it does |
|---|---|
enableGlobalDataset | Keep a deduplicated dataset across multiple runs. |
What you get in output
The Actor saves results to the dataset, where you can preview them in Apify, open the built-in map, or export them to JSON, CSV, Excel, XML, or HTML.
- Dataset: the main output with one item per place
- Useful views: overview, locations, attributes, contacts, reviews, and media
- Interactive map: saved as
results-mapin the key-value store and linked from the Output tab
Tables
The table view can be adjusted in different ways. There is a general overview, and you can also focus on contacts, location data, reviews, media, or other fields depending on what you need to export or inspect.

Map view
Results are also shown on an interactive map:
- in the
Live Viewtab - in the
results-map.htmlfile in the Key-Value Store

Output example
{"id": "4504127908559765","title": "Кафе Пушкинъ, ресторан русской кухни","shortName": "Кафе Пушкинъ","extension": "ресторан русской кухни","url": "https://2gis.ru/moscow/firm/4504127908559765","rubrics": ["Рестораны","Доставка еды","Банкетные залы"],"category": "food_restaurant","totalScore": 4.6,"reviewsCount": 402,"ratingCount": 856,"summary": "Русская кухня в интерьере старинного особняка под живую музыку. Посетители советуют попробовать блюда из щуки и телячьи ножки с гречкой.","country": "Россия","region": "Москва","city": "Москва","district": "Тверской","street": "Тверской бульвар","houseNumber": "26а","address": "Тверской бульвар, 26а","mainPhotoUrl": "https://i0.photo.2gis.com/main/branch/32/4504127908559765/common","location": {"lat": 55.763649,"lng": 37.604992},"working_hours": {"Fri": {"from": "00:00","to": "24:00"},"Mon": {"from": "09:00","to": "24:00"},"Sat": {"from": "00:00","to": "24:00"},"Sun": {"from": "00:00","to": "24:00"},"Thu": {"from": "09:00","to": "24:00"},"Tue": {"from": "09:00","to": "24:00"},"Wed": {"from": "09:00","to": "24:00"}},"nearestStations": [{"name": "Тверская","distance": 90,"comment": "Замоскворецкая линия"},{"name": "Пушкинская","distance": 120,"comment": "Таганско-Краснопресненская линия"},{"name": "Чеховская","distance": 370,"comment": "Серпуховско-Тимирязевская линия"}],"attributeGroups": ["GreatList","Рекомендовано Michelin","Maison Dellos","Чек 1550 ₽","Ланч от 960 ₽","Русская кухня","Бизнес-ланч","Завтрак","Заказ столиков","Заказ навынос","Винная карта","Меню на английском","Постное меню","Живая музыка","VIP-зал","Летняя веранда","Аниматоры, мастер-классы для детей","Проведение банкетов","Завтрак 09:00-12:00","Ланч 12:00-16:00","До 350 мест","Чебуреки","Пельмени","Салаты","Супы","На гриле","Кофе с собой","Чай с собой","Пироги","Десерты","Вторые блюда","Салаты","Супы","Доставка","Wi-Fi для клиентов","Оплата картой","Наличный расчёт","Оплата через банк","Оплата по QR-коду"],"brand": {"name": "Кафе Пушкинъ, ресторан русской кухни","shortName": "Кафе Пушкинъ","extension": "ресторан русской кухни","branchCount": 1,"rating": {"score": 4.6,"reviews": 856}},"detailsType": "branch"}
Adding contact information
{"phoneText": ["+7 (495) 739‒00‒33"],"phoneValue": ["+74957390033"],"email": ["banquet@cafe-pushkin.ru"],"website": ["http://cafe-pushkin.ru"],"socials": {"vk": ["https://vk.com/cafepushkin"],"telegram": ["https://t.me/cafepushkin_official"],"other": ["https://pinterest.com/cafepushkinofficial"]}}
Adding reviews
{"reviews": [{"id": "221590575","provider": "tbank","rating": 5,"text": "Все понравилось, обслужевания на высшем уровне!!!","dateCreated": "2026-02-15T16:39:41.152644+07:00","dateEdited": null,"isRated": true,"likesCount": 0,"commentsCount": 0,"officialAnswer": null,"emojis": null,"trustFactors": {"caption": "T-Bank Payment","confirmedCaption": "Review confirmed","factors": [{"type": "transaction_confirmation","caption": "T-Bank Payment","lastVisit": null,"visitsCount": null,"transactionProvider": "tbank","icon": "https://cachizer3.2gis.com/reviews-logos/dd38d673-d4f5-4fcf-a722-64232f60c80b.png?h={height}&w={width}"}]}}]}
Adding images and videos
{"media": [{"id": "30258560132546910","mediaType": "photo","url": "https://i4.photo.2gis.com/images/branch/0/30258560132546910_4015.jpg","width": 1700,"height": 1133,"creationTime": "2023-10-16T18:40:18+00:00","modificationTime": "2023-10-17T08:10:05+00:00"}]}
If you enable extra enrichment, each place can also include fields such as phoneText, phoneValue, email, website, socials, detailsType, reviewsMeta, reviews, mediaMeta, and media.
Tips for better results
- Use different search terms that do not overlap too much. For example,
restaurant,bar, andcoffee shopusually work better than several near-identical phrases. - You can search without a separate location field by putting the location directly into the query, for example
restaurants in Moscow. - Contacts, reviews, and media make the output richer, but they also make the run slower.
- If you want exact boundaries, use
customGeolocationinstead of a broad text location.
Custom search area
If your location is not found, or if you want to search inside a very specific area, you can use customGeolocation.
2GIS Places Scraper supports several geometry types for custom search areas: Polygon, MultiPolygon, and Point. For Point, the Actor treats it as a circle, with a default radius of 5 km unless you set radiusKm yourself.
Important: in GeoJSON, coordinates are always stored in this order: longitude first, latitude second.
If you want an easy way to draw and validate shapes, use Geojson.io.
Polygon
The most common option is a polygon, which is simply a set of points describing the area you want to scan. The first and last coordinate pair must be the same so the polygon is properly closed.
This example covers a large part of Moscow:
{"type": "FeatureCollection","features": [{"type": "Feature","properties": {},"geometry": {"type": "Polygon","coordinates": [[[37.53709323993428, 55.76662127653114],[37.55076839820586, 55.71536538587122],[37.67750542499144, 55.71235159263938],[37.69342377991097, 55.76960954827027],[37.610709021226626, 55.80031206455419],[37.53709323993428, 55.76662127653114]]]}}]}
MultiPolygon
A MultiPolygon lets you combine several separate areas in one input. This is useful when you want to search multiple disconnected zones at once.
{"type": "MultiPolygon","coordinates": [[[[37.58, 55.75],[37.60, 55.75],[37.60, 55.77],[37.58, 55.77],[37.58, 55.75]]],[[[37.64, 55.73],[37.66, 55.73],[37.66, 55.75],[37.64, 55.75],[37.64, 55.73]]]]}
Circle
For a circular area, use a Point and add radiusKm. This is often the simplest option when you want to search around a single location.
{"type": "Point","coordinates": [37.62141, 55.75227],"radiusKm": 8}
| Also useful • Tools for adjacent workflows | |
|
Apify Actor A good alternative if your workflow is centered around Yandex Maps. |
Chrome Extension Browser-based scraping with real-time manual control. |