2GIS Reviews Scraper API | Парсер отзывов 2ГИС
Pricing
from $0.50 / 1,000 reviews
2GIS Reviews Scraper API | Парсер отзывов 2ГИС
Scrape 2GIS reviews (отзывы 2ГИС) for any place in Russia, Kazakhstan, Uzbekistan, the UAE and more: star rating, full text, date, official business reply, photos and the author's display name, with place name, address, city and rating on every row. Date filter, search. No login.
Pricing
from $0.50 / 1,000 reviews
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
15 days ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.
Export the reviews of any 2GIS place (отзывы 2ГИС) to JSON, CSV or Excel: the star rating, the full text, the date written and edited, the business's official reply, the photos and the reviewer's display name, with the place's name, address, city, district, rating and coordinates on every row. It works with place links from 2gis.ru, 2gis.kz, 2gis.ae and the other 2GIS sites, or with a search in any city 2GIS knows.
Why choose this actor?
- 630 reviews from 2 places in 134 seconds. On 1 Oct 2026 a run read 500 reviews of the Moscow Zoo and all 130 reviews of a Moscow restaurant. It uses the same public reviews service the 2GIS site calls, 50 reviews per call, with no 2GIS account and no browser.
- Stalled calls are retried, not lost. From datacenter IPs some 2GIS calls hang. In that run 4 of 17 review calls hit the 20 second timeout; each was retried on a new session and every page arrived. The wait is included in the 134 seconds above.
- From $0.50 per 1,000 reviews, plus a flat $0.005 per run. Hidden reviews, reviews older than your date filter, places 2GIS does not know, chain or building links, duplicates, refused calls and the information rows are never charged.
Part of The Mine Works Marketing, SEO and reviews family: Facebook Ad Library Scraper, Similarweb Scraper, Google Ads Transparency Scraper, Google News Scraper, Trustpilot Reviews Scraper, Google Trends Scraper.
Try it in one minute
Paste this into the JSON tab of the input page and press Start. It returns the 10 newest reviews of the Moscow Zoo in a few seconds.
{"startUrls": ["https://2gis.ru/moscow/firm/4504127908731515"],"maxReviewsPerPlace": 10,"sort": "newest"}
Give places in startUrls, one per line: a place link copied from the address bar on any 2GIS site (it contains /firm/ and a long number, such as 2gis.ru/moscow/firm/4504127908731515 or 2gis.kz/almaty/firm/70000001088189910, with or without /tab/reviews), or just the place id. The business_id and maps_url values from our 2GIS Scraper work as they are. Or leave startUrls empty and type a searchQuery such as кофейня with a city, and the actor finds the places first. You can use both in one run.
Apify's free plan includes $5 of credit every month, which covers about 4,990 reviews at this actor's price.
Copy to your AI assistant
themineworks/2gis-reviews-scraper-api on Apify. It exports the public reviews of 2GIS places in Russia, Kazakhstan, the UAE and other 2GIS countries (rating, full text, date written and edited, official business reply, photo links, reviewer display name, review source) with the place's name, address, city, district, rating and coordinates on every row. Call ApifyClient("TOKEN").actor("themineworks/2gis-reviews-scraper-api").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: startUrls (array of 2GIS place links containing /firm/<id>, or numeric place ids) or searchQuery (string). Optional: city (default "Москва", a city name in English or the local language, or a 2GIS region id; used only with searchQuery), maxPlaces (default 10, 1 to 200), maxReviewsPerPlace (default 100, 0 means every review up to 10000), sort ("relevance" default or "newest"), reviewsStartDate (a date such as "2026-01-01" or a window such as "30 days"). Rows with a _type field are information rows, not reviews. Full spec: GET https://api.apify.com/v2/acts/themineworks~2gis-reviews-scraper-api/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
Key features
- 29 fields on a review row: 12 about the place (name, address, city, district, country, categories, rating, review count, coordinates, link) and 17 about the review (id, stars, full text, date written, date edited, display name, likes, comments, photos, business reply and its date, review source, sort order, position, input and collection time).
- 2 sort orders: relevance, the order the 2GIS review tab uses, or newest first.
- A date filter that stops early. With
reviewsStartDateset, reviews are read newest first and reading stops at the first older review, so older reviews are neither fetched nor charged. - Up to 500 places per run, read 3 at a time, and up to 10,000 reviews per place, 50 per call. The same place given twice is read once.
- Optional search in any city 2GIS knows, by name in English or the local language (for example
Москва,АлматыorDubai) or by 2GIS region id. It adds up to 200 places in 2GIS's own order. - A run summary for every place in the key-value record
OUTPUT:ok,not_found,no_reviews,none_in_date_window,robots_disallowed,blocked,duplicateorskipped, with the review count 2GIS shows, hidden reviews skipped and calls made.
How to use it
Basic: one place
{"startUrls": ["https://2gis.ru/moscow/firm/4504127908731515"],"maxReviewsPerPlace": 100}
Several places, in several countries, at once
{"startUrls": ["https://2gis.ru/moscow/firm/4504127908731515","70000001057394703","https://2gis.kz/almaty/firm/70000001088189910"],"maxReviewsPerPlace": 200}
maxReviewsPerPlace applies to each place on its own. A place with fewer reviews than that is read completely: the Moscow restaurant above has 130.
Weekly new reviews of your own branches
{"startUrls": ["4504127908731515", "70000001057394703"],"reviewsStartDate": "7 days","maxReviewsPerPlace": 0}
Save this as a task and schedule it every Monday morning, for example with the cron 0 8 * * 1. Each run reads newest first and stops at the first review older than a week, so you pay only for that week's reviews, plus the $0.005 run fee. On 29 Sep 2026 a 30 day window over three places in Moscow and Almaty returned 253 reviews in 33 seconds.
Compare the coffee shops of a city
{"searchQuery": "кофейня","city": "Алматы","maxPlaces": 10,"maxReviewsPerPlace": 50,"sort": "newest"}
On 29 Sep 2026 this search found 1,328 coffee shops in Almaty on 2GIS; the actor took the first ones in 2GIS's order. input on each row reads search: кофейня (<place name>), so you can group rows by shop.
Places in the UAE
{"searchQuery": "coffee","city": "Dubai","maxPlaces": 10,"maxReviewsPerPlace": 20}
2GIS treats the whole UAE as one region, so Dubai searches the country. Pasting 2gis.ae place links works too.
Every review of one place
{"startUrls": ["4504127908731515"],"maxReviewsPerPlace": 0}
0 means every review 2GIS shows, up to 10,000. The Moscow Zoo showed about 5,750 reviews on 1 Oct 2026; at 50 per call that is about 116 calls, so expect a run of several minutes, more if some calls stall.
Start from businesses you already have
Run our 2GIS Scraper for a category and city, then paste its business_id (for example 70000001057394703_s8g4h3J0J0fH43b2G6yH2A0Cxe7g3G59) or maps_url values into startUrls as they are. A list of every car service in a district becomes a review export in one more run.
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
startUrls | array of strings | none | Places, one per line: a place link from any 2GIS site (/firm/<id>, with or without /tab/reviews) or the place id. Up to 500 per run; the same place twice is read once. Short links (go.2gis.com) are not opened (see the FAQ). Leave it empty if you use searchQuery. |
searchQuery | string | none | Optional. A search such as кофейня, автосервис or dentist. The actor finds places in city first, then reads their reviews. Works together with startUrls. |
city | string | Москва | City for the search, in English or the local language, or a 2GIS region id. Only used with searchQuery. |
maxPlaces | integer, 1 to 200 | 10 | How many places the search may add, in 2GIS's own order. |
maxReviewsPerPlace | integer, 0 to 10,000 | 100 | Most reviews per place. 0 means every review 2GIS shows, up to 10,000. |
sort | string | relevance | relevance (the order the 2GIS review tab uses) or newest. |
reviewsStartDate | string | none | Only reviews since a date (2026-01-01) or within a window (30 days, 6 months, 1 year). Reviews are then read newest first, whatever sort says, and reading stops at the first older review. |
The input form in Apify Console starts with the Moscow Zoo link and 50 reviews per place filled in. Runs started through the API or an AI assistant get only what you send, plus the defaults above. A run with neither startUrls nor searchQuery stops at once with an information row that says so.
What data do you get?
One row per review. Fields 2GIS leaves empty for a review are left out of that row rather than sent as null; photo_urls is an empty list when the review has no photos.
The place (repeated on each of its reviews): place_id, place_name, place_url, place_address, place_city, place_district, place_country, place_latitude, place_longitude, place_categories, and place_rating with place_review_count as 2GIS counts them.
The review: review_id, rating (1 to 5 stars), text in full, date when it was written and date_edited when it was last edited (ISO 8601, UTC).
The reviewer: author_name, the display name exactly as 2GIS shows it. Nothing else about the reviewer is collected.
Reactions and media: likes, comments_count, photos_count and photo_urls.
The business's answer: business_reply and business_reply_date, when the business has posted an official reply.
Where the row came from: source (where the review was written: 2gis for most, tbank for reviews collected by a payment app, and other 2GIS partners may appear), sort_order, position in that order, input (the line or search the place came from) and scraped_at.
Information rows: every run that delivers reviews ends with one _type: "info" row, and a run that delivers none adds one that says why. They are never charged. Filter on _type to keep only reviews.
What we saw in the 630 rows of our 1 Oct 2026 run, so you can plan for it:
sourcewas2gison 576 rows andtbankon 54.date_editedwas present on 290 rows. Usedatefor when a review was first written.business_replywas present on only 5 rows: the Moscow Zoo rarely answers. In our 29 Sep search of Almaty coffee shops, 32 of 90 rows had one.photo_urlshad at least one link on 176 rows and was empty on 454.place_review_countcomes from the 2GIS catalog and can differ slightly from the count on the review tab (5,771 against 5,753 for the zoo).
Stable fields for automations
These 15 fields were present in every one of the 630 rows we sampled on 1 Oct 2026, and in our 29 Sep runs in Moscow, Almaty and Dubai. Their names will not change, so a Sheet, Zap, Make scenario or n8n flow can map to them safely.
| Field | What it is |
|---|---|
review_id | 2GIS review id. Use it as the unique key. |
place_id | 2GIS place id |
place_name | Name of the place |
place_address | Street address as 2GIS shows it |
place_city | City of the place |
place_country | Country of the place |
place_rating | Average rating of the place |
place_url | Link to the place on 2GIS |
rating | Stars given in this review, 1 to 5 |
text | Full review text |
date | When the review was written, ISO 8601 in UTC |
author_name | Reviewer's display name as 2GIS shows it |
source | Where the review was written, such as 2gis or tbank |
input | The input line or search the place came from |
scraped_at | When the row was collected, ISO 8601 in UTC |
Output examples
Real rows from our test runs. Long texts are shortened and marked with "...".
An edited review with photos (1 Oct 2026, relevance order, photo list trimmed from 4 links)
{"place_id": "4504127908731515","place_name": "Московский зоопарк","place_address": "Большая Грузинская улица, 1 ст1","place_city": "Москва","place_district": "Пресненский","place_country": "Россия","place_categories": ["Зоопарк"],"place_rating": 4.8,"place_review_count": 5771,"place_latitude": 55.761132,"place_longitude": 37.578438,"place_url": "https://2gis.ru/firm/4504127908731515","review_id": "270936241","rating": 5,"text": "Шикарное место! Был здесь 4 раза и в каждый раз открываю что то новенькое! Особо нравится павильон ластоногие, это не забываемо!","date": "2026-08-21T12:01:32.414Z","date_edited": "2026-08-21T12:04:05.558Z","author_name": "Евгений Павлов","likes": 5,"comments_count": 0,"photos_count": 4,"photo_urls": ["https://cachizer2.2gis.com/reviews-photos/92addbee-c175-46ec-b8e2-700620dde769.jpg","https://cachizer2.2gis.com/reviews-photos/76196e41-58a7-4af6-82f4-8df27fc879f0.jpg"],"source": "2gis","sort_order": "relevance","position": 1,"input": "https://2gis.ru/moscow/firm/4504127908731515","scraped_at": "2026-10-01T13:35:58.981Z"}
A one star review with the official reply (1 Oct 2026, place fields trimmed)
{"place_id": "70000001057394703","place_name": "Restaurant by Deep Fried Friends","place_district": "Таганский","place_rating": 4.9,"place_review_count": 130,"review_id": "253396992","rating": 1,"text": "Не пустили в клуб без объяснения причины. Шли на мероприятие по розыгрышу кольца...","date": "2026-06-26T21:19:12.742Z","likes": 0,"comments_count": 1,"photos_count": 0,"photo_urls": [],"business_reply": "Добрый день! Прохождение фейс-контроля...","business_reply_date": "2026-08-19T13:38:42.882Z","source": "2gis","sort_order": "relevance","position": 51}
A review collected through a payment app (1 Oct 2026, place fields trimmed)
{"place_id": "70000001057394703","place_name": "Restaurant by Deep Fried Friends","review_id": "274777202","rating": 5,"text": "Очень люблю кухню ребят! Всегда отличный сервис...","date": "2025-01-05T18:12:51.522Z","author_name": "Данила С.","photos_count": 0,"source": "tbank","sort_order": "relevance","position": 7}
A place in Dubai found by a search (29 Sep 2026, coffee in Dubai)
{"place_id": "70000001078558500","place_name": "Namelaka","place_address": "Dubai Hills Mall, 999, Umm Suqeim street","place_city": "Dubai","place_district": "Hadaeq Sheikh Mohammed Bin Rashid","place_country": "UAE","place_categories": ["Coffee shop", "Pastry shops"],"place_rating": 4.5,"place_review_count": 8,"place_latitude": 25.100264,"place_longitude": 55.24174,"place_url": "https://2gis.ru/firm/70000001078558500","review_id": "288977935","rating": 4,"text": "Мы очень любим Namelaka: здесь действительно вкусная кухня и прекрасные десерты...","date": "2026-09-02T12:46:41.080Z","likes": 0,"comments_count": 0,"photos_count": 0,"photo_urls": [],"source": "2gis","sort_order": "relevance","position": 1,"input": "search: coffee (Namelaka)","scraped_at": "2026-09-29T18:20:49.538Z"}
Reviewer names are left out of the trimmed samples where they were not needed; the actor returns author_name on every row where 2GIS shows one.
The information row at the end of a run (1 Oct 2026, never charged)
{"_type": "info","delivered": 630,"message": "630 2GIS reviews delivered. This row is informational: it is never billed.","schedule_tip": "Want this refreshed automatically? Apify Console -> this Actor -> Schedules -> Add schedule -> pick how often (e.g. daily) -> Save. It reruns with the same input on autopilot, no code required.","review_tip": "Found this useful? A quick Store review helps other buyers find it: https://apify.com/themineworks/2gis-reviews-scraper-api?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral#reviews","scraped_at": "2026-10-01T13:38:00.271Z"}
One place's entry in the OUTPUT summary (1 Oct 2026; the key-value record, not a dataset row)
{"input": "https://2gis.ru/moscow/firm/4504127908731515","place_id": "4504127908731515","status": "ok","stop_reason": "reached maxReviewsPerPlace (500)","place_name": "Московский зоопарк","reviews_on_site": 5753,"place_details": "catalog","pages_fetched": 10,"pages_failed": 1,"call_attempts": 15,"delivered": 500,"duplicates_skipped": 0,"hidden_skipped": 0,"outside_date_window": 0,"last_error": "connection error: Timeout awaiting 'request' for 20000ms"}
pages_failed: 1 is the page at offset 450, which stalled on its first tries and arrived when the actor asked again on a new session.
Pricing
Pay per event: you are charged for each review saved to your dataset, plus a flat fee once per run. The review price drops as your Apify plan goes up.
| Event | Free plan | Bronze (Starter) | Silver (Scale) | Gold and above (Business) |
|---|---|---|---|---|
review-scraped, per review | $0.001 | $0.00085 | $0.0007 | $0.0005 |
| Per 1,000 reviews | $1.00 | $0.85 | $0.70 | $0.50 |
run-start, per run | $0.005 | $0.005 | $0.005 | $0.005 |
- Start fee: a flat $0.005 per run, charged once when the run starts, whatever memory you choose. It is our own
run-startevent, not Apify's per GB start charge, so a bigger memory setting does not raise it. - Never charged: places 2GIS does not know, chain, building or search links that are not one place, short links the actor may not open, reviews 2GIS marks as hidden, reviews older than your date filter, the same review found twice, calls 2GIS refused, and the information rows.
- Included at no extra cost: the place details on every row, the search, the date filter and the datacenter proxies. There is no residential proxy surcharge, and you pay nothing for platform compute on top of these prices.
- Spending cap: if you set a maximum cost per run in Apify, the actor stops adding reviews once that budget is used, so you never receive rows past your cap.
- No price change is scheduled. These prices have applied since 30 Sep 2026. The Pricing tab always shows the rate for your own plan; if this table and the Pricing tab ever disagree, the Pricing tab is right.
Worked examples on the Free plan: 1,000 reviews cost $1.00 plus $0.005, so $1.005. On Gold, the same 1,000 reviews cost $0.505.
FAQ
What is 2GIS? 2GIS (2ГИС) is a map and business directory used widely in Russia, Kazakhstan and other countries of the region, and in the UAE. Its place pages carry star ratings and written reviews, often with photos and an official answer from the business.
How many reviews can I get?
Up to 10,000 per place and 500 places per run, 50 reviews per call. A place with fewer reviews than your maxReviewsPerPlace is read completely.
How fresh is the data?
Each run reads 2GIS live when it starts. There is no cache. date is when the review was written and date_edited when it was last changed.
Do I need a 2GIS account, cookies or an API key? No. The 2GIS review tab loads its reviews from 2GIS's public reviews service using a public key the site gives every visitor's browser. The actor makes those same calls and reads the place details from 2GIS's public catalog service. If 2GIS changes the public key, the actor reads the new one from 2gis.ru once and carries on.
Do I need a proxy? No setting is needed. The actor goes through Apify datacenter proxies on its own, and that cost is included in the price. Some calls stall from datacenter IPs, so each call has a 20 second timeout and up to 3 tries on new sessions.
Which links work?
Place links with /firm/ and a number, from any 2GIS site, and bare place ids. A link to a chain (/branches/), a building (/inside/, /geo/) or a search page is skipped with a note in the log, because it is not one place; use searchQuery, or paste the links of the branches you want. Short links on go.2gis.com are not opened, because that host's robots.txt disallows all crawling; open the short link in a browser and paste the full place link instead.
Can I read the complaints first?
2GIS offers only relevance and newest first. Export the reviews and sort by rating, or filter for ratings of 1 and 2 in your sheet.
What happens with a wrong link, a hidden review or a place without reviews?
The run carries on with the other places. Each place gets a status in the OUTPUT summary, and nothing is charged for places that return no reviews. Reviews 2GIS marks as hidden are skipped and counted in hidden_skipped.
What if I give no places and no search? The run stops at once with an information row saying what to add. No review is charged, but the flat $0.005 start fee still applies, so check the input before scheduling it.
What if 2GIS refuses calls? A call that fails 3 times is asked for once more; a place stops after 2 pages in a row fail, and the run stops if 2GIS keeps refusing across places. Nothing is charged for refused calls, and reviews already delivered stay in your dataset. A run also stops cleanly before its timeout (one hour by default) and keeps everything delivered so far.
Can I run it on a schedule?
Yes. Save your input as a task, then add a schedule in Apify Console under Schedules, for example every Monday at 08:00. With reviewsStartDate set to 7 days, a weekly schedule gives you each week's new reviews. Each scheduled run is billed like a manual one; the schedule itself costs nothing.
Which formats can I export?
JSON, CSV, Excel, XML, RSS or HTML from the run's Storage tab, or through the Apify API. In CSV and Excel, list fields such as photo_urls are split into numbered columns (photo_urls/0, photo_urls/1 and so on).
Can I use it from Claude, ChatGPT or another AI assistant?
Yes. Connect Apify's MCP server at https://mcp.apify.com/?tools=themineworks/2gis-reviews-scraper-api, or paste the block in "Copy to your AI assistant" above into your assistant.
Is it legal to scrape 2GIS reviews? The actor reads only public reviews that anyone can see without an account, keeps to what robots.txt allows (read fresh at the start of every run, and checked on every redirect), and collects nothing about reviewers beyond the display name shown next to the review. Review text can still contain personal data. You are responsible for how you store and use it, including 2GIS's terms and data protection law such as GDPR, CCPA, Russia's 152-FZ or Kazakhstan's personal data law. This is general information, not legal advice.
Integrations
- Google Sheets: send each run's reviews to a sheet with Apify's Google Sheets integration.
- Make, Zapier and n8n: start a run and read the reviews with the official Apify modules and nodes, for example to post every new one star review to a team chat.
- Webhooks: have Apify call your URL when a run finishes, then fetch the dataset.
- API: start runs and read results over HTTP, or with the Python and JavaScript clients.
- MCP clients: Claude, ChatGPT, Cursor and other MCP clients can call the actor through
https://mcp.apify.com.
More from The Mine Works
Marketing, SEO and reviews
- Facebook Ad Library Scraper
- Similarweb Scraper
- Google Ads Transparency Scraper
- Google News Scraper
- Trustpilot Reviews Scraper
- Google Trends Scraper
- Semrush Scraper
- App Review Monitor
- Trustpilot Business Search
- TripAdvisor Reviews Scraper
- Username Checker
- Backlink Building Agent
Social media and video
Leads and business directories
Real estate
Science, health and government data
Jobs and hiring
E-commerce and marketplaces
Company and business data
Food and local services
Developer and AI tools
More tools
Support
Found a bug or need a field we do not return? Open an issue in the Issues tab. Want a review site or map we do not cover yet? Email dmineworks@gmail.com.
2GIS Reviews Scraper turns any 2GIS place, or a search in any 2GIS city, into review rows with the place details attached, from $0.50 per 1,000 reviews.

