2GIS Reviews Scraper API
Pricing
Pay per event
2GIS Reviews Scraper API
Every review on a 2GIS place: star rating, full text, author, date, photos and the owner's reply, plus the place's aggregate rating, review count and address on every row. Paste place URLs or search a city. $0.50 per 1,000 reviews plus $0.001 per run start.
Pricing
Pay per event
Rating
5.0
(1)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Paste a 2GIS place URL, or search a city. You get one row per review: the star rating, the full
text, who wrote it, when, any photos they attached, and the business owner's reply. Every row also
carries the place's own aggregate rating and total review count, so you don't need a second lookup
to know which business a review belongs to.
2GIS covers Russia, Kazakhstan, most of the CIS, plus Cyprus and the UAE. Full country list under "Where it works" below, and if your market isn't on it, this is the wrong Actor.
$0.50 per 1,000 reviews ($0.0005 each), plus $0.001 each time a run starts. Same rate on the free plan as on any paid one.
A row
{"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": "Додо Пицца, сеть пиццерий","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"}
Rows that came from a search term also carry a searchQuery field telling you which term found them.
Input
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, the /tab/reviews version of the same page, or bare numeric place ids. 2GIS search URLs work too and every place they find gets scraped. |
searchQueries | Find places by term instead of pasting URLs. Use with city. |
city | Moscow, Москва, Almaty, Dubai. English or local spelling, or a numeric 2GIS city id. |
maxReviewsPerPlace | Newest first. Stops one 5,000-review chain from eating the whole budget. |
maxItems | Hard cap across all places. You're charged per review returned. |
maxPlaces | How many places to take from the searches. |
sortBy | date_created, date_edited, trust or friends. Those are 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 and you get a single labelled sample row, uncharged.
How much comes back
2GIS serves every review a place has. There's no depth limit like the one on its place search. Measured on the real thing: Додо Пицца on Театральный проезд 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, star rating, author name, date, place name and aggregate rating on 1,000/1,000. 735 had an owner 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 and not quietly filtered away.
Speed: 1,000 reviews across 25 places in about 90 seconds.
Where it works
2GIS is a regional directory, not a global one: Russia, Kazakhstan, Uzbekistan, Kyrgyzstan, Azerbaijan, Belarus, Georgia, Armenia, Tajikistan, Cyprus and the UAE. Reviews were confirmed working in Moscow, Almaty, Tashkent and Dubai. Outside that list, 2GIS is the wrong source.
Reviews come in whatever language the customer wrote them, which is mostly Russian even in Dubai.
Limits
- No rating sort. 2GIS offers four orders and none of them is by stars. If you only want the
1-star reviews, pull them and use
minRating, or filter afterwards. - Author names are display names. 2GIS doesn't expose reviewer emails or profile links, so neither does this. You get the name, a stable id and how many reviews that person has written.
- Review permalinks don't exist.
reviewUrlpoints at the place's reviews tab, which is as close as 2GIS gets.reviewIdis stable, so key on that. - Photos are URLs, not files.
photoUrlsgives you the full-size links. Downloading them is your side. - The public web key can rotate. The Actor re-reads it at the start of every run, so a rotation
is usually invisible. If 2GIS revokes it outright you get an uncharged
KEY_REJECTEDrow instead of silence. - A place with no reviews returns a diagnostic, not a row, and isn't charged.
Billing
| Event | When | Price |
|---|---|---|
| Actor start | Once per run | $0.001 |
| Review | Each review row returned | $0.0005 |
100 reviews is $0.051. 1,000 is $0.501. 10,000 is $5.001. Flat on every Apify plan, no volume tiers, no minimum spend, no per-place fee.
Sample rows, error rows, diagnostics and reviews removed by your own minRating or onlyWithText
filters are never charged. A run that finds nothing costs $0.001.
The place's name, address, coordinates, aggregate rating and review count ride along on every review row at no extra charge.
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 startup, so
a rotation on 2GIS's side doesn't need a redeploy, and there's a built-in fallback if the lookup
fails.
Paging is a date cursor rather than a page number, so a walk down a busy place never repeats a review or skips one.
No browser, no residential proxy, no headless Chrome. Requests carry a real Chrome TLS fingerprint
(impit), which is what keeps both APIs answering consistently from a datacenter address.
FAQ
Do I need a 2GIS API key? No. It uses the public key 2GIS's own website uses. You register nothing.
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 a list of my locations? Yes. Put every place URL in startUrls, set sortBy to
date_created and maxReviewsPerPlace to something small like 20, and schedule it. reviewId
tells you which ones are new.
Does it return the owner's reply? Yes, in officialAnswerText with its date. About three
quarters of reviews in a Moscow restaurant sample had one.
Does it work outside Russia? Anywhere 2GIS operates. Verified in Almaty, Tashkent and Dubai. The reviews are usually still in Russian.