2GIS Places Scraper avatar

2GIS Places Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
2GIS Places Scraper

2GIS Places Scraper

Scrape places/merchants from 2GIS (2gis.kz) by listing URL or keyword search. Returns name, address, rating, reviews, coordinates, images, and more.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

shareze

shareze

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Collect places and merchants from 2GIS Kazakhstan — cafés, shops, services, and more — with ratings, addresses, photos, and categories ready for export.

Results are written to the dataset incrementally (each listing page as a batch; or one-by-one when enrichContacts is on), so a cancelled run still keeps what was already scraped.

Features

  • Search by keyword in a city (e.g. кафе in Almaty)
  • Or scrape from a listing / rubric URL you already have
  • Returns name, address, coordinates, rating, reviews, weekly schedule, contacts, images, rubrics, and attributes
  • Caps results with size so you only pay for what you need
  • Optional requireImages to keep only places that have photos
  • Optional enrichContacts to fetch phones / social links from each firm page (slower)

How to use

Provide either listing URLs or a keyword + city. URLs win when both are set.

{
"city": "almaty",
"keyword": "кафе",
"size": 50
}

Listing URL

{
"urls": [
"https://2gis.kz/almaty/search/Кафе/rubricId/161"
],
"size": 50
}

Only places with photos

{
"city": "almaty",
"keyword": "ресторан",
"size": 30,
"requireImages": true
}

Include contacts (slower)

{
"city": "almaty",
"keyword": "кафе",
"size": 20,
"enrichContacts": true
}

Input

FieldRequiredDescription
urlsone ofDirect 2GIS search / rubric listing URLs (highest priority)
keywordone ofSearch text when urls is empty
citywith keywordCity slug in the 2GIS path, e.g. almaty, astana (default almaty)
sizenoMax unique places to return (default 50)
requireImagesnoIf true, skip places without photos (default false)
enrichContactsnoIf true, fetch contacts from each firm page (default false, slower). Each detail lookup emits a place-detail pay-per-event charge.

Output

Each dataset item is one place:

FieldDescription
externalId2GIS place / firm ID
nameDisplay name
urlFirm page URL on 2GIS
addressStreet address
cityCity name
pointCoordinates as lon,lat
ratingAverage rating
reviewCountNumber of reviews
scheduleWeekly hours by day (Mon…Sun, optional is_24x7)
poiCategoryPOI category code
imageUrlsPhoto URLs
rubricsRubric list (id, name, alias, kind)
attributesPlace attributes (id, name, tag)
contactsPhones, website, email, Instagram, WhatsApp, etc. (only when enrichContacts is true)
sourceUrlListing URL used for the scrape
rawOriginal listing payload

Example item

{
"externalId": "70000001035014267",
"name": "Friendly, лаундж-бар",
"url": "https://2gis.kz/almaty/firm/70000001035014267",
"address": "проспект Достык, 89г",
"city": "Алматы",
"point": "76.956,43.238",
"rating": 4.9,
"reviewCount": 2560,
"schedule": {
"Mon": { "working_hours": [{ "from": "12:00", "to": "02:00" }] },
"Fri": { "working_hours": [{ "from": "12:00", "to": "04:00" }] }
},
"poiCategory": "food_restaurant",
"imageUrls": ["https://i4.photo.2gis.com/..."],
"rubrics": [
{ "id": "161", "name": "Кафе", "alias": "kafe", "kind": "primary" }
],
"attributes": [
{ "id": "...", "name": "Европейская кухня", "tag": "food_service_food_european" }
],
"contacts": [
{ "type": "phone", "text": "+7‒702‒007‒70‒89", "value": "+77020077089" },
{ "type": "instagram", "url": "https://instagram.com/friendly.almaty", "value": "https://instagram.com/friendly.almaty" }
],
"sourceUrl": "https://2gis.kz/almaty/search/кафе"
}