2GIS $1💰 Extract Phones, Emails, Reviews & Locations avatar

2GIS $1💰 Extract Phones, Emails, Reviews & Locations

Pricing

from $1.00 / 1,000 results

Go to Apify Store
2GIS $1💰 Extract Phones, Emails, Reviews & Locations

2GIS $1💰 Extract Phones, Emails, Reviews & Locations

From $1/1K. Extract business and place data from 2GIS.com at scale. Get names, addresses, phones, emails, websites, social links, opening hours, ratings, reviews, photos, coordinates, and 80+ fields per place. Supports all regions covered by 2GIS with fast, low-cost extraction.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

AbotAPI

AbotAPI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

2GIS Places Scraper (Phones, Emails, Reviews)

Extract places from 2GIS at scale: names, addresses, phones, emails, websites, social links, per-day opening hours, ratings, reviews, photos, coordinates, and 80+ fields per place. Works across Russia, Kazakhstan, Uzbekistan, Kyrgyzstan, Azerbaijan, Georgia, Armenia, Belarus, the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain, Oman, Cyprus, Czechia, Italy, Chile and every other region 2GIS covers. One flexible search mode, a URL mode, a fast JSON pipeline, and a low running cost.

Why this scraper

  • 80+ fields per place, including every contact channel split out individually (primary phone, all phones, email, website, WhatsApp, Telegram, Instagram, VK, and more).
  • One flexible search: combine a WHAT (queries and/or categories) with a WHERE (city, coordinates with a radius, or a map-area bounding box) in a single mode, plus a separate URL mode for direct 2GIS links or IDs. Every field is optional and they work together.
  • Reviews on demand: pull full review text, author, rating, date, source (2GIS or Flamp), photos, and the official reply.
  • Structured opening hours: all seven days, each with an explicit open or closed status, plus a ready-to-read summary string.
  • Runs on free datacenter proxy: no premium proxy required, which keeps every run cheap and fast.
  • Nothing dropped: the full upstream contact, attribute, and administrative blocks are passed through verbatim alongside the flat fields.

Data you get

Sample shape: values are illustrative placeholders, not from a live listing.

FieldExample
nameSample Cafe
rating4.8
reviewCount0
phone+70000000000
phones["+70000000000"]
emailcontact@example.com
websitehttp://example.com
whatsapphttps://wa.me/70000000000
telegramhttps://t.me/example
instagramhttps://instagram.com/example
vkhttps://vk.com/example
fullAddressCity, Sample Street, 1
citySample City
districtSample District
streetSample Street
houseNumber1
postcode000000
latitude55.0000
longitude37.0000
primaryRubricCafes
rubrics["Cafes", "Coffee shops"]
nameExtensioncafe
orgRating4.7
orgReviewCount0
flampRating4.8
nearestStations[{"id": "0000", "distanceMeters": 300}]
badges[{"text": "Award winner", "type": "award"}]
floorCount2
isPromotedfalse
isAdvertisedfalse
is24x7false
hoursTextMon: 09:00-21:00; Tue: 09:00-21:00; ...
photos["https://cdn.example.com/0000.jpg"]
orgNameSample Org
orgBranchCount1
isPromotedfalse
urlhttps://2gis.ru/city/firm/00000000

Review records (when maxReviews is above zero) are written to the same dataset with recordType set to review:

FieldExample
recordTypereview
placeId00000000
placeNameSample Cafe
rating5
textFull review text appears here.
authorNameJane Doe
authorPhotoUrlhttps://cdn.example.com/profile/0000.jpg
authorReviewsCount0
dateCreated2026-01-01T00:00:00.000Z
likesCount0
commentsCount0
hasOfficialAnswertrue
provider2gis
officialAnswerTextThank you for your feedback.
reviewUrlhttps://2gis.ru/moscow/firm/00000000/tab/reviews
photos["https://cdn.example.com/0000.jpg"]

How to use

Search mode combines a WHAT (queries and/or categories) with a WHERE (city, coordinates, or map area). Every field is optional. WHERE precedence: map area beats coordinates beats city.

By text query in a city

{
"mode": "search",
"query": ["coffee shop", "bakery"],
"city": "Moscow",
"maxResults": 200
}

By category in a city

{
"mode": "search",
"categoryQuery": ["Restaurants", "Pharmacies"],
"city": "Almaty",
"maxResults": 500
}

Around coordinates (radius)

{
"mode": "search",
"query": ["pizza"],
"latitude": "55.7558",
"longitude": "37.6173",
"radiusMeters": 1000,
"maxResults": 100
}

In a map area (bounding box)

