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

2GIS Reviews Scraper

Scrape 2GIS reviews by place URL or city: rating, text, author, date, photos, owner replies. No API key. $0.50 per 1,000.

5 from 1 review on Apify 836 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

Pay-per-event pricing: you are billed per result, not per subscription. 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. "Friends first" only means something to someone signed in to 2GIS. This actor reads 2GIS signed out, and there 2GIS returns exactly the "date edited" order.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. 2GIS only has a place in the languages it holds for that country: Kazakh changes the category and address of an Almaty place, while English leaves a Moscow or Almaty place in Russian.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 through Yelp's official Fusion API. Get rating, review count, price, phone, address, GPS and text. Bring your own key.

Ready to run — no setup

Google Maps Reviews Scraper iconMaps & Local Lead Generation

Google Maps Reviews Scraper

Scrape Google Maps reviews: rating, full text, exact date, reviewer, owner reply and photos. Set a date cutoff. No API key. $0.27 per 1,000.

1 use cases

Yandex Maps Scraper iconMaps & Local Lead Generation

Yandex Maps Scraper

Scrape Yandex Maps business listings: name, address, coordinates, rating, reviews, phone, website and hours. No API key. $0.40 per 1,000 places.

1 use cases

Google Maps Scraper iconMaps & Local Lead Generation

Google Maps Scraper

Scrape Google Maps places and reviews. Business name, category, address, rating, GPS coordinates and place ID. $0.27 per 1,000 rows.

28 use cases

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

Google Reviews Monitor — Multi-Location Alerts & Reports

Watch Google reviews for every location on a schedule. Get only the new ones, rating-drop alerts in Slack and AI reply drafts. $1.00 per 1,000 reviews.

4 use cases

2GIS Places Scraper iconMaps & Local Lead Generation

2GIS Places Scraper

Scrape 2GIS places: name, category, address, phone, email, website, rating and hours. Russia, the CIS, the UAE and Cyprus only. $0.50 per 1,000 places.

Ready to run — no setup

See all Maps & Local Lead Generation →

2GIS Reviews Scraper: every review on a place, with the owner's reply

Paste 2GIS place pages, or search a city, and get one row per review: the star rating, the full text as the author wrote it, who wrote it, when, any photos they attached and the business owner's reply. Every row also carries the place it belongs to, down to the address and coordinates.

The one thing to know before you set a big number: 2GIS serves every review a place has ever collected, so a busy chain branch can run to thousands. Set the per-place cap first and the total cap second.

Input2GIS place URLs, place ids, or a search term plus a city
OutputOne row per review
Ceiling20,000 reviews per place, around 5,000 in a single run
Account neededNone, and no API key
Price$0.50 per 1,000 reviews, flat on every plan

💬 What 2GIS Reviews Scraper does

Two ways to name the places, and they work together in one run.

URLs and ids. Paste a place page, the reviews tab of a place, or just the bare numeric place id. A 2GIS search page works too, and every place that search finds gets scraped.

Search terms. Give it a term and a city instead, and it finds the places first, then reads the reviews on each one. maxPlaces is what stops that from running away.

Reviews come back newest first by default. 2GIS has no rating sort of its own, so if you only want the angry ones, pull them in date order and filter on rating afterwards, or use Minimum rating to keep only the stars you care about.

📥 What you give it

{
  "startUrls": ["https://2gis.ru/moscow/firm/70000001044357973"],
  "maxReviewsPerPlace": 200,
  "maxItems": 500,
  "onlyWithText": true
}
FieldDefaultWhat it is
startUrlsbox holds one Moscow placePlace pages, reviews tabs, bare place ids, or 2GIS search pages.
searchQueriesemptyFind places by term instead of pasting URLs. Needs city.
cityemptyMoscow, Москва, Almaty, Dubai, or a numeric 2GIS city id. Only used by the search terms.
maxReviewsPerPlace100How deep to go on one place. This is what keeps a 5,000-review chain branch from eating the run.
maxItems500Hard cap across every place. You are charged per review returned, so this is your spend cap.
maxPlaces10How many places to take in total. Pasted URLs count towards it.
sortBydate_createddate_created, date_edited, trust or friends. 2GIS offers no rating order. friends needs someone signed in to 2GIS, so here it comes back in exactly the date_edited order.
minRating0Keep reviews of this many stars or more. 1 drops the ones with text but no stars.
onlyWithTextfalseSkip star-only reviews with nothing written.
localeAutomaticLanguage for place names and categories, where 2GIS has it: Kazakh changes an Almaty place, English leaves Moscow and Almaty places in Russian. Review text is never translated.
proxyConfigurationleave it aloneOptional. Only fill this in if you want the run to go out through your own servers.

Run it with everything empty and you get one labelled sample row.

📤 What you get back

A real review row from a recent run. The owner's reply ended with an emoji, cut short here:

