2GIS Reviews Scraper — Written Reviews by Source avatar

2GIS Reviews Scraper — Written Reviews by Source

Pricing

from $0.17 / 1,000 reviews

Go to Apify Store
2GIS Reviews Scraper — Written Reviews by Source

2GIS Reviews Scraper — Written Reviews by Source

Export a 2GIS business's written reviews with the stars, full text, both dates, the reviewer's name and review count, the photo count and the business's own reply. Each row names which source it came from, because 2GIS aggregates Flamp, Booking and others under one listing.

Pricing

from $0.17 / 1,000 reviews

Rating

0.0

(0)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

3 days ago

Last modified

Share

2GIS Reviews Scraper

Every written review of a 2GIS business, as a spreadsheet. Each row carries the stars, the full text in the language it was written in, both dates, likes and comment counts, how many photographs the reviewer attached, the reviewer's name, public id and own review count, the business's reply where it has replied — and one field most review exports do not have.

Which source the review came from. 2GIS aggregates its own reviews with Flamp, Booking, Avito and others under a single listing, and they are not the same corpus. A rating average that mixes them is a different number from one that does not, so every row names its provider and the row also carries the full list of sources that branch aggregates.

Accepted input

placeIds is required and takes one 2GIS branch id per line — exactly the id every 2GIS Search Scraper row publishes. A 2GIS place link and the decorated id from a raw 2GIS search response both reduce to the same value and can be mixed into the same list.

sort chooses the ordering. date_created is newest first and the default; date_edited puts recently edited reviews first; friends and trust are 2GIS's social and trust-weighted orderings. That is 2GIS's own allowed set, quoted from the refusal it returns for anything else, so there is nothing outside it to offer.

locale is optional and takes one of the city's own locales, written as ru_RU or en_AE. Leave it empty for the city's default.

maxItems defaults to 100 and caps each business separately, so twenty businesses with a cap of 100 returns up to 2,000 rows rather than 100 shared between them. 0 means no limit — and on this surface no limit genuinely means all of them.

{
"placeIds": ["70000001007179642"],
"sort": "date_created",
"maxItems": 200
}

Response fields

{
"requested_id": "70000001007179642",
"review_id": "271440829",
"review_rating": 5,
"review_text": "Отлично!)))",
"date_created": "2026-08-23T03:46:23.263816+07:00",
"date_edited": null,
"likes_count": 0,
"comments_count": 0,
"photo_count": 2,
"provider": "2gis",
"author_id": "54832258",
"author_name": "Марианна Винокурова",
"author_public_id": "b5702370dd1141b080fb8693fe2991fc",
"author_reviews_count": 2,
"official_answer_text": "Спасибо за отзыв!",
"official_answer_date": "2026-08-24T09:12:00+07:00",
"branch_rating": 4.8,
"branch_review_count": 1091,
"total_reviews": 1039,
"providers": ["flamp", "2gis"],
"sort": "date_created"
}

Fields absent from a review are returned as null rather than omitted, so every row has the same shape.

Two review counts are published and they disagree on purpose. branch_review_count is what the business's place card shows — 1,091 on the measured branch — and total_reviews is how many this endpoint will actually serve — 1,039 on the same one. The difference is star-only ratings: 2GIS counts them on the card and returns only written reviews here. Publishing the larger alone makes a complete walk look truncated; publishing the smaller alone misstates the business. The run log says both at the top of each business.

provider names the source of that individual review; providers lists every source the branch aggregates. Filter on provider before averaging anything.

The review's own fields are namespaced away from the business's: review_rating is the stars that review gave and branch_rating is the business's aggregate, on the same row. A dataset that used rating for both would be unsortable.

author_reviews_count is how many reviews that person has written in total, which is the cheapest signal available for weighting a reviewer's opinion.

Behaviour on partial results

A branch that no longer resolves is skipped with a line in the run log and the rest of the list still runs. An entry that is not a branch id is skipped before any request is made.

The walk goes to the end and nothing about it expires. It is an offset counter against the stated total, not a cursor: a branch stating 1,039 written reviews served all 1,039 and answered an empty list past that. So an interrupted run resumes exactly where it stopped, and maxItems: 0 really does mean every review.

A business with no written reviews is a successful run with no rows. Its branch_review_count can still be non-zero — those are the star-only ratings, and there is no text to return.

Frequently asked questions

Why does the business say 1,091 reviews and this Actor returns 1,039? Because 2GIS counts star-only ratings on the place card and returns only written reviews here. Both numbers are on every row, as branch_review_count and total_reviews, and the run log states both before the walk starts. A walk that reaches total_reviews is complete.

Some reviews came from Flamp or Booking. Why? Because 2GIS aggregates several review sources under one business listing. They are genuinely attached to that business, but they are not the same corpus and they are not moderated the same way. provider on every row lets you separate them; providers lists all of them for the branch.

Can I get reviews for a business I only have a name for? Not directly. 2GIS Search Scraper is the lookup by name, and its rows carry the ids this takes.

Which sort should I use? date_created for a chronological corpus, which is what most analysis wants. trust if you are reading a handful of reviews and want 2GIS's own idea of the most credible first. The set is 2GIS's, and nothing outside it is offered because 2GIS refuses anything else outright.

Does an ordering change which reviews I get, or only their order? Only their order, on a complete walk. If you cap the run with maxItems, the ordering decides which slice you keep — which is exactly when trust or date_created matters.

Is a 2GIS account or API key required? No. No account, session cookie or key of any kind is supplied to the Actor or needed by it.

2GIS Search Scraper is where the ids come from: business search across 206 cities, with a flag on every row saying whether 2GIS matched the query at all.

2GIS Business Scraper takes the same ids and returns the phone numbers, websites and email addresses a search row never carries.

2GIS Scraper puts this export and the business search behind one mode picker, if you would rather run one Actor than two.