2GIS Scraper [$3/1K💰] | Business Directory | Reviews | Jobs avatar

2GIS Scraper [$3/1K💰] | Business Directory | Reviews | Jobs

Pricing

from $0.39 / 1,000 reviews

Go to Apify Store
2GIS Scraper [$3/1K💰] | Business Directory | Reviews | Jobs

2GIS Scraper [$3/1K💰] | Business Directory | Reviews | Jobs

Extract business listings, reviews, jobs and real-estate data from 2GIS — the leading directory and map platform across Russia, Kazakhstan and Central Asia. Get names, addresses, coordinates, phones, ratings and vacancies. Built for local market research and lead generation. $3 per 1,000 places.

Pricing

from $0.39 / 1,000 reviews

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Features

Limited permissions

Share

2GIS Scraper

Scrape 2GIS business directory data — places with contacts and ratings, customer reviews, job vacancies and realty listings across Russia, the CIS and the UAE — into structured datasets, using the same public endpoints the 2gis.ru website itself calls, with no API key.

Built for:

  • B2B lead generation and sales prospecting by city and category
  • Review monitoring and reputation tracking for local businesses
  • Local market and competitor analysis across 2GIS directories
  • Job-market and realty-market monitoring per city
  • Building a regional company contact database (phones, emails, schedules)

Build Business Lead Lists From the 2GIS Directory

2GIS is a major business directory and map platform covering millions of organizations across Russia, Kazakhstan, Uzbekistan, Kyrgyzstan, Tajikistan, Georgia, Armenia, Azerbaijan, Cyprus and the UAE. This actor turns search queries, city names, coordinates, polygons or plain 2gis.* URLs into structured rows: company name and legal name, address with administrative hierarchy and coordinates, phone numbers, emails and website links, opening schedule, rubrics (categories), ratings and review counts, price level, plus optional vacancy boards and realty listings (aggregated from CIAN and Domclick) for each city. Server-side filters (has website, delivery, card payment, average bill, minimum rating and more) narrow the list before rows are stored.

How It Works

How the 2GIS Scraper works: city searches become place, review, job and realty rows from public 2GIS endpoints.

The Actor resolves each query or city to a 2GIS region, then calls the public place, review, vacancy and realty endpoints that power the site. Results are paged 50 at a time, and monitoring mode remembers IDs so later runs emit only new items.

Every row is written to the dataset for its type: places, reviews, jobs or realty. Rows carry addresses, coordinates, contacts, schedules and ratings, ready for local-market maps and lead lists.

  1. At startup the actor fetches 2gis.ru once and reads the public web, reviews and vacancies API keys from the site's page config; built-in fallback keys are used if the site is unreachable.
  2. City names are resolved to 2GIS region IDs; coordinates are searched within a configurable radius (default 50 km); WKT polygons are searched by their exact geometry; URLs and firm IDs resolve directly.
  3. Every search requests all available place fields and pages results 50 at a time until maxResultsPerQuery is reached, with polite delays between requests.
  4. Reviews, vacancies and realty boards are read from their own public endpoints per city, with filters applied server-side.
  5. Every row is written to the dataset of its type (places, reviews, jobs or realty); filtering, caps and monitoring apply before a row is stored.
  6. In monitoring mode every pushed row is remembered by type + id in a named key-value store, so the next scheduled run outputs only items that appeared since.

Input Parameters

Search targets

FieldTypeRequiredDefaultNotes
searchQueriesarrayNo—Search terms (e.g. cafe); each query runs in each location.
locationsarrayNo—City names, lat,lon coordinates, or WKT POLYGON(...). Jobs and realty need city names.
startUrlsarrayNo—Full 2gis.* URLs: /{city}/search/{query} or /{city}/firm/{id}; mixable with queries.
organizationIdsarrayNo—Numeric firm IDs or firm URLs to scrape directly.
includeBranchesbooleanNofalseAlso fetch every other branch of a multi-branch organization.
scrapeModeenumNoplacesplaces, reviews or all. Reviews need maxReviewsPerPlace > 0 (defaults to 20 in reviews mode).

Limits & ordering

FieldTypeRequiredDefaultNotes
maxResultsPerQueryintegerNo50Max places per search target (1–10,000), paged 50 at a time.
maxItemsintegerNo0Hard global cap across all rows; 0 = no cap. Free plan capped at 100 items per run.
searchRadiusKmnumberNo50Radius for coordinate locations (0.1–50); ignored for cities and polygons.
localeenumNoen_RU20 region locales (e.g. ru_RU, en_AE, ar_AE, en_KZ); auto-retries with the region default if unavailable.
sortByenumNorelevancerelevance, distance (needs coordinates), rating, name, opened_time.
categoryIdsarrayNo—Rubric IDs (e.g. 164 for restaurants); empty = all categories.

Place filters

