2GIS Places Scraper avatar

2GIS Places Scraper

Pricing

from $1.80 / 1,000 results

Go to Apify Store
2GIS Places Scraper

2GIS Places Scraper

2ГИС парсер: телефоны, email, сайты, соцсети, рейтинг, адрес, метро. Scrape 2GIS businesses by keyword and city (Москва, Алматы, Dubai): phones, emails, websites, socials, rating, hours, metro. Filters by rating, website, category.

Pricing

from $1.80 / 1,000 results

Rating

5.0

(1)

Developer

FalconScrape

FalconScrape

Maintained by Community

Actor stats

2

Bookmarked

97

Total users

6

Monthly active users

10 hours ago

Last modified

Share

🚀 2GIS Scraper (2ГИС парсер): Phones, Emails and Websites

2ГИС парсер организаций. Ищите места по запросу и городу («Ресторан», «Москва») и получайте телефоны, email, сайты, соцсети, рейтинг, адрес, часы работы, ближайшее метро и фото. Фильтры по рейтингу, наличию сайта и рубрике. $1.80 за 1000 мест, контакты включены.

The 2GIS Places Scraper is a 2GIS parser that turns 2GIS search results into clean JSON, CSV or Excel: each place's name, address, coordinates, rating, categories, opening hours, attributes, nearest metro stations and photo, plus its phones, emails, websites and social links. 2GIS is the map and business directory used across Russia, Kazakhstan, Uzbekistan, Kyrgyzstan, Azerbaijan, Armenia, the UAE and more. Use it as a simple alternative to the 2GIS API for lead lists, market research and location analysis: no key, no account.

🎯 Use Cases

  • Парсинг 2ГИС for lead lists: collect phones, emails, websites and WhatsApp or Telegram links of restaurants, dental clinics or car services in one city, ready for a CRM or a sales sequence.
  • A 2GIS API alternative for your app: feed places with coordinates, categories, ratings and hours into your own map, catalog or spreadsheet without applying for an API key.
  • Find new businesses: createdAt says when a place was added to 2GIS, so a weekly run surfaces newly opened places to contact first.
  • Competitor and market research: compare ratings, review counts, average bill and cuisine attributes across a category or district before you open or expand.
  • Location analysis: coordinates, district, postcode and the nearest metro stations with walking distance for every place.
  • Business lists in Dubai, Almaty, Tashkent or Baku: the same fields on the other 2GIS sites, with the site picked automatically from the city name.

✨ Features

  • Contacts for lead lists: phone numbers, emails, websites, and WhatsApp, Telegram, VK, Instagram, Facebook and other social links, as listed on 2GIS. Included in the price.
  • Keyword + city search: type what you're looking for (Ресторан, стоматология, car repair) and a city as you'd write it (Москва, Алматы, Dubai). No URL copying needed. Or paste 2GIS search URLs.
  • Filters: minimum rating, places with a website only, 2GIS category, and sorting by rating. Places outside your filters are skipped and not charged.
  • Full place data: address split into street, house and postcode, floor or entrance, building or shopping centre name, district, region, coordinates, rating and review count, categories, working hours, attributes (average bill, cuisine, payment methods, accessibility…), nearest metro stations, main photo and photo count, 2GIS's short description, and when the place was added to 2GIS.
  • Chains: orgName and branchCount show the company behind a branch and how many branches it has.
  • No duplicates: a place that appears on two result pages is saved and charged once.
  • Respects your budget: the run stops at maxItems or at your maximum cost per run, whichever comes first, and the status message says which.
  • Quick: 50 places with contacts take about a minute.

🛠️ How the 2GIS Parser Works

  1. Enter keywords and a city (Ресторан in Москва), or paste 2GIS search URLs.
  2. Set filters and limits: minimum rating, website only, categories, maxItems (default 50) and maxPages (default 5).
  3. Run the scraper and download the places as JSON, CSV or Excel, or pull them through the Apify API.

⚙️ Input

