2GIS Reviews Scraper
Extract 2GIS reviews by place URL or city search: star rating, review text, author, date, photos, owner replies and aggregate rating. No 2GIS API key.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
startUrls,searchQueries,city(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0005 per review = $0.5 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Review returned | Charged once per genuine review row. Sample rows, diagnostics, filtered-out reviews and empty runs are never charged. | $0.0005 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.001 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-07, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
startUrls | The places whose reviews you want. Paste 2GIS place pages (https://2gis.ru/moscow/firm/70000001044357973), the reviews tab of a place, or bare numeric place ids. 2GIS search pages (https://2gis.ru/moscow/search/кафе) also work — every place the search finds gets scraped. | array |
searchQueries | Optional. Find places by search term and scrape the reviews of each one. Use with "City" below. 2GIS is a Russian/CIS directory, so local-language terms return more. | array |
city | Which city the search terms apply to. English or local spelling both work ("Moscow", "Москва", "Almaty", "Dubai"). A numeric 2GIS city id works too. Ignored when you only paste place URLs. | string |
maxReviewsPerPlace | Newest first. 2GIS serves every review a place has, so this is what stops a 5,000-review chain from eating your whole budget. | integer |
maxItems | Hard cap across all places. You are charged per review returned. | integer |
maxPlaces | How many places to take from the search terms / search URLs. Pasted place URLs count towards this too. | integer |
sortBy | How 2GIS orders the reviews before this actor takes the first N. There is no rating sort on 2GIS's side — use "Minimum rating" below to keep only the stars you care about. | string |
minRating | Keep only reviews of this many stars or more. 0 keeps everything. Set 1 to drop reviews that carry text but no star rating. | integer |
onlyWithText | Skip star-only reviews that have no written text. | boolean |
locale | Optional 2GIS locale for place names and categories. Review text is always returned exactly as the author wrote it — nothing is translated. Leave as Automatic unless you specifically need another language. | string |
What you get
A structured dataset — each result includes fields like:
ratingtextauthorNamedateCreatedplaceNameplaceRatingplaceReviewCountlikesCountphotoCountofficialAnswerTextplaceAddressplaceUrlreviewIdplaceIdExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Maps & Local Lead Generation
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
Yelp Scraper
Scrape Yelp businesses and reviews via Yelp's official Fusion API: rating, review count, price, phone, address, GPS and review text.
Google Maps Reviews Scraper
Scrape Google Maps reviews at $0.27 per 1,000. Rating, full text, exact date, reviewer and review count, owner reply and photos.
Google Maps Reviews Scraper
Scrape Google Maps reviews by place URL, place ID or search: rating, full text, date, reviewer, owner reply, photo count.
Yandex Maps Scraper
Extract Yandex Maps business listings: name, address, GPS coordinates, category, rating, review count, phone, website and opening hours.
Google Maps Scraper
Scrape Google Maps business listings by category and city: name, phone, website, rating, reviews, lat/lng and place ID. Build local lead lists fast.
Google Reviews Monitor — Multi-Location Alerts & Reports
Track Google Maps reviews across all your locations. Get only-new deltas, negative-review and rating-drop alerts to Slack, plus AI summaries and reply drafts.
Where this tool sits
- Categories
- Maps & Local Lead Generation Reviews & Reputation Data
- Platforms
- 2GIS
2GIS Reviews Scraper API
Pulls customer reviews out of 2GIS — the maps and business directory used across Russia, Kazakhstan, Uzbekistan and the rest of the CIS, plus the UAE and Cyprus.
Paste a 2GIS place URL, or search a city. You get one row per review: star rating, the full review text, who wrote it, when, any photos they attached, and the business owner's reply — plus the place's own aggregate rating and total review count on every row.
$0.50 per 1,000 reviews ($0.0005 each), plus $0.001 each time a run starts. Flat rate — no volume tiers, no plan gates, the same number on your first run as on your millionth. You get the best rate on the free plan, with no subscription to buy first and no inflated fee on every press of Start.
What a row looks like
{
"reviewId": "264464544",
"rating": 5,
"text": "Вкусно очень, все съели, ничего не осталось, даже фото сделать не успели",
"textLength": 72,
"authorName": "Natalia Kim",
"authorId": "30843856",
"authorPublicId": "dc53b75b17f54dc7b0349fd40326bcde",
"authorReviewCount": 8,
"authorIsVerified": false,
"dateCreated": "2026-08-03T18:20:27.790655+07:00",
"dateEdited": "2026-08-03T18:21:20.137947+07:00",
"likesCount": 1,
"commentsCount": 1,
"photoCount": 0,
"photoUrls": [],
"officialAnswerText": "Спасибо за доверие! Приятно узнать, что вам нравится...",
"officialAnswerDate": "2026-08-03T19:10:29.872356+07:00",
"officialAnswerBy": "Додо Пицца, сеть пиццерий",
"source": "2gis",
"placeId": "70000001044357973",
"placeName": "Додо Пицца, сеть пиццерий",
"placeCategory": "Пиццерии",
"placeAddress": "Москва, Театральный проезд, 5",
"placeCity": "Москва",
"placeCountry": "Россия",
"placeLatitude": 55.759891,
"placeLongitude": 37.625011,
"placeRating": 4.9,
"placeReviewCount": 292,
"placeUrl": "https://2gis.ru/moscow/firm/70000001044357973",
"reviewUrl": "https://2gis.ru/moscow/firm/70000001044357973/tab/reviews",
"position": 1,
"scrapedAt": "2026-08-07T21:59:16.328Z"
}
Every row carries the place it belongs to, so you can dump the dataset straight into a spreadsheet without a join. Rows that came from a search term also get a searchQuery field telling you which term found them.
Input
The simplest job — one place, its 100 newest reviews:
{
"startUrls": ["https://2gis.ru/moscow/firm/70000001044357973"],
"maxReviewsPerPlace": 100
}
Reviews for every restaurant a search finds:
{
"searchQueries": ["ресторан"],
"city": "Moscow",
"maxPlaces": 25,
"maxReviewsPerPlace": 200,
"maxItems": 1000
}
| Field | What it does |
|---|---|
startUrls | 2GIS place pages (https://2gis.ru/moscow/firm/70000001044357973), the /tab/reviews version of the same page, or bare numeric place ids. 2GIS *search* URLs work too — every place the search finds gets scraped. |
searchQueries | Find places by term instead of pasting URLs. Use with city. |
city | Moscow, Москва, Almaty, Dubai — English or local spelling. A numeric 2GIS city id also works. |
maxReviewsPerPlace | Newest first. Stops one 5,000-review chain from eating the whole budget. |
maxItems | Hard cap across all places. You are charged per review returned. |
maxPlaces | How many places to take from the searches. |
sortBy | date_created, date_edited, trust or friends — the four orders 2GIS itself supports. |
minRating / onlyWithText | Filters. Anything filtered out is never charged. |
locale | Language for place names and categories. Review text is never translated. |
Run it with no input at all and it returns a single labelled sample row so you can see the shape. That run is not charged.
How much you get back
2GIS serves every review a place has — there is no depth limit like the one on its place search. Measured on the real thing: Додо Пицца, Театральный проезд 5 reports 292 reviews and the actor returns all 292, no duplicates, in 6.8 seconds.
From a live 1,000-review run across 7 Moscow restaurants: text on 1,000/1,000, star rating 1,000/1,000, author name 1,000/1,000, date 1,000/1,000, place name and aggregate rating 1,000/1,000. 735 of them had an owner's reply attached, 72 had photos, 199 had at least one like. The star split was 864 five-star, 66 four, 18 three, 7 two, 45 one — so the negative reviews are in there, not filtered away.
Speed: 1,000 reviews across 25 places in about 90 seconds.
Countries
2GIS is a regional directory, not a global one. It covers Russia, Kazakhstan, Uzbekistan, Kyrgyzstan, Azerbaijan, Belarus, Georgia, Armenia, Tajikistan, Cyprus and the UAE. Reviews were confirmed working in Moscow, Almaty, Tashkent and Dubai. If you need reviews outside that list, 2GIS is the wrong source.
Reviews are written in whatever language the customer used — mostly Russian, even in Dubai.
Pricing
| Event | When | Price |
|---|---|---|
| Actor start | Once per run | $0.001 |
| Review | Each review row returned | $0.0005 ($0.50 / 1,000) |
Sample rows, error rows, diagnostics and reviews removed by your own minRating / onlyWithText filters are never charged. A run that finds nothing costs you $0.001.
100 reviews = $0.051. 1,000 reviews = $0.501. 10,000 reviews = $5.001.
Both numbers are flat on every Apify plan — no volume tiers, no plan gates, no minimum spend — so the cost of a run is exactly the review count times $0.0005, plus one cent-fraction for the start, whichever plan you are on.
Worth noting about what is *included*: the place's own name, address, coordinates, aggregate rating and total review count come back with every review row at no extra charge, so you do not have to pay for a separate place look-up to know which business a review belongs to.
How it works
The reviews tab on a 2GIS place page is fed by a service of its own, separate from the maps catalog: public-api.reviews.2gis.com. It answers plain JSON with no anti-bot challenge, authenticated by the public key 2GIS ships in its own front-end config. This actor reads that key live at start-up, so a key rotation on 2GIS's side does not need a redeploy — and there is a built-in fallback if the lookup ever fails.
Paging is a date cursor, not a page number, so a walk down a busy place never repeats a review or skips one.
Place names, addresses and coordinates come from the 2GIS catalog API in the same run, which is why every review row already knows which business it belongs to.
No browser, no residential proxy, no headless Chrome. Requests are made with a real Chrome TLS fingerprint (impit), which is what keeps both APIs answering consistently from a datacenter.
Limits, stated honestly
- No rating sort. 2GIS offers exactly four orders — newest by post date, newest by edit date, its own "trust" order, and friends-first. If you want only the 1-star reviews, pull them and filter with
minRating; there is no way to ask 2GIS for them directly. - Author names are display names. 2GIS does not expose reviewer emails or profile links, so neither does this actor. You get the name, a stable id and how many reviews that person has written.
- Review permalinks do not exist.
reviewUrlpoints at the place's reviews tab, which is the closest thing 2GIS has.reviewIdis stable, so use that as your key. - Photos are URLs, not files.
photoUrlsgives you the full-size image links; downloading them is your side. - The public web key can rotate. The actor re-reads it on every run, so a rotation is usually invisible. If 2GIS ever revokes it outright, runs return an uncharged
KEY_REJECTEDdiagnostic instead of silently returning nothing. - A place with no reviews returns a diagnostic, not a row. Uncharged.
- Not a global directory. See the country list above.
FAQ
Can I scrape 2GIS reviews without an API key of my own? Yes. This actor uses the public key 2GIS's own website uses. You do not register anything with 2GIS.
How do I get all reviews for one business? Paste its 2GIS URL into startUrls and set maxReviewsPerPlace above the review count shown on the page. 2GIS serves the whole history.
Can I monitor reviews for a list of my locations? Yes — put all the place URLs in startUrls, set sortBy to date_created and maxReviewsPerPlace to something small like 20, and run it on a schedule. reviewId tells you which ones are new.
Does it return the business's reply to a review? Yes, in officialAnswerText with its date. About three quarters of reviews in a Moscow restaurant sample had one.
Does it return the star rating of the business itself? Yes. placeRating and placeReviewCount are on every row, read from 2GIS's reviews service rather than the cached catalog figure.
Can I filter to negative reviews only? Not on 2GIS's side. Pull them and use minRating, or filter the dataset afterwards. Reviews you filter out are not charged.
Does it work outside Russia? Yes, anywhere 2GIS operates — verified in Almaty, Tashkent and Dubai. The reviews themselves are usually still in Russian.
What does it actually cost me? $0.001 when the run starts, then $0.0005 per review returned — so $0.501 for 1,000 reviews, on any Apify plan. Nothing else bills: no proxy, no browser, no per-place fee. Compare the pricing tab of any other 2GIS reviews actor, and check which of their numbers is the free-plan one.