2GIS Scraper (Phones, Emails, Reviews) | Парсер 2ГИС API
Pricing
Pay per event
2GIS Scraper (Phones, Emails, Reviews) | Парсер 2ГИС API
2GIS scraper and API - extract phones, emails, reviews, and photos from 207 cities across 20 countries. 1,000 places in 90 seconds. 731 categories, 20+ filters, branch discovery. Парсер 2ГИС: телефоны, email, отзывы и фото организаций. Экспорт в JSON, CSV, Excel.
Pricing
Pay per event
Rating
4.4
(4)
Developer
Zen Studio
Maintained by CommunityActor stats
6
Bookmarked
619
Total users
43
Monthly active users
19 hours ago
Last modified
Categories
Share
2GIS Scraper & API — Extract Places, Phones, Emails | Парсер 2ГИС (2026)
| 2GIS Scraper Suite • Full 2GIS data extraction toolkit | |||
|
➤ You are here |
All reviews & business replies |
Vacancies, salaries & contacts |
Apartments, rentals & commercial |
Need a simpler category + city workflow? Fast Business Leads Scraper returns phone-and-website records in seconds, with published-email enrichment when requested.
2GIS scraper and API for extracting phone numbers, emails, and full business data. 1,000 places in 90 seconds. Covers 207 cities across Russia, Kazakhstan, UAE, Saudi Arabia, and 16 more countries. 14 languages. No browser, no login, no limits.
Парсер и API для 2ГИС — телефоны, email и полные данные организаций. 1000 мест за 90 секунд. 207 городов, 20 стран, 14 языков.
Free tier — test with up to 10 places per run. Upgrade your plan for unlimited results.
| 1,000 places in under 90 seconds with 125+ fields per result — phones, emails, socials, reviews, photos, AI summaries, metro stations, attributes, and full building data down to apartment ranges per entrance. The richest 2GIS output on Apify. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
zen-studio/2gis-places-scraper-api on Apify. Call: ApifyClient("TOKEN").actor("zen-studio/2gis-places-scraper-api").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: query (array of search terms), location (string, city name), startUrls (array, 2GIS place/search/organization/building URLs; a /geo/ building URL returns that building with its entrances and apartment ranges). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/zen-studio~2gis-places-scraper-api/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: pay-per-event, $0.0045/place, $0.001/review, $0.0005/photo. Get token: https://console.apify.com/account/integrations
What You Get
Leads & contacts — phone numbers, email addresses, website URLs, and social media links (VK, Telegram, Instagram, WhatsApp) for every business. Filter by withoutWebsite to find businesses you can cold-pitch. Export straight to CSV for CRM import.
125+ fields per place — name, category, address, GPS, opening hours (including special/holiday hours), rating, review count, AI sentiment summary, brand/chain info, badges (Michelin, hotel stars, price), 2GIS award wins, 100+ rich attributes (menu items, payment methods, amenities), all websites, nearest metro stations and parking with walking distances, building footprint polygons, and busy-hours histograms.
Buildings & apartments — every place carries the details of the building it sits in: floor count, wall material, year built, building type. For residential buildings you also get the total apartment count, the real entrance count, and for each numbered entrance its own coordinates and apartment range — entrance 2 covers flats 17 to 32, floor by floor. Точные подъезды и диапазоны квартир.
Reviews (optional) — full text, author, rating, date, photos, business reply, source (2GIS / Flamp / Booking). 7 filter dimensions: sentiment, date range, keyword, topic, source, business reply.
Photos (optional) — high-res URLs from place gallery. 18 category filters: food, interior, exterior, menu, atmosphere, rooms, pool, spa, and more.
Key Capabilities
- 1,000 places in 90 seconds — no browser, pure API speed. Reviews and photos scale linearly
- Lead generation — extract phones, emails, and socials for thousands of businesses in minutes. Find businesses without websites for cold outreach
- 731 categories with fuzzy matching — type "dental" or "кофейни", it finds the right rubric
- Branch discovery — one query for "Шоколадница" in Moscow → all 227 branches with full data
- 20+ filters — rating, price range, delivery, WiFi, card payment, 24/7, photos, website presence
- Apartment ranges per entrance — numbered entrances with their own coordinates and flat ranges for residential buildings, plus apartment and entrance totals
- Honest ad labelling — every result says whether it was served as a paid placement, with the advertiser's disclosure text
- 207 cities, 20 countries, 14 languages — Russia, Kazakhstan, UAE, Saudi Arabia, and beyond
startUrls — Direct URLs
The startUrls parameter accepts multiple formats. Mix and match in a single run:
Параметр startUrls принимает несколько форматов. Можно смешивать в одном запуске:
| Format / Формат | Example / Пример |
|---|---|
| Place URL / Ссылка на место direct data extraction | https://2gis.ru/moscow/firm/70000001057394703 |
| Search URL / Ссылка на поиск scrapes all results automatically | https://2gis.ru/moscow/search/рестораны |
| Search with filters / Поиск с фильтрами URL filters applied automatically | https://2gis.ru/moscow/search/кофейни/filters/rating_rating_perfect |
| Building URL / Ссылка на здание auto-expands to every business inside, capped by Max results | https://2gis.ru/moscow/inside/4504235282758873 |
| Organization URL / Ссылка на организацию expands to every branch of the organization, capped by Max results | https://2gis.kz/almaty/branches/9429948590736555 |
| Short link / Короткая ссылка go.2gis.com resolved automatically | https://go.2gis.com/Sg2sB |
| Numeric ID / Числовой ID if you already have the branch ID | 70000001057394703 |
| Copy a URL straight from the 2GIS address bar — all active filters are preserved. When URLs are provided, all fields except reviews, photos, and proxy are ignored. Скопируйте URL прямо из адресной строки 2ГИС — все активные фильтры сохранятся. Если указаны ссылки, все поля кроме отзывов, фото и прокси игнорируются. |
Quick Start — Быстрый старт
Direct URLs — scrape specific places
{"startUrls": ["https://2gis.ru/moscow/firm/70000001057394703","https://2gis.ru/spb/search/кофейни"],"maxReviews": 50,"maxPhotos": 10}
Search — find restaurants in Moscow
{"query": ["restaurant"],"location": "Moscow","maxResults": 100}
With filters — top-rated cafes with websites, card payment, WiFi
{"query": ["cafe"],"location": "Saint Petersburg","maxResults": 500,"categoryFilter": ["cafes", "coffee shops"],"filterRating": "excellent","filterWebsite": "withWebsite","filterCardPayment": true,"filterWifi": true,"sortBy": "rating"}
With reviews and photos
{"query": ["restaurant"],"location": "Almaty","maxResults": 50,"maxReviews": 100,"reviewsRating": "negative","reviewsStartDate": "2025-01-01","maxPhotos": 20,"photoCategories": ["food_and_drinks", "interior"]}
Lead generation — businesses without websites
{"query": ["dental clinics"],"location": "Kazan","maxResults": 0,"filterWebsite": "withoutWebsite","language": "ru"}
Full configuration
{"query": ["кофейня", "coffee shop"],"location": "Moscow","country": "RU","language": "ru","maxResults": 200,"categoryFilter": ["coffee shops", "cafes"],"filterRating": "pretty_good","sortBy": "rating","filterWebsite": "withWebsite","skipClosedPlaces": true,"searchMatching": "only_includes","filterHasPhotos": true,"filter24h": false,"filterNewPlaces": false,"filterDelivery": false,"filterTakeaway": true,"filterCardPayment": true,"filterWifi": true,"filterHasGoods": false,"filterAvgPriceMin": 300,"filterAvgPriceMax": 1500,"maxReviews": 50,"reviewsRating": "all","reviewsWithAnswer": false,"reviewsStartDate": "2024-06-01","reviewsTopic": "кофе","reviewsFilterKeyword": "","reviewsSource": "2gis","maxPhotos": 10,"photoCategories": ["food_and_drinks", "interior", "outside"],"scrapeOrgBranches": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Парсинг 2ГИС — поиск организаций, телефонов и email
Этот инструмент заменяет ручной сбор базы данных организаций из 2ГИС. Вместо покупки устаревших баз или использования десктопных парсеров, вы получаете актуальные данные напрямую: телефоны, email, сайты, соцсети, адреса, рейтинги и отзывы — всё в структурированном JSON, готовом для CRM-импорта или аналитики.
Поддерживается 207 городов в 20 странах: Россия (155 городов), Казахстан (19), Саудовская Аравия (14), ОАЭ, Узбекистан, Кыргызстан, Армения, Грузия, Азербайджан, Беларусь, Таджикистан, Бахрейн, Кувейт, Катар, Оман, Ирак, Чили, Чехия, Италия и Кипр.
Input Parameters — Входные параметры
Core — Основные
| Parameter | Type | Description | Default |
|---|---|---|---|
startUrls | array | 2GIS place/search/organization/building URLs, short links (go.2gis.com), or plain IDs. Building URLs auto-expand to every business inside; organization URLs (/branches/) expand to every branch (capped by Max results). When provided, query and location are ignored | [] |
query | array | Search queries — each runs as a separate search | ["restaurant"] |
location | string | City name (Russian or English) — 207 cities supported | "Moscow" |
country | string | Country code to disambiguate city names (usually not needed) | Auto |
language | string | Output language — 14 languages supported | Auto by region |
maxResults | integer | Max places per query. 0 = unlimited | 100 |
Filters — Фильтры
| Parameter | Type | Description | Default |
|---|---|---|---|
categoryFilter | array | Fuzzy-matched against 731 2GIS categories (RU/EN) | All |
filterRating | string | Min rating: perfect 4.9+, excellent 4.5+, pretty_good 4.0+, nice 3.5+, not_bad 3.0+ | All |
sortBy | string | rating, opened_time (newest), name (A-Z) | Default |
filterWebsite | string | withWebsite, withoutWebsite, or all | all |
skipClosedPlaces | boolean | Skip permanently closed places | false |
searchMatching | string | all, only_includes (name contains query), only_exact | all |
filterHasPhotos | boolean | Only places with photos | false |
filter24h | boolean | Only 24/7 places | false |
filterNewPlaces | boolean | Only recently opened | false |
Category-Specific Filters — Фильтры по категориям
| Parameter | Type | Description | Default |
|---|---|---|---|
filterDelivery | boolean | Has delivery service | false |
filterTakeaway | boolean | Has takeaway/pickup | false |
filterCardPayment | boolean | Accepts card payment | false |
filterWifi | boolean | WiFi available | false |
filterHasGoods | boolean | Has price list / goods on 2GIS | false |
filterAvgPriceMin | integer | Min average check (local currency) | — |
filterAvgPriceMax | integer | Max average check (local currency) | — |
Reviews — Отзывы
| Parameter | Type | Description | Default |
|---|---|---|---|
maxReviews | integer | Max reviews per place. Empty = all, 0 = disabled | disabled |
reviewsRating | string | all, positive (4-5 stars), negative (1-2 stars) | all |
reviewsWithAnswer | boolean | Only reviews with business reply | false |
reviewsStartDate | string | Only reviews after this date (YYYY-MM-DD) | — |
reviewsTopic | string | Server-side topic filter (e.g., "сервис", "еда") | — |
reviewsFilterKeyword | string | Client-side keyword search in review text | — |
reviewsSource | string | all, 2gis, flamp, or booking | all |
Photos — Фото
| Parameter | Type | Description | Default |
|---|---|---|---|
maxPhotos | integer | Max photos per place. Empty = all, 0 = disabled | disabled |
photoCategories | array | Filter by category: food_and_drinks, interior, outside, menu, atmosphere, and 13 more | All |
Organization — Организация
| Parameter | Type | Description | Default |
|---|---|---|---|
scrapeOrgBranches | boolean | Also scrape all branches of found organizations | false |
System — Система
| Parameter | Type | Description | Default |
|---|---|---|---|
proxyConfiguration | object | Proxy settings | Apify Residential |
Residential proxy is used by default, including when proxyConfiguration is omitted, because it is what keeps results reliable. To run without a proxy instead, pass {"useApifyProxy": false}.
Output Example — Пример выходных данных
Each place produces a structured JSON record. A real one, with every field it returns — long lists and long strings are trimmed, nothing is omitted:
{"id": "70000001066421775","name": "Bshushu Restaurant","fullName": "Bshushu Restaurant, ресторан средиземноморской кухни","shortName": "Bshushu Restaurant","extension": "ресторан средиземноморской кухни","itemType": "branch","url": "https://2gis.ru/moscow/firm/70000001066421775","categories": ["Рестораны"],"categoryIds": ["164"],"rubrics": [{"id": "164","shortId": 164,"name": "Рестораны","alias": "restorany","kind": "primary","parentId": "2"}],"poiCategory": "food_restaurant","rating": 4.9,"reviewCount": 102,"ratingCount": 149,"orgRatingCount": 149,"reviewProviders": [{"source": "2gis_reviews","rating": null,"reviewCount": 0,"isReviewable": true},{"source": "flamp","rating": null,"reviewCount": 0,"isReviewable": true}],"isReviewable": true,"isReviewableOnFlamp": true,"summary": "","description": "","badges": [{"name": "Чек 1650 ₽","tag": "food_service_avg_price"},{"name": "Средиземноморская кухня","tag": "food_service_food_mediterranean"},"… 2 more"],"awards": [],"flags": {"hasPhotos": true,"hasAvgBill": true,"hasModel": false},"address": "3-я улица Ямского Поля, 2 к3","fullAddress": "Москва, 3-я улица Ямского Поля, 2 к3","addressComment": "1 этаж","postcode": "125124","buildingId": "4504235282647535","landmark": "ДЦ Ямское поле","country": "Россия","region": "Москва","city": "Москва","district": "Беговой","street": "3-я улица Ямского Поля","houseNumber": "2 к3","latitude": 55.781846,"longitude": 37.581611,"timezoneOffset": 180,"mainPhotoUrl": "https://i3.photo.2gis.com/main/branch/32/70000001066421775/common","photoCount": 223,"schedule": {"Fri": {"working_hours": [{"from": "10:00","to": "24:00"}]},"Mon": {"working_hours": [{"from": "10:00","to": "24:00"}]},"Sat": {"working_hours": [{"from": "10:00","to": "24:00"}]},"Sun": {"working_hours": [{"from": "10:00","to": "24:00"}]},"Thu": {"working_hours": [{"from": "10:00","to": "24:00"}]},"Tue": {"working_hours": [{"from": "10:00","to": "24:00"}]},"Wed": {"working_hours": [{"from": "10:00","to": "24:00"}]}},"scheduleSpecial": null,"isClosed": false,"temporaryClosed": null,"nearestStations": [{"name": "Белорусская","line": "D1 Белорусско-Савёловский диаметр","color": "#ED9F2E","distance": 700,"routeTypes": ["suburban_train","aeroexpress","… 1 more"]},{"name": "Белорусская","line": "Замоскворецкая линия","color": "#3EA332","distance": 750,"routeTypes": ["metro"]},"… 1 more"],"nearestMetro": [{"id": "4504385606391043","distance": 750},{"id": "4504385606386903","distance": 900},"… 6 more"],"nearestParking": [{"id": "70030076994189768"},{"id": "4504656212099923"},"… 14 more"],"entrances": [{"id": "70030076321045656","number": "","name": "","latitude": 55.78183888477523,"longitude": 37.58160085163442,"isPrimary": false,"isVisibleInUi": false,"isVisibleOnMap": true,"hasPoi": false,"geometry": {"points": ["POINT(37.58160085163442 55.781838884775233)"],"vectors": ["LINESTRING(37.581499 55.78177,37.581601 55.781839)"],"normals": ["LINESTRING(36.755767 55.217925,37.581601 55.781839)"]},"apartmentsFrom": null,"apartmentsTo": null,"apartmentCount": null,"apartmentRanges": [],"apartmentsByFloor": []}],"databaseEntrances": [{"id": "70030076321045656","number": "","name": "","latitude": 55.78183888477523,"longitude": 37.58160085163442,"isPrimary": false,"isVisibleInUi": false,"isVisibleOnMap": true,"hasPoi": false,"geometry": {"points": ["POINT(37.58160085163442 55.781838884775233)"],"vectors": ["LINESTRING(37.581499 55.78177,37.581601 55.781839)"],"normals": ["LINESTRING(36.755767 55.217925,37.581601 55.781839)"]},"apartmentsFrom": null,"apartmentsTo": null,"apartmentCount": null,"apartmentRanges": [],"apartmentsByFloor": []}],"phones": ["+79255650202","+79311057475"],"phonesFormatted": ["+7‒925‒565‒02‒02","+7‒931‒105‒74‒75"],"phoneDetails": [{"value": "+79255650202","formatted": "+7‒925‒565‒02‒02","comment": "","group": ""},{"value": "+79311057475","formatted": "+7‒931‒105‒74‒75","comment": "","group": ""}],"emails": [],"website": "http://bshushu.moscow","websites": ["http://bshushu.moscow"],"socials": {"whatsapp": ["https://wa.me/79255650202?text=%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D1%81%D1%82%D0%B2%D1%83%D0%B …"],"telegram": ["https://t.me/bshushu_moscow"]},"otherContacts": [],"orgName": "Bshushu Restaurant","orgId": "70000001066421774","orgExtension": "ресторан средиземноморской кухни","orgBranchCount": 1,"orgRating": 4.7,"orgReviewCount": 102,"brand": "","isPromoted": false,"hasGoods": true,"hasDiscount": false,"delivery": null,"replyRate": null,"floorCount": 3,"levelCount": null,"yearBuilt": null,"buildingMaterial": "Железобетон","buildingName": "","buildingPurpose": "Административное здание","buildingPurposeCode": 2,"floorType": "","gasType": "","elevatorCount": null,"isInEmergencyState": false,"heritageName": "","heritageCategory": "","apartmentCount": null,"apartmentCountFromEntrances": null,"entranceCount": null,"hasApartmentsInfo": false,"hasApartmentRanges": false,"realEntrances": [],"attributes": ["Лучший ресторан 2025","Чек 1650 ₽","… 31 more"],"attributeGroups": [{"name": "Премия 2ГИС","iconUrl": "https://disk.2gis.com/rubricator/bar20bd6068bc164b6e75eb28eb560020d8.svg","attributes": [{"id": "70000201006757970","name": "Лучший ресторан 2025","tag": "awards_awards2025_thebestrestaurants2025","iconUrl": "https://disk.2gis.com/rubricator/awards07cf0f08d2e94c7bee11cc3a074d5c85.svg"}]},{"name": "Ресторан / Кафе","iconUrl": "https://disk.2gis.com/rubricator/cafef99cdf22ed508f08db0d770943367ef0.svg","attributes": [{"id": "70000201006747423","name": "Чек 1650 ₽","tag": "food_service_avg_price","iconUrl": ""},{"id": "70000201006755332","name": "Винный ресторан","tag": "food_service_bar_type_winerest","iconUrl": ""},"… 11 more"]},"… 6 more"],"createdAt": "2022-11-08T00:00:00Z","updatedAt": "2026-08-18T12:16:50Z","qualifiedName": "","geometry": null,"group": [],"isMainInGroup": null,"isAdvertised": false,"ads": {"text": "","textWarning": "","erid": "","legalName": "","linkText": "","linkUrl": "","actions": []},"congestion": null,"hasDynamicCongestion": false,"vacancies": null,"metarubrics": null,"timezone": "MSK+3","floorId": "","emailForSendingAllowed": true,"hasPinnedGoods": true,"hasExchange": false,"hasRealty": false,"hasOtelloStories": null,"buildingParking": [{"id": "70030076567663936","name": "Парковка БЦ Ямская Сити","capacity": "50","isPaid": true,"purpose": "car"}],"servicing": [],"buildingBranchCount": null,"photoProviderCount": null,"attractions": [],"photoAlbums": [{"count": 221,"mainPhotoUrl": "https://i3.photo.2gis.com/main/branch/32/70000001066421775/common","subtype": "common"},{"count": 2,"mainPhotoUrl": "https://i0.photo.2gis.com/main/geo/32/4504235282647535/view","subtype": "view"}],"parkingInfo": null,"evCharging": null,"transit": null,"statistics": null,"geoAttributes": null,"seasonal": null,"detailedSubtype": "","subtype": "","sourceUrl": "","comment": "","searchQuery": "","scrapedAt": "2026-09-08T10:20:12.713235+00:00","reviews": [{"reviewId": "262213123","rating": 5,"text": "Хорошая атмосфера, вкусная еда, брала пасту, было очень вкусно","dateCreated": "2026-07-29T00:47:45.374312+07:00","dateEdited": "2026-07-29T00:48:36.068343+07:00","authorName": "wow anastacia","authorId": "352d3300415f49578453ed8defa39dd5","authorPhotoUrl": "","authorReviewsCount": 28,"likesCount": 0,"commentsCount": 0,"reactions": null,"provider": "2gis","officialAnswer": null,"photos": ["https://cachizer1.2gis.com/reviews-photos/7eca9b24-c998-4607-81a3-e544ec3da2da.jpg?w=640"],"isHidden": false,"isRated": true,"hidingReason": null,"hidingType": null,"reviewUrl": "","source": null,"regionId": 32,"objectId": "70000001066421775","objectType": "branch","providerData": null,"trustFactors": null,"pinStatus": "none","hasUnresolvedComplaints": false,"isUnratedPermanently": null,"filteredFacts": null,"statusHistory": [],"externalId": null,"authorUserId": "27350583","authorFirstName": "wow anastacia","authorLastName": null,"authorProvider": "2gis","authorUrl": "","authorPhotoUrls": {"64x64": "","320x": "","640x": "","1920x": "","url": ""}},{"reviewId": "262051336","rating": 5,"text": "Это идеальное место для свидания! Невероятно вкусные блюда, внимательный персонал и очень …","dateCreated": "2026-07-28T15:05:22.033418+07:00","dateEdited": null,"authorName": "Brianna Thomas","authorId": "2602766b95dc4059ad8e734a43c40070","authorPhotoUrl": "https://i2.photo.2gis.com/images/profile/30258560276932995_3d44_640x.jpg","authorReviewsCount": 7,"likesCount": 0,"commentsCount": 0,"reactions": null,"provider": "2gis","officialAnswer": null,"photos": [],"isHidden": false,"isRated": true,"hidingReason": null,"hidingType": null,"reviewUrl": "","source": null,"regionId": 32,"objectId": "70000001066421775","objectType": "branch","providerData": null,"trustFactors": null,"pinStatus": "none","hasUnresolvedComplaints": false,"isUnratedPermanently": null,"filteredFacts": null,"statusHistory": [],"externalId": null,"authorUserId": "90332594","authorFirstName": "Brianna Thomas","authorLastName": null,"authorProvider": "2gis","authorUrl": "","authorPhotoUrls": {"64x64": "https://i2.photo.2gis.com/images/profile/30258560276932995_3d44_64x64.jpg","320x": "https://i2.photo.2gis.com/images/profile/30258560276932995_3d44_320x.jpg","640x": "https://i2.photo.2gis.com/images/profile/30258560276932995_3d44_640x.jpg","1920x": "https://i2.photo.2gis.com/images/profile/30258560276932995_3d44_1920x.jpg","url": "https://i2.photo.2gis.com/images/profile/30258560276932995_3d44.jpg"}},"… 1 more"],"reviewsMeta": {"totalCount": 100,"branchReviewCount": 102,"branchRating": 4.9,"branchRatingIsConfirmed": true,"providers": [{"source": "flamp","rating": null,"reviewCount": 0,"isReviewable": true},{"source": "2gis","rating": null,"reviewCount": 0,"isReviewable": true},"… 6 more"]},"photos": [{"photoId": "30258560320174635","url": "https://i9.photo.2gis.com/photo-gallery/4efe8392-a562-4e49-9710-ce15033e5a86.jpg","previewUrl": "https://i9.photo.2gis.com/photo-gallery/4efe8392-a562-4e49-9710-ce15033e5a86_656x340.jpg","previewUrls": {"232x232": "https://i9.photo.2gis.com/photo-gallery/4efe8392-a562-4e49-9710-ce15033e5a86_232x232.jpg","328x170": "https://i9.photo.2gis.com/photo-gallery/4efe8392-a562-4e49-9710-ce15033e5a86_328x170.jpg","656x340": "https://i9.photo.2gis.com/photo-gallery/4efe8392-a562-4e49-9710-ce15033e5a86_656x340.jpg"},"width": 1440,"height": 1920,"mediaType": "photo","source": "instagram","copyright": {"title": "Фотография из социальных сетей","value": "https://i.photo.2gis.com/logo/2gis.png","url": "https://2gis.ru","type": "image","iconUrl": "https://i.photo.2gis.com/logo/2gis.svg","providerIconUrl": "https://cachizer1.2gis.com/photo-providers/87c8c7ba-0ea8-412f-892f-2dddf3cb091a.png?w={wid …"},"author": null,"contentKeywords": [],"objectType": "branch","status": "active","isPinned": false,"pinnedPosition": null,"category": "all","createdAt": "2026-06-18T03:29:58+00:00","modifiedAt": "2026-06-18T03:33:07+00:00"},{"photoId": "30258560291633943","url": "","previewUrl": "","previewUrls": {"232x232": "","328x170": "","656x340": ""},"width": null,"height": null,"mediaType": "video","source": "instagram","copyright": {"title": "Видео из социальных сетей","value": "https://i.photo.2gis.com/logo/2gis.png","url": "https://2gis.ru","type": "image","iconUrl": "https://i.photo.2gis.com/logo/2gis.svg","providerIconUrl": "https://cachizer1.2gis.com/photo-providers/87c8c7ba-0ea8-412f-892f-2dddf3cb091a.png?w={wid …"},"author": null,"contentKeywords": [],"objectType": "branch","status": "active","isPinned": false,"pinnedPosition": null,"category": "all","createdAt": "2026-02-17T21:39:52+00:00","modifiedAt": "2026-02-17T21:42:04+00:00"},"… 1 more"]}
Residential building — подъезды и квартиры
Pass a /geo/ building URL and you get the structure itself: every numbered
entrance with its own coordinates and the flats behind it.
{"id": "9430047375015936","name": "улица Казыбек би, 110","itemType": "building","url": "https://2gis.kz/almaty/geo/9430047375015936","address": "улица Казыбек би, 110","fullAddress": "Алматы, улица Казыбек би, 110","postcode": "050012","latitude": 43.254834,"longitude": 76.922945,"country": "Казахстан","region": "Алматы","city": "Алматы","district": "Алмалинский район","street": "улица Казыбек би","houseNumber": "110","buildingPurpose": "Жилой дом","floorCount": 5,"buildingMaterial": "Панель","isInEmergencyState": false,"apartmentCount": 64,"apartmentCountFromEntrances": 64,"entranceCount": 4,"hasApartmentsInfo": true,"hasApartmentRanges": true,"realEntrances": [{"number": "1","name": "1 подъезд","latitude": 43.254807,"longitude": 76.923287,"apartmentsFrom": 1,"apartmentsTo": 16,"apartmentCount": 16,"apartmentsByFloor": [{"floorFrom": 1,"floorTo": 4,"floorLabel": null,"apartments": [{"from": 1,"to": 12}]},{"floorFrom": 5,"floorTo": 5,"floorLabel": "5","apartments": [{"from": 13,"to": 16}]}]},{"number": "2","name": "2 подъезд","latitude": 43.254788,"longitude": 76.92305,"apartmentsFrom": 17,"apartmentsTo": 32,"apartmentCount": 16,"apartmentsByFloor": [{"floorFrom": 1,"floorTo": 4,"floorLabel": null,"apartments": [{"from": 17,"to": 28}]},{"floorFrom": 5,"floorTo": 5,"floorLabel": "5","apartments": [{"from": 29,"to": 32}]}]}],"databaseEntrances": "… 9 points in total, including 5 unnumbered service doors"}
Output Fields — Поля результата
Every place record includes these fields (null where a place does not expose a value):
Identity & category
| Field | Description |
|---|---|
id | Place ID |
name / fullName / shortName / extension | Short, full, abbreviated name, and the descriptive suffix (e.g. "ресторан") |
itemType | Record type — branch (a business), building, etc. |
url | 2GIS page for the place |
categories / categoryIds | Category names and IDs |
rubrics | Detailed category list — each with id, shortId, name, alias, kind (primary/additional), parentId |
poiCategory | High-level POI class (e.g. food_restaurant) |
brand | Brand/chain name |
Ratings & reviews
| Field | Description |
|---|---|
rating / reviewCount / ratingCount | Aggregate rating, written review count, star-vote count |
orgRating / orgReviewCount / orgRatingCount | Same figures aggregated across the whole organization |
reviewProviders | Per-source breakdown (2GIS, Flamp, Booking) with rating and count |
isReviewable / isReviewableOnFlamp | Whether the place currently accepts new reviews |
summary | AI sentiment summary |
Recognition
| Field | Description |
|---|---|
badges | Distinctive markers (price, cuisine, hotel stars, etc.) — name + tag |
awards | 2GIS award wins — collectionUid, text, type |
flags | Capability flags — hasPhotos, hasAvgBill, hasModel |
Location
| Field | Description |
|---|---|
address / fullAddress / addressComment | Display address, full address, and floor/entrance note |
postcode / country / region / city / district / street / houseNumber | Address components |
landmark | Named landmark or complex the place sits in |
buildingId | ID of the building the place occupies |
latitude / longitude | GPS coordinates |
timezoneOffset | Local UTC offset in minutes |
entrances / databaseEntrances / realEntrances | Entrance points — see the Entrances & apartments table below |
geometry | Building footprint polygon plus centroid and selection point |
qualifiedName | Full name including the city |
nearestStations | Nearby transit stops — name, line, color, walking distance, route types |
nearestMetro | Nearest metro stations — id + walking distance |
nearestParking | Nearby parking — id |
buildingParking | Parking belonging to the building — name, capacity, paid/free |
servicing | Companies servicing the building, with their contact details |
attractions | Heritage description, architects and construction dates for notable buildings |
parkingInfo / evCharging / transit | Capacity and access for parking records, live connector state for EV points, routes and platforms for stations |
Opening hours
| Field | Description |
|---|---|
schedule | Weekly working hours |
scheduleSpecial | Holiday / special-date hours, when published |
isClosed | true if temporarily closed, false if open hours exist, null if unknown |
temporaryClosed | Raw closure state (e.g. opening_soon) when present |
Contacts
| Field | Description |
|---|---|
phones / phonesFormatted | Phone numbers, raw and display-formatted |
emails | Email addresses |
website / websites | Primary website and the full list of websites |
socials | Social links grouped by network (VK, Telegram, WhatsApp, Instagram) |
phoneDetails | Each number with its label ("приемная", "диспетчерская") and contact group |
otherContacts | Any contact channel outside the named networks, so nothing is dropped |
Organization
| Field | Description |
|---|---|
orgName / orgId / orgExtension / orgBranchCount | Parent organization name, ID, descriptive suffix, branch count |
Building — describes the building the place occupies, not the business
| Field | Description |
|---|---|
buildingName | Name of the building or residential complex |
buildingPurpose / buildingPurposeCode | What the building is (Жилой дом, Административное здание, Частный дом) |
floorCount | Above-ground floor count |
levelCount | Level count (e.g. for parking structures) |
yearBuilt / buildingMaterial / floorType / gasType | Construction year, wall material, floor type, gas supply |
elevatorCount | Number of lifts |
isInEmergencyState | Whether the building is officially recorded as unsafe |
heritageName / heritageCategory | Listed-monument name and protection level |
apartmentCount | Total apartments in the building |
entranceCount | Number of real residential entrances (подъезды) |
hasApartmentsInfo / hasApartmentRanges | Whether apartment data exists, and whether per-entrance ranges were returned |
apartmentCountFromEntrances | Apartments summed across the entrance ranges — compare against apartmentCount |
Entrances & apartments — realEntrances holds the numbered residential entrances; databaseEntrances additionally holds every mapped service door, which is why a building can show nine points and four entrances
| Field | Description |
|---|---|
number / name | Entrance number and label (1, 1 подъезд) |
latitude / longitude | Coordinates of that entrance |
apartmentsFrom / apartmentsTo / apartmentCount | Flat range at this entrance and how many flats it holds |
apartmentRanges | Every range at the entrance, since numbering is not always contiguous |
apartmentsByFloor | Per-floor breakdown — floorFrom, floorTo, and the flats on those floors |
isVisibleInUi / isPrimary / hasPoi | Whether this is a real entrance, the primary one, and whether it has a POI |
geometry | Precise entrance geometry (points, vectors, normals) |
Attributes & commerce
| Field | Description |
|---|---|
attributes | Flat list of attribute names |
attributeGroups | Grouped attributes — each with name, iconUrl, and per-attribute id, name, tag, iconUrl |
isPromoted / isAdvertised | Whether the result was served as a paid placement |
ads | Advertiser copy, disclosure text, call-to-action links |
hasGoods / hasDiscount / delivery / replyRate | Price list, discounts, delivery, reply-rate flags |
congestion | Busy-hours histogram by weekday |
vacancies | Open roles at this place |
Photos (when maxPhotos > 0) — each photo record includes:
| Field | Description |
|---|---|
photoId / url | Photo ID and full-resolution image URL |
previewUrl / previewUrls | Convenience 656×340 preview plus all sizes (232×232, 328×170, 656×340) |
width / height | Image dimensions |
mediaType | photo or video |
source / copyright | Source code plus full copyright details (title, value, url, type, icon URLs) |
author | Uploader profile (id, name, publicId, avatar) — null for business-owned photos |
contentKeywords | Auto-detected content tags (e.g. "Паста") |
objectType / status | Linked object type and photo status |
isPinned / pinnedPosition | Whether the photo is pinned and its position |
category | The category filter it matched |
createdAt / modifiedAt | Upload and last-modified timestamps |
Pricing — Pay Per Event (PPE) — Тарифы
Transparent per-event pricing. You only pay for what you extract.
Events
| Event | What triggers it | Free tier | Bronze | Silver | Gold |
|---|---|---|---|---|---|
| place_scraped | Each place extracted with full data | $4.50 / 1,000 | $3.80 / 1,000 | $3.20 / 1,000 | $2.70 / 1,000 |
| review_scraped | Each individual review extracted | $1.00 / 1,000 | $0.80 / 1,000 | $0.65 / 1,000 | $0.50 / 1,000 |
| photos_scraped | Each place with photos extracted | $0.50 / 1,000 | $0.30 / 1,000 | $0.15 / 1,000 | $0.10 / 1,000 |
Cost Calculator — Калькулятор стоимости
Lead generation — 1,000 businesses with contacts:
| What | Count | Cost |
|---|---|---|
| Places | 1,000 | $4.50 |
| Total | $4.50 |
Market research — 500 restaurants with 50 reviews each:
| What | Count | Cost |
|---|---|---|
| Places | 500 | $2.25 |
| Reviews | 25,000 | $25.00 |
| Total | $27.25 |
Reputation monitoring — 100 competitors, 20 reviews + photos:
| What | Count | Cost |
|---|---|---|
| Places | 100 | $0.45 |
| Reviews | 2,000 | $2.00 |
| Photos | 100 places | $0.05 |
| Total | $2.50 |
Full city extraction — 10,000 places, no enrichment:
| What | Count | Cost |
|---|---|---|
| Places | 10,000 | $45.00 |
| Total | $45.00 |
How to Scrape 2GIS Data in Python — Парсинг 2ГИС на Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("zen-studio/2gis-places-scraper-api").call(run_input={"query": ["restaurant"],"location": "Moscow","maxResults": 100,"filterRating": "excellent","maxReviews": 10,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['name']} — {item['rating']}★ — {item['phones']}")
How to Scrape 2GIS Data in JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('zen-studio/2gis-places-scraper-api').call({query: ['restaurant'],location: 'Moscow',maxResults: 100,filterRating: 'excellent',maxReviews: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`${item.name} — ${item.rating}★ — ${item.phones}`);});
Advanced Examples — Продвинутые сценарии
Extract all dental clinics in Almaty, Kazakhstan
{"query": ["стоматология"],"location": "Almaty","country": "KZ","language": "ru","maxResults": 0,"categoryFilter": ["dental clinics"],"filterRating": "pretty_good"}
Collect negative reviews for competitor analysis
{"query": ["Додо Пицца"],"location": "Novosibirsk","maxResults": 50,"maxReviews": 200,"reviewsRating": "negative","reviewsStartDate": "2025-06-01"}
Find businesses without websites for cold outreach
{"query": ["автосервис"],"location": "Krasnodar","maxResults": 0,"filterWebsite": "withoutWebsite","skipClosedPlaces": true}
Scrape entire restaurant chain with all branches
{"query": ["Якитория"],"location": "Moscow","maxResults": 5,"scrapeOrgBranches": true,"maxReviews": 20,"maxPhotos": 5,"photoCategories": ["food_and_drinks", "interior"]}
Dubai restaurants with delivery, sorted by rating
{"query": ["restaurant"],"location": "Dubai","country": "AE","language": "en","maxResults": 500,"filterDelivery": true,"filterRating": "excellent","sortBy": "rating","filterAvgPriceMin": 50,"filterAvgPriceMax": 300}
More Zen Studio scrapers for maps & local data
Baidu Maps 百度地图
Google Maps
Apple Maps
Yandex Maps Яндекс Карты
2GIS 2ГИС
Naver Map & Place 네이버 지도
Bing Maps
Supported Cities — Поддерживаемые города (207 городов, 20 стран)
Россия (155 городов) — Москва, Санкт-Петербург, Новосибирск, Екатеринбург, Казань, Нижний Новгород, Челябинск, Самара, Ростов-на-Дону, Уфа, Красноярск, Воронеж, Пермь, Волгоград, Краснодар, Тюмень, Иркутск, Омск, Томск, Сочи, and 135 more.
Казахстан (19) — Almaty, Astana, Shymkent, Karaganda, Aktobe, and more.
Саудовская Аравия (14) — Riyadh, Jeddah, Dammam, Medina, and more.
ОАЭ — Dubai, Abu Dhabi, Sharjah. Узбекистан — Tashkent, Samarkand, Bukhara. Кыргызстан — Bishkek. Армения — Yerevan. Грузия — Tbilisi, Batumi. Азербайджан — Baku. Беларусь — Minsk. Таджикистан — Dushanbe. Бахрейн — Manama. Кувейт — Kuwait City. Катар — Doha. Оман — Muscat. Ирак — Basra. Чили — Santiago. Чехия — Prague. Италия — Padua. Кипр — Cyprus.
14 Supported Languages — Поддерживаемые языки
Русский, English, العربية (Arabic), Қазақша (Kazakh), O'zbek (Uzbek), Кыргызча (Kyrgyz), Հայերեն (Armenian), ქართული (Georgian), Azərbaycan, Тоҷикӣ (Tajik), Čeština (Czech), Español (Spanish), Italiano (Italian) — or auto-detect by region.
Data Export — Экспорт данных
Export results in any format directly from the Apify platform:
- JSON — structured data for programmatic use, API integrations, and databases
- CSV — flat tables for Excel, Google Sheets, CRM import
- Excel (.xlsx) — ready for reporting and visualization
- XML — for legacy system integrations
Proxy Configuration — Настройка прокси
Residential proxies are recommended for stable extraction. The default configuration works out of the box:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Custom proxies:
{"proxyConfiguration": {"useApifyProxy": false,"proxyUrls": ["http://user:pass@proxy.example.com:8000"]}}
FAQ — Часто задаваемые вопросы
Q: How many places can I scrape? / Сколько мест можно собрать?
A: Set maxResults to 0 for unlimited extraction per query. 2GIS returns up to ~3,000 results per query depending on the city and search term. Use multiple queries to broaden coverage.
Q: Do I need a 2GIS account or browser? / Нужен ли аккаунт или браузер? A: No. No login, no cookies, no browser. Direct API access, works immediately. | Нет. Прямой доступ к API, без браузера.
Q: How fast is it? A: ~1,000 places in 90 seconds. No browser overhead. Reviews and photos scale linearly with the amount requested.
Q: How do category filters work? A: Fuzzy-matches your input (Russian or English) against all 731 2GIS rubrics. "dental" → "Стоматологические клиники", "coffee" → "Кофейни".
Q: Does it work for Dubai and Saudi Arabia? / هل يعمل في دبي والسعودية؟ A: Yes. Full support for UAE (Dubai, Abu Dhabi, Sharjah), Saudi Arabia (14 cities), and all Gulf states.
Q: Как собрать базу телефонов и email? A: Запустите с нужным запросом и городом. Телефоны, email, сайты и соцсети извлекаются автоматически. Экспортируйте в CSV для CRM.
Q: Need just reviews in flat format for Excel? / Нужны только отзывы? A: Use /zen-studio/2gis-reviews-scraper — one review = one row, 7 filters, CSV export. | Один отзыв = одна строка, 7 фильтров.
Q: Looking for jobs or real estate? A: /zen-studio/2gis-jobs-scraper — vacancies with salary, company, apply links. /zen-studio/2gis-property-scraper — sale & rent listings with 12 filters.
Getting Started — Начало работы
1. Create an Apify account
Sign up — free tier lets you test with up to 10 places per run.
2. Configure your search
Set your search query, city, and filters. Start with a small maxResults (10-50) to preview the data structure.
3. Run and export
Start the scraper, wait for results, download in JSON/CSV/Excel. Or use the API to automate everything.
4. Scale up
Schedule recurring runs, connect webhooks, pipe data into your CRM or analytics tools. Use the Apify API for full programmatic control.
Disclaimer
Data is collected from publicly available sources and provided "as is" for informational purposes. Users are responsible for compliance with 2GIS' terms of service and applicable regulations in their jurisdiction.
Start Scraping 2GIS Now — Начать парсинг 2ГИС
Structured data from the largest business directory in Russia, CIS, and the Middle East — extracted in minutes, not days.
