Request a tool
All toolsGuidesMCP serverRequest a toolPlatformsCategories
2GIS Reviews Scraper icon

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.

5 from 1 review on Apify 35 runs on Apify $0.0005 per review ($0.5 / 1,000)
Run this in the cloudRun on Apify →

Maps & Local Lead Generation

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust startUrls, searchQueries, city (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export 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 forWhenPrice
Review returnedCharged once per genuine review row. Sample rows, diagnostics, filtered-out reviews and empty runs are never charged.$0.0005
Actor StartCharged 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

FieldWhat it doesType
startUrlsThe 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
searchQueriesOptional. 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
cityWhich 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
maxReviewsPerPlaceNewest first. 2GIS serves every review a place has, so this is what stops a 5,000-review chain from eating your whole budget.integer
maxItemsHard cap across all places. You are charged per review returned.integer
maxPlacesHow many places to take from the search terms / search URLs. Pasted place URLs count towards this too.integer
sortByHow 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
minRatingKeep only reviews of this many stars or more. 0 keeps everything. Set 1 to drop reviews that carry text but no star rating.integer
onlyWithTextSkip star-only reviews that have no written text.boolean
localeOptional 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:

ratingtextauthorNamedateCreatedplaceNameplaceRatingplaceReviewCountlikesCountphotoCountofficialAnswerTextplaceAddressplaceUrlreviewIdplaceId

Export 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 iconMaps & Local Lead Generation

Yelp Scraper

Scrape Yelp businesses and reviews via Yelp's official Fusion API: rating, review count, price, phone, address, GPS and review text.

Ready to run — no setup

Google Maps Reviews Scraper iconMaps & Local Lead Generation

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.

Ready to run — no setup

Google Maps Reviews Scraper iconMaps & Local Lead Generation

Google Maps Reviews Scraper

Scrape Google Maps reviews by place URL, place ID or search: rating, full text, date, reviewer, owner reply, photo count.

Ready to run — no setup

Yandex Maps Scraper iconMaps & Local Lead Generation

Yandex Maps Scraper

Extract Yandex Maps business listings: name, address, GPS coordinates, category, rating, review count, phone, website and opening hours.

Ready to run — no setup

Google Maps Scraper iconMaps & Local Lead Generation

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.

24 use cases

Google Reviews Monitor — Multi-Location Alerts & Reports iconMaps & Local Lead Generation

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.

4 use cases

See all Maps & Local Lead Generation →

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
}
FieldWhat it does
startUrls2GIS 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.
searchQueriesFind places by term instead of pasting URLs. Use with city.
cityMoscow, Москва, Almaty, Dubai — English or local spelling. A numeric 2GIS city id also works.
maxReviewsPerPlaceNewest first. Stops one 5,000-review chain from eating the whole budget.
maxItemsHard cap across all places. You are charged per review returned.
maxPlacesHow many places to take from the searches.
sortBydate_created, date_edited, trust or friends — the four orders 2GIS itself supports.
minRating / onlyWithTextFilters. Anything filtered out is never charged.
localeLanguage 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

EventWhenPrice
Actor startOnce per run$0.001
ReviewEach 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. reviewUrl points at the place's reviews tab, which is the closest thing 2GIS has. reviewId is stable, so use that as your key.
  • Photos are URLs, not files. photoUrls gives 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_REJECTED diagnostic 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.