{
  "reviewId": "294305879",
  "rating": 5,
  "text": "Отличная пиццерия, посидела с парнем все понравилось, было очень вкусно, приятная атмосфера, самая вкусная пицца в городе, вежливый персонал, буду приходить еще",
  "textLength": 160,
  "authorName": "Алина Сидоренко",
  "authorId": "108196462",
  "authorPublicId": "d8b4a52856c24a4baf71635c87d9b68c",
  "authorReviewCount": 1,
  "authorIsVerified": false,
  "dateCreated": "2026-09-05T09:58:14.612353+07:00",
  "dateEdited": null,
  "likesCount": 0,
  "commentsCount": 1,
  "photoCount": 0,
  "photoUrls": [],
  "officialAnswerText": "Спасибо! Круто знать, что вы довольны. Постараемся и дальше только радовать ...",
  "officialAnswerDate": "2026-09-05T11:20:32.795509+07:00",
  "officialAnswerBy": "Додо Пицца, сеть пиццерий",
  "source": "2gis",
  "placeId": "70000001044357973",
  "placeName": "Додо Пицца, сеть пиццерий",
  "placeCategory": "Пиццерии",
  "placeAddress": "Москва, Театральный проезд, 5",
  "placeCity": "Москва",
  "placeCountry": "Россия",
  "placeLatitude": 55.759891,
  "placeLongitude": 37.625011,
  "placeRating": 4.9,
  "placeReviewCount": 296,
  "placeUrl": "https://2gis.ru/moscow/firm/70000001044357973",
  "reviewUrl": "https://2gis.ru/moscow/firm/70000001044357973/tab/reviews",
  "position": 1,
  "scrapedAt": "2026-09-14T05:41:47.687Z"
}
FieldWhat it is
text, textLengthExactly what the author typed, in their own language. Nothing is translated.
ratingStars, 1 to 5. A review can carry text and no stars, in which case this is 0.
authorName, authorReviewCountThe display name 2GIS shows, and how many reviews that person has written.
officialAnswerText, officialAnswerByThe business owner's public reply, and who signed it. null when they never answered.
photoUrls, photoCountLinks to the photos on the review. The files themselves stay on 2GIS.
placeRating, placeReviewCountThe place's own score and total, repeated on every row so one row tells the whole story.
reviewUrlThe place's reviews tab. 2GIS publishes no per-review permalink.
positionWhere the review sat in the order you asked for.

🧾 Reading the output

Three kinds of row can land in your dataset.

RowHow to spot it
A reviewIt has a reviewId and a rating
The sample rowWritten only when the input was empty
A diagnosticIt carries an errorCode

Diagnostic rows are never charged, and neither are reviews your filters dropped.

CodeWhat it means
NO_REVIEWSThat place has no reviews, or none of them passed your filters.
CITY_NOT_FOUND2GIS could not place that city, and the run stops there.
BAD_URLThat entry is not a 2GIS address or a place id.
NO_PLACESThe search found nothing to read reviews from.
NOT_FOUNDThat place id does not exist on 2GIS any more.
API_ERROR, BAD_REQUEST, BAD_RESPONSE2GIS answered, but not with the reviews it normally carries.
NETWORK, BLOCKED, KEY_REJECTED2GIS was unreachable or turned the request down. Worth one re-run.

▶️ How to run it

1. Open 2GIS Reviews Scraper and click Try for free. 2. Paste your place links into 2GIS place URLs, one per line. 3. Set Maximum reviews per place, then Maximum reviews in total as your spend cap. 4. Click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$0.50 per 1,000 reviews. Flat on every Apify plan, no volume tiers.

One row is one review. The sample row, every diagnostic row and every review your filters dropped are not charged. A place with no reviews produces no rows to charge for.

💡 What people use it for

  • Reading what customers say about a competing branch before opening nearby.
  • Tracking a chain's rating across every branch in a city, week by week.
  • Pulling one-star and two-star reviews to find the complaint that keeps repeating.
  • Checking which branches answer their reviews and which ignore them, through officialAnswerText.
  • Feeding review text into a summariser, with the place details already on each row.

🚧 What it does not do

  • No rating sort. 2GIS orders by date or by its own trust score, nothing else. Minimum rating

filters after the fact, it does not reorder.

  • The per-place cap counts what it reads, not what it keeps. With Minimum rating or

Only reviews with text switched on, a place can return fewer rows than you asked for even though more matching reviews exist further down. Raise maxReviewsPerPlace when you filter hard.

  • Around 5,000 reviews in one run. The box will accept 100,000, but rows pile up in memory and a

long run slows down badly. Split a big job across several runs.

  • Paste more places than maxPlaces and the extras are dropped quietly, with no row to tell you.

Raise the cap to match your list.

  • A bad city stops everything, including any place URLs you pasted in the same run, whenever

search terms are in the input too.

  • A hiccup on the first page loses that place. If 2GIS stumbles partway, you get a diagnostic for

the place rather than a partial list. Re-run just that one.

  • Photo links, not photo files. photoUrls points at 2GIS; nothing is downloaded.
  • Display names only. No reviewer emails, no phone numbers. 2GIS does not publish them.

🧭 Which reviews scraper do you need?

If you wantUse
Reviews written about a 2GIS placeThis one
The business listings themselves, with phone and email2GIS Places Scraper
The same job on Yandex MapsYandex Maps Reviews Scraper
The same job on Google MapsGoogle Maps Reviews Scraper

❓ Questions people ask

Do I need a 2GIS account or an API key? No. Nothing to register and no quota to watch.

Which countries have reviews? The ones 2GIS maps: Russia, Kazakhstan, Uzbekistan, Kyrgyzstan, Azerbaijan, Belarus, Georgia, Armenia, Tajikistan, Cyprus and the UAE.

Can I get only the bad reviews? Not directly from 2GIS. Pull them in date order and filter on rating in your own tool, which also lets you keep the text you already paid for.

Is the review text translated? Never. It comes back in whatever language the author used, and locale only affects place names and categories.

Can I run it on a schedule? Yes. reviewId is stable, so a scheduled run plus a dedupe on that field gives you only what is new.

Is scraping 2GIS reviews legal? These are public reviews on public business pages. Apify's write-up on scraping and the law is a good place to start, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the place URL and the run ID. The errorCode on the diagnostic row usually names the problem on its own.