FieldTypeRequiredDefaultNotes
minRatingnumberNo—1–5; unrated places are dropped.
avgBillMinintegerNo—Minimum average bill in local currency.
avgBillMaxintegerNo—Maximum average bill.
hasSitebooleanNofalseOnly places with a website in contacts.
hasPhotosbooleanNofalseServer-side photo filter.
hasGoodsbooleanNofalseOnly places with a price list / goods.
deliverybooleanNofalseOnly places offering delivery.
takeawaybooleanNofalseOnly places offering takeaway.
wifibooleanNofalseOnly places advertising Wi-Fi.
cardPaymentbooleanNofalseOnly places accepting cards.
open24hbooleanNofalseOnly 24-hour places.
skipClosedPlacesbooleanNofalseDrop places that look permanently closed.

Reviews

FieldTypeRequiredDefaultNotes
maxReviewsPerPlaceintegerNo0Reviews per place; 0 disables unless mode is reviews (then 20).
reviewSortByenumNodate_editeddate_edited or date_created.
reviewRatingsenumNoallpositive = rating ≥ 4, negative = rating ≤ 2.
repliesOnlybooleanNofalseKeep only reviews with an official business reply.
reviewKeywordsarrayNo—Keep reviews whose text or reply contains any of these strings (case-insensitive).
reviewSourceenumNoall2gis, flamp, booking or all (2GIS mirrors some reviews).
reviewDateFromstringNo—Inclusive: YYYY-MM-DD or relative offset like -7d.
reviewDateTostringNo—Inclusive end date.
includeUnratedReviewsbooleanNofalseAlso fetch unrated reviews.
includeReviewerDatabooleanNotrueOff clears reviewer name/id before rows are saved.

Jobs & realty boards

FieldTypeRequiredDefaultNotes
includeJobsbooleanNofalseScrape each location's vacancy board (locations must be city names).
maxJobsPerLocationintegerNo100Vacancies per location (1–10,000).
includeRealtybooleanNofalseScrape each city's realty board (aggregated from CIAN and Domclick).
realtyDealenumNosalesale or rent.
realtyPropertyTypeenumNoresidentialresidential, commercial or all.
realtySortenumNodefaultprice_asc, price_desc, area_asc, area_desc.
realtyRoomsarrayNo—studio, 1–5+; empty = all.
realtyMinPriceintegerNo0Local currency; 0 disables the bound.
realtyMaxPriceintegerNo00 disables the bound.
realtyMinAreanumberNo0m²; 0 disables the bound.
realtyMaxAreanumberNo00 disables the bound.
realtyProvidersarrayNo—cian, domclick; empty = all.
maxRealtyListingsPerLocationintegerNo100Listings per location (1–10,000).

Monitoring & proxy

FieldTypeRequiredDefaultNotes
monitoringModebooleanNofalsePush only items never pushed before (state kept in a named store) — rows skipped this way are not charged.
monitoringStoreNamestringNo2gis-monitoringState store name; change it to start a fresh monitoring series.
proxyobjectNodisabledStandard Apify proxy picker; use it only if 2GIS blocks datacenter IPs.

Output Fields

Rows are written to per-type datasets, discriminated by item_type:

  • place rows (32 fields): item_type, place_id, place_type, name, name_ex, address_name, address_comment, address, adm_div, full_address_name, building_name, full_name, purpose_name, floors, point, region_id, rubrics, contact_groups, schedule, attribute_groups, reviews, links, org, stat, context, has_goods, ads, rating, reviews_count, search_query, search_location, fetched_at
  • review rows (21 fields): item_type, review_id, place_id, place_name, place_address, rating, text, provider, source, url, date_created, date_edited, likes_count, comments_count, is_verified, photos, official_answer, user, search_query, search_location, fetched_at
  • job rows (22 fields): item_type, job_id, name, salary_label, legal_text, category_id, category_name, provider_name, provider_code, apply_url, org_id, org_name, branch_id, building, address_name, lat, lon, city, district, logo_url, search_location, fetched_at
  • realty rows (28 fields): item_type, realty_id, name, url, button_name, is_recent, price, currency, price_per_meter, property_type, rooms, area, floor, attributes, images, categories, source, branch_id, org_id, building_id, address_name, postcode, lat, lon, adm_div, metro, search_location, fetched_at

Example Input

{
"searchQueries": ["coffee shop"],
"locations": ["Dubai"],
"scrapeMode": "all",
"maxResultsPerQuery": 20,
"maxReviewsPerPlace": 10,
"minRating": 4,
"hasSite": true,
"includeJobs": false,
"monitoringMode": true
}

Example Output

{
"item_type": "place",
"place_id": "70000001017456789",
"name": "Example Coffee Shop",
"full_address_name": "Dubai, Al Wasl Road, Building 12",
"point": { "lon": 55.2619, "lat": 25.1972 },
"rubrics": [{ "name": "Coffee shops", "alias": "coffee_shop" }],
"contact_groups": [
{ "type": "phone", "contacts": [{ "value": "+971 4 000 0000" }] },
{ "type": "website", "contacts": [{ "value": "https://example.com" }] }
],
"schedule": { "working_hours": [{ "from": "08:00", "to": "23:00" }] },
"rating": 4.7,
"reviews_count": 312,
"search_query": "coffee shop",
"search_location": "Dubai",
"fetched_at": "2026-10-19T12:00:00.000Z"
}

