2GIS Places Scraper — Businesses, Phones, Ratings
Pricing
$2.00 / 1,000 places
2GIS Places Scraper — Businesses, Phones, Ratings
Scrape businesses from 2GIS by city and search term: name, category, address, phones, website, social links, rating, review count, opening hours and coordinates. Dubai, Moscow, Almaty and every 2GIS city. No API key.
Pricing
$2.00 / 1,000 places
Rating
0.0
(0)
Developer
Technical Dost Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
2GIS Places Scraper extracts businesses from 2GIS, the leading map and business directory in Russia, the UAE, Kazakhstan, Central Asia and the Caucasus. Enter a city and what you are looking for (restaurant, dentist, car service) and get every matching place with phone numbers, website, social links (Instagram, WhatsApp, Telegram, Facebook), rating, review count, opening hours, address and coordinates. Use it for lead generation, local market research and competitor mapping. No 2GIS account or API key needed.
What you get
- Search any 2GIS city by name:
dubai,abu_dhabi,moscow,saint_petersburg,almaty,astana,tashkent,bishkek,baku,tbilisiand more. - Contacts from each business page: all phone numbers, emails, website and social profiles (Instagram, WhatsApp, Telegram, Facebook, VK, YouTube...).
- Rating and review count, primary and secondary categories, opening hours, district, coordinates and chain size (branch count).
- Several cities and search terms in one run, with automatic pagination and de-duplication.
- Or paste 2GIS search URLs straight from your browser.
- Pay only per saved place.
How to use 2GIS Places Scraper
- Enter one or more Cities as they appear in 2GIS URLs (for example
dubaifrom2gis.ae/dubai). - Enter Search terms, such as
restaurantorстоматология. - Set Maximum places per search and keep Include contacts on to get phones, website and socials.
- Run the Actor and download the dataset as Excel, CSV or JSON.
Input example
{"cities": ["dubai"],"searchQueries": ["restaurant"],"maxResults": 20,"includeContacts": true}
All fields are described in the Input tab.
Output example
{"id": "70000001055853809","name": "HuQQabaz Garden","fullName": "HuQQabaz Garden, restaurant","category": "Cafe / Restaurants","categories": ["Cafe / Restaurants"],"address": "Mall of the Emirates, 783, Sheikh Zayed road","addressComment": "G Floor","city": "Dubai","district": "Al Barsha 1","latitude": 25.119276,"longitude": 55.19947,"rating": 4.7,"reviewCount": 25,"openingHours": "24/7","branchCount": 4,"organization": "HuQQabaz","phones": ["80047229","+971 582090745"],"emails": [],"website": "http://huqqabaz.com","socials": {"facebook": "https://facebook.com/huqqabaz","instagram": "https://instagram.com/huqqabazgarden","whatsapp": "https://wa.me/971521729383"},"url": "https://2gis.ae/dubai/firm/70000001055853809","searchQuery": "restaurant","scrapedAt": "2026-10-22T22:57:08.812Z"}
Output fields
| Field | Description |
|---|---|
id | 2GIS branch ID. |
name | Business name. |
fullName | Name with type, as shown on 2GIS. |
category | Primary category. |
categories | All categories. |
address | Street address. |
addressComment | Floor, entrance or other address note. |
city | City. |
district | District. |
latitude | Latitude. |
longitude | Longitude. |
rating | Average rating (1-5). |
reviewCount | Number of ratings. |
openingHours | Opening hours, e.g. Mon 10:00-22:00; ... or 24/7. |
branchCount | Number of branches of the organization. |
organization | Organization (chain) name. |
phones | Phone numbers (with Include contacts). |
emails | Emails (with Include contacts). |
website | Website (with Include contacts). |
socials | Social profiles by network, e.g. instagram, whatsapp, telegram. |
url | 2GIS page of the business. |
searchQuery | Search term that found the place. |
scrapedAt | Time of extraction. |
Export results as JSON, CSV, Excel, XML or HTML, or read them with the API.
Use cases
- Build B2B lead lists of local businesses with phones and WhatsApp in the UAE, Russia or Kazakhstan.
- Map competitors in a city and compare ratings and review counts.
- Market research: count businesses per category and district.
- Enrich a CRM with verified addresses, coordinates and opening hours.
How much does 2GIS Places Scraper cost?
This Actor uses pay-per-event pricing: $0.002 per place ($2 per 1,000). Platform usage is included. Searches that find nothing are free.
Set Maximum cost per run in the run options to cap your spend; the Actor stops when the limit is reached.
Use 2GIS Places Scraper with AI agents (MCP)
Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through the hosted Apify MCP server:
$claude mcp add --transport http apify "https://mcp.apify.com/?tools=technicaldost/2gis-places-scraper" --header "Authorization: Bearer YOUR_APIFY_TOKEN"
Or in a JSON MCP config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=technicaldost/2gis-places-scraper","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
The tool is named technicaldost--2gis-places-scraper. Ask your agent, for example, to "run 2GIS Places Scraper with {"cities": ["dubai"], "searchQueries": ["restaurant"], "maxResults": 20, "includeContacts": true}".
Run 2GIS Places Scraper via API
curl -X POST "https://api.apify.com/v2/acts/technicaldost~2gis-places-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"cities": ["dubai"], "searchQueries": ["restaurant"], "maxResults": 20, "includeContacts": true}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("technicaldost/2gis-places-scraper").call(run_input={"cities": ["dubai"], "searchQueries": ["restaurant"], "maxResults": 20, "includeContacts": True})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('technicaldost/2gis-places-scraper').call({"cities": ["dubai"], "searchQueries": ["restaurant"], "maxResults": 20, "includeContacts": true});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Integrations
Schedule runs (daily, hourly) in Apify Console and send results to Google Sheets, Slack, Make, Zapier, n8n, Airbyte or your own webhook.
FAQ
Which cities are supported?
Every city on 2GIS. Use the city part of the 2GIS URL: dubai, sharjah, moscow, novosibirsk, almaty, tashkent and so on. The Actor finds the right country domain automatically.
Why are some phones missing?
Contacts come from each business's 2GIS page. If the business has not published a phone or website on 2GIS, the field is empty. Turn Include contacts off for faster runs without contacts.
In which language are the results?
In the language 2GIS uses for that country: English for the UAE, Russian for Russia and Kazakhstan, and so on.
How many places can I get?
Up to 5,000 per search. 2GIS lists up to about 12 places per page; the Actor follows all pages up to your limit.
Is it legal to scrape this data?
The Actor collects publicly available information only and does not log in or bypass access controls. Use the data in line with the website's terms and the laws that apply to you, especially when processing personal data.