FieldWhat it does
searchQueriesKeywords to search for, e.g. ["Ресторан", "стоматология"]. Needs city.
cityThe city as you'd type it: Москва, Санкт-Петербург, Алматы, Ташкент, Баку, Dubai… The 2GIS site is picked automatically for 46 main cities. For any other city, use its slug from the 2GIS URL (e.g. tver from 2gis.ru/tver) and set country if it isn't on 2gis.ru.
startUrls2GIS search URLs, e.g. https://2gis.ru/moscow/search/Ресторан. Use instead of, or together with, keywords.
includeContactsAdd phones, emails, websites and socials to each place. On by default.
sortByrelevance (2GIS default) or rating (highest first). Applies to keyword searches.
minRatingOnly places rated at least this on 2GIS (0–5), e.g. 4.5.
websiteOnlyOnly places that list a website (turns contacts on).
categoriesOnly places whose 2GIS category contains one of these words, e.g. ["стомат"]. Case-insensitive.
maxItemsMaximum places in the whole run (default 50, 0 = no limit).
maxPagesMaximum result pages per search, 12 places per page (default 5, 0 = every page). Set 0 to collect all the places 2GIS lists for a search, not only the first 60.
countryAdvanced: the 2GIS domain ending (ru, kz, uz, kg, az, am, ae…) for a city that isn't picked up automatically. Overrides the automatic choice.

Top-rated restaurants in Moscow that have a website:

{
"searchQueries": ["Ресторан"],
"city": "Москва",
"sortBy": "rating",
"minRating": 4.8,
"websiteOnly": true,
"maxItems": 100
}

Dentists in Almaty:

{
"searchQueries": ["стоматология"],
"city": "Алматы",
"categories": ["стомат"],
"maxItems": 100
}

💰 2GIS Data Pricing

Pay only for the places you get. Contacts are included, and places skipped by your filters are not charged.

EventPriceWhat you get
Place$0.0018 per place ($1.80 per 1,000)One place with all fields below, contacts included
Actor start$0.00005 per runCharged once when the run starts

Examples: 50 places (the default) = $0.09 · 100 places = $0.18 · 1,000 places = $1.80.

📊 Sample Output Data

A real row from a search for Ресторан in Москва. schedule, attributes, nearestStations and socials are shortened:

{
"id": "70000001026027886",
"name": "Bar bq cafe",
"nameExtension": "Bar bq cafe",
"address": "Ленинградское шоссе, 16а ст4",
"buildingName": "Метрополис",
"city": "Москва",
"district": "Войковский",
"latitude": 55.824325,
"longitude": 37.494866,
"categories": ["Рестораны", "Бары", "Доставка еды"],
"rating": 4.9,
"reviewCount": 270,
"schedule": {
"Mon": [{ "from": "11:00", "to": "23:00" }],
"Tue": [{ "from": "11:00", "to": "23:00" }]
},
"attributes": {
"Премия 2ГИС": ["Номинант 2026"],
"Ресторан / Кафе": ["Чек 2200 ₽", "Ланч от 450 ₽", "Европейская кухня", "Заказ столиков", "…"],
"Способы оплаты": ["Оплата картой", "Наличный расчёт", "Оплата по QR-коду"]
},
"photoCount": 71,
"photoUrl": "https://i4.photo.2gis.com/main/branch/32/70000001026027886/common",
"postcode": "125171",
"street": "Ленинградское шоссе",
"houseNumber": "16а ст4",
"addressComment": "4 этаж",
"region": "Москва",
"country": "Россия",
"nearestStations": [
{ "name": "Балтийская", "distance": 10, "line": "Московское центральное кольцо" },
{ "name": "Войковская", "distance": 220, "line": "Замоскворецкая линия" }
],
"summary": "Панорамный вид на город, где особенно хвалят бургеры, стейки и авторские коктейли. …",
"badges": [],
"createdAt": "2016-12-17T00:00:00Z",
"updatedAt": "2026-09-28T11:59:48Z",
"orgName": "Bar bq cafe",
"branchCount": 2,
"url": "https://2gis.ru/moscow/firm/70000001026027886",
"searchUrl": "https://2gis.ru/moscow/search/%D0%A0%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D0%BD",
"scrapedAt": "2026-10-19T06:09:22.699Z",
"phones": ["+79663714472", "+74952580995"],
"emails": ["bq@tigrusrest.ru", "pr@barbqcafe.ru", "rkmetropolis@tigrusrest.com"],
"websites": ["http://barbqcafe.ru/"],
"socials": {
"telegram": ["http://t.me/tigrusholding"],
"whatsapp": ["https://wa.me/79663714472"],
"vkontakte": ["https://vk.com/barbqcafe"]
}
}

