2GIS Scraper: Businesses, Phones & Categories avatar

2GIS Scraper: Businesses, Phones & Categories

Pricing

from $0.50 / 1,000 businesses

Go to Apify Store
2GIS Scraper: Businesses, Phones & Categories

2GIS Scraper: Businesses, Phones & Categories

Scrape 2GIS business listings across Russia, Central Asia, Cyprus and the UAE. Phone numbers, published emails, ratings, addresses and branch counts, by city or category.

Pricing

from $0.50 / 1,000 businesses

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

2GIS Scraper: Businesses, Phones, Emails & Ratings

🏆 Part of The Mine Works' 149-actor portfolio · 40,000+ runs · 200,000+ results delivered across our full distribution stack · 99.9%+ success rate

💰 $0.50 / 1,000 results.

⚡ Business listings across roughly 200 cities in Russia, Central Asia, Cyprus and the UAE: phone numbers, published emails, ratings, branch counts and coordinates, read from 2GIS's own catalog API rather than scraped out of HTML. 💸 No login, no API key of your own.

Pay only for results delivered. Browse all Actors.

Scrape business listings from 2GIS, the mapping and business directory used across Russia, Kazakhstan, Uzbekistan, Azerbaijan, Cyprus and the UAE. No login, no API key of your own, no browser.

✅ Phone on 97% of records · ✅ Website on 91% · ✅ Email on 71% · ✅ Rating and review count on 99% · ✅ Around 200 cities · ✅ Empty runs never billed

Scrape businesses by category and city

{
"queries": ["кафе"],
"city": "Москва",
"maxItems": 500
}

Search in the local language for far better coverage. A single query like кафе in Moscow has over 8,600 businesses behind it.

Any city 2GIS covers

The city field takes a name in its local spelling and is resolved against 2GIS's own live city list, so all roughly 200 covered cities work, not a fixed shortlist.

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

Moscow · Saint Petersburg · Novosibirsk · Yekaterinburg · Kazan · Almaty · Astana · Tashkent · Baku · Cyprus · Dubai and many more. A numeric 2GIS region id also works if you already have one.

What you get for each business

Real record from a live run:

{
"name": "Му-Му, кафе",
"category": "Кафе",
"categories": ["Кафе", "Доставка еды", "Быстрое питание", "Столовые"],
"address": "Манежная площадь, 1 ст2",
"district": "Тверской",
"city": "Москва",
"latitude": 55.755301,
"longitude": 37.614586,
"phone": "+7 (495) 781-87-81",
"website": "cafemumu.ru",
"email": "dostavka@cafemumu.ru",
"social_links": ["https://vk.com/cafemumu"],
"rating": 4.8,
"review_count": 1094,
"chain_name": "Му-Му, кафе",
"chain_branch_count": 18,
"is_chain": true
}
FieldDescription
🏢 name, category, categoriesBusiness name and every category 2GIS assigns it
📍 address, building, district, city, region, country, postcodeFull location breakdown, including city district
🌐 latitude, longitudeCoordinates, named explicitly so there is no lat/lon swap
📞 phone, phonesPrimary number plus every other number listed
🔗 website, websitesReal hostname, with 2GIS's redirect wrapper stripped off
📧 email, emailsPublished contact addresses
💬 social_linksVK, Telegram, Instagram, Facebook, WhatsApp, YouTube profiles
rating, review_countStar rating and review volume
🏬 chain_name, chain_branch_count, is_chainWhether this is one outlet of a chain, and how many branches it has
🕒 schedule_is_24x7Whether the business is always open

Why the email coverage is unusual

Most business-directory scrapers return a phone and nothing else. This one returns a published email on roughly 7 in 10 records, because 2GIS's own directory carries them. For outbound work that is often the difference between a usable list and one that needs a separate enrichment step.

How this actor gets contact details

Worth knowing, because it explains the coverage. 2GIS's search page HTML contains no contact details at all: its embedded state carries entrances, nearest metro and parking, but no phone, website or email. An HTML-scraping build of this actor returned 53 businesses with zero phones and zero websites.

This actor instead reads 2GIS's own public catalog API, the one their website's frontend uses, which returns contacts inline. That single change means:

HTML routeThis actor
Businesses per request1250
Phone and websitenone at all97% / 91%
Results reachable per query53 before repeating8,600+

You do not need an API key of your own. The actor reads 2GIS's public browser key from their site at startup and falls back to a known value, so a key rotation does not break your runs.

Common use cases

B2B lead generation across Russia and Central Asia, with phone and email in the same record.

Franchise and retail site selection, using district, coordinates and local competitive density.

Chain and competitor mapping. The chain_branch_count field separates independents from multi-branch operators in one pass.

Market sizing. Every query reports how many businesses exist in that city and category.

Pricing

EventPriceYou pay when
Business$0.0005A 2GIS business record is delivered to your dataset
Actor Start$0.005Once per run start (one event per GB of memory, minimum one)

Flat rate, the same on every Apify plan from Free to Diamond. A query that returns nothing delivers nothing and bills nothing beyond the start event.

Run it on a schedule

  1. Run once with the input you want repeated, then click Save as a task.
  2. Turn on Monitor mode so later runs return only newly listed businesses.
  3. In the Apify Console go to Schedules and add the saved task.

Nothing is charged just for a schedule existing.

FAQ

Do I need a 2GIS API key? No. The actor uses the same public browser key 2GIS's own website uses, and reads it live so rotations do not break anything.

Should I search in Russian or English? In the local language, for anything generic. аптека vastly outperforms pharmacy.

How deep can one query go? Very deep. A common category in a large city has thousands of businesses, and the actor pages through them 50 at a time up to your maxItems.

Are duplicates possible? No. Every business is deduplicated on its 2GIS id within a run, and monitor mode extends that across runs.

Is this GDPR compliant? It collects business contact details that businesses have published in a public directory. You are responsible for having a lawful basis for contacting them.

Use from Claude, ChatGPT and any MCP agent

https://mcp.apify.com/?tools=themineworks/2gis-places-search
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/2gis-places-search').call({
queries: ['кафе'],
city: 'Москва',
maxItems: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Part of the Russia and CIS local business suite

Cross-check the same city on Yandex Maps Search for a second source of ratings and contact data, or pull live marketplace pricing from Ozon Product Search if you are looking at the retail side of the same market.

Keywords: 2GIS scraper, Russia business directory API, Central Asia business listings, business phone number scraper Russia, 2GIS catalog API, CIS lead generation, franchise site selection Russia