2GIS Places Scraper: Every Result, Contacts
Pricing
from $1.40 / 1,000 places
2GIS Places Scraper: Every Result, Contacts
2GIS places with phones, emails, sites, socials, hours and ratings, every result of a search. $2 per 1,000 places. Russia, Kazakhstan, UAE.
Pricing
from $1.40 / 1,000 places
Rating
0.0
(0)
Developer
Luzi
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
3
Monthly active users
2 hours ago
Last modified
Categories
Share
Get every place a 2GIS search finds, not just the first pages: each search is read to the last result 2GIS counts for it, with phones, emails, websites, social profiles, opening hours, rating and reviews count on every row, at no extra cost. Russia, Kazakhstan, the UAE and every other 2GIS city. No account, login or cookies needed.
Tested daily. Latest checks: an Almaty café search read whole, 2,929 places against the 2,926 that 2GIS counts, in under 5 minutes; and 200 places from two UAE searches in English.
What does this Actor do?
You give it search terms and cities, 2GIS category ids, or 2GIS links. For each search it reads the places 2GIS finds and saves one row per place with everything 2GIS lists for it. A source can be:
- a search term in a city, such as
кафеinMoscowordentistinAlmaty - a category in a city, such as
161(cafes) inAlmaty, read whole - a 2GIS search or category page, such as
https://2gis.ru/moscow/search/кафеorhttps://2gis.ru/moscow/search/Кафе/rubricId/161 - a place page, such as
https://2gis.kz/almaty/firm/70000001012345678
Each row comes with:
- the place id, its link, name (full, short and the kind of business), type (a business, or a building or station a search lists)
- the main category, every category with its id, and the 2GIS summary
- the address as shown and in full, its comment (floor, entrance), postcode, street and house number, the building's name, purpose and floor count, landmark, country, region, city and district, and the coordinates
- phones, emails, websites and social profiles (Telegram, WhatsApp, VK, Instagram, YouTube, …), and every contact as 2GIS lists it, with its comment
- opening hours for each day, as a table and as text, and whether it is open 24/7
- the rating and reviews count, the count of rated reviews, the rating of the whole chain, and the rating and reviews count of each review site 2GIS shows
- the organization and brand behind it, and how many branches each has
- the average check, lunch price, payment methods, awards and every feature 2GIS lists (Wi-Fi, delivery, terrace, …), grouped as on 2GIS
- the nearest stops and metro stations with their distance, parking, and entrances
- whether it advertises on 2GIS, and its promotion text
- when 2GIS added and last updated it, its taxpayer id and staff count where 2GIS shows them
- the search it came from, the number of results 2GIS counts for that search, and its position there
Why use it?
- Every result, checked against 2GIS's own count. A search is read page after page until the last result 2GIS counts, thousands of places if the city has them, and the run says for each search whether all of them were read.
- Contacts on every row at no extra cost. Phones, emails, websites and social profiles are part of each place, not a paid add-on.
- Every 2GIS city. Russia, Kazakhstan, Uzbekistan, Kyrgyzstan, the UAE, Azerbaijan, Armenia, Georgia, Cyprus, Saudi Arabia and the rest, in the city's own language or another 2GIS has for it.
- Use the data anywhere. Download as JSON, CSV or Excel, or send it to your own tools through Apify's API and integrations.
How to use it
- Type Search terms and Cities, add Category ids, or paste 2GIS links.
- Optionally, set Max places per search and Language.
- Click Start. When the run ends, open the Output tab to view the places or download them.
Run it with no input to see a sample: 50 cafes in Moscow, charged as usual.
Input
| Field | What it does | Default |
|---|---|---|
Search terms (searchTerms) | What to search 2GIS for; each term is searched in each city | — |
Cities (cities) | The 2GIS cities to search in, by name or by the code in a 2GIS link | — |
Category ids (categoryIds) | 2GIS category ids to read whole in each city, such as 161 for cafes | — |
2GIS links (startUrls) | Search, category or place pages on any 2GIS site | — |
Max places per search (maxPlacesPerSearch) | The most places to save from each search, category or link (1–50,000) | 100 |
Language (language) | The language of names, categories and addresses | "auto" |
Give at least one search term or category with a city, or a link. Example input:
{"searchTerms": ["dentist", "pharmacy"],"cities": ["Almaty", "Astana"],"startUrls": ["https://2gis.ae/dubai/search/restaurant"],"maxPlacesPerSearch": 1000,"language": "auto"}
Output
One row per place. An example, with made-up values and shortened lists:
{"place_id": "70000001012345678","type": "branch","name": "Example Coffee, coffee house","name_primary": "Example Coffee","short_name": "Example","name_extension": "coffee house","url": "https://2gis.ru/moscow/firm/70000001012345678","category": "Cafes","categories": ["Cafes", "Coffee houses"],"category_ids": ["161", "162"],"summary": "Specialty coffee and pastries","address": "Example street, 12","full_address": "Moscow, Example street, 12","address_comment": "2nd floor","postcode": "100001","street": "Example street","house_number": "12","building_name": "Example Plaza","building_purpose": "Shopping centre","building_floors": 5,"country": "Russia","region": "Moscow","city": "Moscow","district": "Central","latitude": 55.7558,"longitude": 37.6173,"phone": "+70000000000","phones": ["+70000000000"],"email": "hello@example.com","emails": ["hello@example.com"],"website": "https://example.com","websites": ["https://example.com"],"social_profiles": [{ "type": "telegram", "url": "https://t.me/example" }],"opening_hours": {"Mon": [{ "from": "08:00", "to": "22:00" }],"Tue": [{ "from": "08:00", "to": "22:00" }]},"opening_hours_text": "Mon 08:00-22:00; Tue 08:00-22:00; …","is_open_24x7": false,"rating": 4.7,"reviews_count": 312,"rated_reviews_count": 290,"org_rating": 4.6,"org_reviews_count": 1203,"review_providers": [{ "provider": "flamp", "rating": 4.5, "review_count": 40 }],"org_id": "70000001012345677","org_name": "Example Coffee","org_branch_count": 8,"brand_name": null,"average_check": "Average check 600 ₽","payment_methods": ["Card", "Cash"],"awards": [],"features": ["Card", "Wi-Fi", "Takeaway"],"nearest_stations": [{ "name": "Example station", "distance": 300, "route_types": ["metro"] }],"is_advertised": false,"promo_text": null,"created_at": "2019-03-01T00:00:00Z","updated_at": "2026-10-01T00:00:00Z","taxpayer_id": "7700000000","search_query": "кафе","search_city": "Москва","search_total": 8595,"search_order": "relevance","position": 1,"source": "https://2gis.ru/moscow/search/кафе"}
Output fields
place_id,type,url: the place, what it is (branchfor a business; a search can also list abuilding,stationorattraction) and its 2GIS pagename,name_primary,short_name,name_extension,name_addition,full_name,caption: the name as shown, its parts, and the full name of a buildingcategory,categories,category_ids,rubrics: the main category, every category and its id, and each category with its kind and parentpoi_category,purpose,summary: the map category, a building's purpose, and 2GIS's short descriptionaddress,full_address,address_comment,postcode,street,house_number,address_components: the address as shown, in full, its comment, and its partsbuilding_id,building_name,building_purpose,building_floors,landmark: the building the place is incountry,region,city,district,district_id,district_area,living_area,admin_divisions,city_alias: where it islatitude,longitude,centroid,timezone,timezone_offset: the point on the map and the local time zonephone,phones,email,emails,website,websites: the first and every phone, email and websitesocial_profiles: every social or messenger profile, with its kindcontacts: every contact as 2GIS lists it, with its text, its comment and the group it is in (a branch can list a separate group for delivery)opening_hours,opening_hours_text,opening_hours_comment,is_open_24x7,contact_group_hours: hours for each day, as text, any note, 24/7, and the hours of each contact grouprating,reviews_count,rated_reviews_count: the 2GIS rating and its reviewsbranch_rating,branch_reviews_count,recommendation_count,flamp_rating,flamp_reviews_count,review_providers,is_reviewable,is_reviewable_on_flamp: the rating of each review site 2GIS showsorg_rating,org_reviews_count,org_rated_reviews_count: the rating of every branch of the organization togetherorg_id,org_name,org_primary_name,org_extension,org_branch_count: the organization behind the place and its branch countbrand_id,brand_name,brand_extension,brand_branch_count: the brand, for chainsbranches_in_building: how many places 2GIS lists in a buildingemployees_org_count,taxpayer_id: staff count and taxpayer id (INN), where 2GIS shows themaverage_check,lunch_cost,payment_methods,awards,features,attribute_groups: what 2GIS lists about the place, flat and grouped as on 2GIShas_photos,badges: whether it has photos, and any 2GIS badgeis_advertised,is_promoted,promo_text,promo_warning,promo_link_text,promo_link_url: its advertising on 2GIShas_goods,has_pinned_goods,has_discount,has_exchange,has_realty,has_apartments_info,has_dynamic_congestion: what else 2GIS has for itfloors_ground_count,group,is_main_in_group: a building's floors and the group it belongs tonearest_stations,nearest_metro,nearest_parking_ids,parking,entrances,database_entrances: stops, metro, parking and entrancessearch_context: why 2GIS matched it to the searchcreated_at,updated_at: when 2GIS added it and last updated itregion_id,segment_id,locale: the 2GIS city and the language readsearch_query,search_rubric_id,search_city,search_total,search_order,position,source: the search, the number of results 2GIS counts for it, the order it was read in (relevance, 2GIS's own,nameoropened_time), the place's position in that order, and the link or search it came from
How much does it cost?
No surcharges and no paid options; an item that fails is not charged.
This Actor is priced per place saved:
- $2 per 1,000 places ($0.002 a place). A place found by two searches in one run is saved and charged once.
- No start fee, nothing per search, and no extra charge for contacts.
So a search of 500 places costs $1. If you set a maximum cost for a run, the Actor stops when it reaches it and keeps every place saved so far.
How long does a run take?
About 10 seconds for the sample (50 places). A whole Almaty café search, 2,926 places by 2GIS's count, took 276 seconds, about 10 places a second; a search read whole is read in two orders, so it takes about twice the pages of a capped one (the price is per place either way).
Good to know
- A search is read to the end. It stops at Max places per search or at the last result 2GIS counts, whichever comes first; the run's status names any search that ended below 2GIS's count.
- The order depends on whether the whole search fits. When Max places per
search covers every result, the search is read twice, in name order and by
opening date (
search_order), because 2GIS answers from servers whose lists differ slightly and no single order lists every place; each place is saved and charged once. When it does not, you get the first places in 2GIS's own order ("relevance"), and 2GIS's reshuffling between pages can leave a capped search a few places short of the cap. - A city is a 2GIS region. Moscow includes the towns of its oblast, and
2GIS's Dubai covers the whole UAE (
search_citysaysUAE). Add the town or district to the search term to narrow it:restaurant Dubai Marina,cafe Khimki. - Searches list more than businesses. A search can also list buildings,
stations or sights; each row's
typesays which. - A place found twice in a run is saved once, with the first search that
found it as its
source. - Reviews and photos are not included. Each row has the rating and reviews count, not the review texts or photo links.
- Links with filters are not supported yet. Remove the filters from a 2GIS link, or use the matching category id.
- One search that cannot be read does not stop the run. The others carry on, and the run's status lists the ones that could not be read.
- Check your links first. A link that is not a 2GIS search, category or place page stops the run before anything is read, and the message names it.
More Actors from us
- Airbnb Scraper: Every Stay, Past the 15-Page Limit: Every stay of an Airbnb search, past the 15 pages Airbnb shows, checked against its count.
- Alibaba Products Scraper: Price Tiers & Suppliers: Alibaba.com products by keyword or link, with price tiers in US dollars on every row.
- AliExpress Product Scraper: Search Results & Prices: Every product of an AliExpress search to its last page, with exact sold counts and ratings.
- Amazon Product Scraper: Search Results & Prices: Every product on Amazon's search pages to the last page, sponsored marked, with monthly sales.
- App Store Reviews Scraper: All Reviews, Not 500: Every written App Store review of an app, not just the newest 500.
- Woolworths Coles ALDI Scraper: AU Grocery Prices: Woolworths, Coles and ALDI products for any search in one run, every results page to the end.
Use it from an AI agent or the API
One call starts a run and returns its items (Apify waits up to 300 seconds; for a
longer run, start it with POST /v2/acts/…/runs and read its dataset):
POST https://api.apify.com/v2/acts/luzivanlt~2gis-places-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>
With the sample input as its JSON body:
{"searchTerms": ["кафе"],"cities": ["Moscow"],"maxPlacesPerSearch": 50,"language": "auto"}
Its inputs, in the order of the input form:
| Input | What it takes | Default |
|---|---|---|
searchTerms (Search terms) | What to search 2GIS for, as you would type it on the map, e.g. кафе, dentist or car wash. | — |
cities (Cities) | The 2GIS cities to search in, by name in any spelling or by the code in a 2GIS link: e.g. Moscow, Москва, spb, Almaty, Astana, Tashkent or Dubai. | — |
categoryIds (Category ids) | 2GIS category ids to read whole in each city, e.g. 161 for cafes or 164 for restaurants (the number after rubricId/ in a 2GIS category link). | — |
startUrls (2GIS links) | 2GIS search pages (https://2gis.ru/moscow/search/кафе), category pages (https://2gis.ru/moscow/search/Кафе/rubricId/161) or place pages (https://2gis.kz/almaty/firm/70000001012345678), on any 2GIS site: 2gis.ru, 2gis.kz, 2gis.ae, 2gis.uz, 2gis.kg, 2gis.am, 2gis.az, … A link given twice is read once. | — |
maxPlacesPerSearch (Max places per search) | The most places to save from each search, category or link. | 100 |
language (Language) | The language of names, categories and addresses, where 2GIS has it for that city (English for Moscow and Dubai, Kazakh for Almaty, …). | "auto" |
Apify's MCP server, https://mcp.apify.com, lists it as luzivanlt/2gis-places-scraper. To give an
AI agent this Actor as a tool, add the server to the agent's MCP config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=luzivanlt/2gis-places-scraper"}}}
The client signs in with OAuth, or add "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }.
Charged per place delivered; the sample input above costs at most $0.20.
FAQ
Do I need a 2GIS account or cookies? No. The Actor reads what anyone can see on 2GIS.
Can I get all the cafes in a city?
Yes. Add the cafe category id (161) and the city, or the search term кафе,
and raise Max places per search to the number of results you want; the
run says whether all of 2GIS's count was read.
Can I keep a list up to date?
Yes. Run it on a schedule; each row has updated_at and its position, so you
can compare runs.