2GIS Reviews Scraper API | Парсер отзывов 2ГИС avatar

2GIS Reviews Scraper API | Парсер отзывов 2ГИС

Pricing

from $0.50 / 1,000 reviews

Go to Apify Store
2GIS Reviews Scraper API | Парсер отзывов 2ГИС

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

15 days ago

Last modified

Share

630 2GIS reviews in 134 seconds: a recorded run read 500 Moscow Zoo reviews and all 130 of a Moscow restaurant in 134 seconds

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.

Run it on Apify

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 reviewsStartDate set, 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 Москва, Алматы or Dubai) 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, duplicate or skipped, 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

ParameterTypeDefaultWhat it does
startUrlsarray of stringsnonePlaces, 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.
searchQuerystringnoneOptional. A search such as кофейня, автосервис or dentist. The actor finds places in city first, then reads their reviews. Works together with startUrls.
citystringМоскваCity for the search, in English or the local language, or a 2GIS region id. Only used with searchQuery.
maxPlacesinteger, 1 to 20010How many places the search may add, in 2GIS's own order.
maxReviewsPerPlaceinteger, 0 to 10,000100Most reviews per place. 0 means every review 2GIS shows, up to 10,000.
sortstringrelevancerelevance (the order the 2GIS review tab uses) or newest.
reviewsStartDatestringnoneOnly 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:

  • source was 2gis on 576 rows and tbank on 54.
  • date_edited was present on 290 rows. Use date for when a review was first written.
  • business_reply was 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_urls had at least one link on 176 rows and was empty on 454.
  • place_review_count comes 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.

FieldWhat it is
review_id2GIS review id. Use it as the unique key.
place_id2GIS place id
place_nameName of the place
place_addressStreet address as 2GIS shows it
place_cityCity of the place
place_countryCountry of the place
place_ratingAverage rating of the place
place_urlLink to the place on 2GIS
ratingStars given in this review, 1 to 5
textFull review text
dateWhen the review was written, ISO 8601 in UTC
author_nameReviewer's display name as 2GIS shows it
sourceWhere the review was written, such as 2gis or tbank
inputThe input line or search the place came from
scraped_atWhen 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.

EventFree planBronze (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-start event, 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

Social media and video

Leads and business directories

LinkedIn

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.