createdAt is when the place was added to 2GIS (filled for roughly half of places), which makes it useful for finding new businesses. addressComment is the floor or entrance, buildingName the shopping or business centre, and distance in nearestStations is in metres. summary is 2GIS's short description of the place and badges holds 2GIS awards, when it has them. socials is keyed by network (whatsapp, telegram, vkontakte, instagram, facebook, viber…).

🔁 Schedule and Integrate

For lead generation, run the same searches once a week: new places (check createdAt) and changed phones or ratings show up in each fresh dataset. For a one-off city database, a single run per keyword is enough. Set up recurring runs in Apify Schedules, and send the results to Google Sheets, Zapier, Make, n8n or a webhook with Apify integrations, so new leads land in your CRM or sheet automatically.

🤖 Use with AI Agents (MCP)

This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (https://mcp.apify.com). An agent can call it with:

{ "searchQueries": ["стоматология"], "city": "Алматы", "maxItems": 20 }

❓ FAQ about the 2GIS API and Parser

Does 2GIS have an official API? Yes. 2GIS offers developer APIs for places, maps and routing, which need an API key from 2GIS and a commercial agreement for production use. This Actor is the practical alternative when you just need business listings: no key, no approval, the contacts included in every place, and pagination and retries handled for you.

Do I need a 2GIS API key or a 2GIS account? No. The scraper collects the public data anyone sees on the 2GIS website.

Which cities and countries work? 46 main cities are recognised by name, in Russian or English: Moscow, Saint Petersburg, Novosibirsk, Kazan and 29 more in Russia, Almaty and Astana in Kazakhstan, Tashkent, Bishkek, Baku, Yerevan, Dubai, Sharjah and others. For any other city, use its slug from the 2GIS URL and set country to the 2GIS site (ru, kz, uz, kg, az, am, ae…). A city that 2GIS doesn't have on that site returns nothing, and the run fails with a message saying so.

How many places can I get per search? All of them. The 2GIS website stops at 5 pages (60 places) per search, but the scraper keeps going past that: Ресторан in Moscow returns all 3,690 places 2GIS lists. Set maxPages to 0 (every page) and maxItems to how many you want; the status message says how many places 2GIS lists for your searches. Places after the first 60 of a search have no photoCount and photoUrl and an empty attributes; every other field, contacts included, is the same. Several searches in one run are fine: a place found by two searches is saved once.

Why is an email, website or createdAt empty? Contacts are what the business lists on 2GIS, and many places have no email or website. Use websiteOnly to keep only places with one. createdAt is filled for about half of places. If the contacts lookup fails for a page, its places are still saved with contacts set to null, and the run's status message says how many.

What format are phones and websites in? Phones are in international format (+7…), including toll-free 8 800 numbers (+7800…). websites holds real websites only: when a business lists a Telegram channel, VK page or other social link as its website on 2GIS, it goes to socials instead, and redirect wrappers are replaced by the real link. Links have utm_ tracking parameters removed.

Why did I get fewer places than maxItems? Filters are applied to every place as it is collected, so a strict filter may need more pages; maxPages (default 5, so 60 places per search) may have stopped the search, and a search may simply have fewer results. The status message says how many places were skipped by your filters, and whether the run stopped at your maximum cost per run.