{
"mode": "search",
"categoryQuery": ["Pharmacies"],
"bbox": "37.55,55.70,37.70,55.80",
"maxResults": 300
}

Everything in an area (no query)

{
"mode": "search",
"latitude": "55.7558",
"longitude": "37.6173",
"radiusMeters": 500,
"maxResults": 100
}

From 2GIS URLs or IDs

{
"mode": "url",
"urls": [
"https://2gis.ru/moscow/firm/70000001063551091",
"https://2gis.ru/moscow/search/coffee",
"70000001063551091"
],
"maxReviews": 50
}

Input parameters

ParameterTypeDefaultDescription
modestringsearchsearch or url.
queryarray["кофейня"]WHAT to find, as text. Each query runs separately. Optional.
categoryQueryarray[]WHAT to find, as category names. Optional, combines with query.
citystringМоскваWHERE, by city. Ignored if coordinates or bbox are set.
latitudestringWHERE, center latitude. Set with longitude. Overrides city.
longitudestringCenter longitude. Set with latitude.
radiusMetersinteger1000Radius in meters around the point (max 40000).
bboxstringWHERE, bounding box lon1,lat1,lon2,lat2. Overrides city and coordinates.
urlsarrayURL mode: 2GIS place, search, building links, short links, or raw IDs.
languagestringruResponse language for names and content.
sortBystringrelevancerelevance, rating, or distance.
minRatingstringKeep only places at or above this rating.
minReviewsintegerKeep only places with at least this many reviews.
onlyWithPhonebooleanfalseSkip places without a phone.
onlyWithWebsitebooleanfalseSkip places without a website.
skipAdsbooleanfalseSkip promoted entries.
maxReviewsinteger0Reviews per place. 0 disables review fetching.
reviewsSortstringdate_editedOrder of fetched reviews.
reviewsProviderstringallKeep all sources, 2gis only, or flamp only.
reviewsRatingstringallKeep all, only positive (4-5), or only negative (1-3).
reviewsMinRatingstringKeep only reviews at or above this star rating.
reviewsWithAnswerbooleanfalseKeep only reviews that have an official reply.
reviewsStartDatestringKeep only reviews created on or after YYYY-MM-DD.
reviewsKeywordstringKeep only reviews whose text contains this phrase.
includePhotosbooleantrueInclude photo URLs in place records.
maxResultsinteger10Total places across all queries (shared fairly across them). 0 = unlimited.
proxyobjectApify datacenterProxy configuration.

Output example

Sample shape: values are illustrative placeholders, not from a live listing.

{
"recordType": "place",
"id": "00000000",
"name": "Sample Cafe",
"url": "https://2gis.ru/city/firm/00000000",
"rating": 4.8,
"reviewCount": 0,
"primaryRubric": "Cafes",
"rubrics": ["Cafes", "Coffee shops"],
"phone": "+70000000000",
"phones": ["+70000000000"],
"email": "contact@example.com",
"website": "http://example.com",
"whatsapp": "https://wa.me/70000000000",
"telegram": "https://t.me/example",
"instagram": "https://instagram.com/example",
"vk": "https://vk.com/example",
"fullAddress": "City, Sample Street, 1",
"country": "Sample Country",
"region": "Sample Region",
"city": "Sample City",
"district": "Sample District",
"street": "Sample Street",
"houseNumber": "1",
"postcode": "000000",
"latitude": 55.0000,
"longitude": 37.0000,
"is24x7": false,
"hoursText": "Mon: 09:00-21:00; Tue: 09:00-21:00; Wed: 09:00-21:00; Thu: 09:00-21:00; Fri: 09:00-22:00; Sat: 10:00-22:00; Sun: closed",
"hours": {
"Monday": { "status": "open", "intervals": [{ "from": "09:00", "to": "21:00" }] },
"Sunday": { "status": "closed", "intervals": [] }
},
"photos": ["https://cdn.example.com/0000.jpg"],
"photoCount": 1,
"orgName": "Sample Org",
"orgBranchCount": 1,
"isPromoted": false,
"attributesByTag": { "food_service_food_european": "European cuisine" }
}

Plan requirement

This actor runs on the default Apify datacenter proxy, which is available on every plan including the free tier, so there is no premium proxy requirement to get started. Residential proxy is optional and only useful for very large repeated runs; when selected, the actor rotates the exit country (your chosen country first, then nearby ones) on a rejected connection and fails over to a backup connection after repeated failures, so a single flagged exit does not stall a run. The 2GIS platform itself caps a single query near 3000 results, so to gather more places for a city use several narrower queries, categories, or map areas. Reviews and photos are optional and only add work when you enable them.