Automate Business Directory & Review Monitoring With Schedules & Webhooks

  • Daily lead refresh: schedule searchQueries + locations with monitoringMode: true — each run delivers only new or updated rows, and skipped rows are not charged.
  • Reputation tracking: schedule scrapeMode: "reviews" with reviewDateFrom: "-1d" over your client portfolio's firm IDs to collect yesterday's reviews every morning.
  • New-job and new-listing alerts: run includeJobs / includeRealty daily per city and wire a dataset webhook to Slack or email.
  • Scheduling is the intended usage pattern and also improves this actor's Store recommendation signals.

Frequently Asked Questions

Why use this actor instead of the official API?

2GIS does publish an official API platform (docs.2gis.com): Directory, Places, Geocoder and other services behind a registered key — a demo key is free for one month, after which paid subscriptions apply, and Data.2GIS sells .xlsx company samples (500+ filters) for Russia and Kazakhstan. This actor needs no registration at all: it reads the same public endpoints the 2gis.ru website itself calls (keys fetched automatically), combines places, reviews, jobs and realty boards in one run — the vacancy and realty boards have no documented public API endpoint — and keeps cross-run monitoring state so scheduled runs return only items you have not seen before.

Is there a 2GIS API?

Yes — 2GIS offers an official API platform with Directory, Places, Geocoder, Suggest, Categories and Regions APIs, plus maps and navigation services. You register at platform.2gis.com for a demo key (free for one month). For ad-hoc or keyless extraction, this actor and several Store alternatives call the website's own endpoints instead.

How can I get 2GIS data without an API key?

Use this actor: it fetches the website's public keys automatically at startup (with built-in fallbacks), so no account, key or subscription is needed. Paste search queries, city names or 2gis.* URLs and run.

What are the alternatives to this actor?

The official 2GIS API platform and the paid Data.2GIS sample service are the non-scraping routes; within Apify, the 2GIS places and reviews scrapers listed under Related Actors cover parts of the same data (places only, or reviews only), while this actor covers places, reviews, jobs and realty in one input.

Can I export 2GIS business data to CSV for lead generation?

Yes — every dataset exports to CSV, Excel, JSON or XML from the Apify Console, or on a schedule through the dataset API. Combine searchQueries, locations and the contact filters to build targeted lead lists.

Does it cover Dubai and the UAE as well as Russia?

Yes — 2GIS operates across the CIS plus Cyprus and the UAE; pass Dubai or Abu Dhabi as a location (locale en_AE/ar_AE are available). Jobs and realty boards apply to cities where 2GIS lists them.

For AI Agents & LLM Apps

Purpose: returns 2GIS directory rows — places (contacts, schedule, rubrics, rating), reviews, job vacancies and realty listings — from the site's public endpoints, keyless.

Minimal input:

{ "searchQueries": ["cafe"], "locations": ["Moscow"], "maxResultsPerQuery": 10 }

Reviews mode:

{ "searchQueries": ["cafe"], "locations": ["Moscow"], "scrapeMode": "reviews", "maxReviewsPerPlace": 5 }

Output fields (by item_type): place → place_id, name, address fields, point, rubrics, contact_groups, schedule, rating, reviews_count, stat, fetched_at; review → review_id, place_id, rating, text, source, date_created, official_answer, user; job → job_id, name, salary_label, apply_url, org_name, city; realty → realty_id, price, currency, property_type, rooms, area, source, url.

Behaviors an agent should know:

  • scrapeMode defaults to places; reviews only flow when maxReviewsPerPlace > 0 (in reviews mode it defaults to 20).
  • maxItems: 0 means uncapped — always set an explicit cap for agentic runs; free-plan runs stop at 100 items per run.
  • locations accepts city names, lat,lon and WKT polygons — but includeJobs/includeRealty require city names.
  • monitoringMode: true makes runs idempotent-by-delta (only never-seen rows); rows skipped by monitoring are not charged.
  • locale falls back to the region default automatically if the requested locale is unavailable for a location.
  • If both startUrls/organizationIds and search targets are set, all sources are processed and merged.

Billing: pay-per-event per row — Place $0.003, Review $0.0004, Job $0.002, Property $0.0025, plus a run-start event; monitoring-skipped rows are free.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by 2GIS. It accesses only publicly available website endpoints using the site's own published keys — no account registration or login is involved. Output includes business contact details that companies publish themselves, plus reviews that may contain personal names; users are responsible for their own compliance with the source platform's Terms of Service and applicable data-protection law (including GDPR for personal data such as reviewer identities), and business contact data should not be used for unsolicited commercial outreach in violation of applicable law (e.g. CAN-SPAM, GDPR).

SEO Keywords

2gis scraper, 2gis api, 2gis data, 2gis export, 2gis business directory, business directory data, business directory scraper, russia company database, moscow business data, dubai business directory, almaty company data, uae business leads, 2gis reviews scraper, business phone number database, local business listings data, lead generation database, company contact data, 2gis alternative, job vacancies data, property listings russia