2GIS Places Scraper
Pricing
from $1.80 / 1,000 place results
2GIS Places Scraper
Extract public 2GIS place listings, ratings, review counts, categories, addresses, coordinates when visible, and diagnostics from search queries or 2GIS search URLs.
Pricing
from $1.80 / 1,000 place results
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract public 2GIS place listings from search queries or public 2GIS search URLs. The Actor saves structured rows with names, URLs, addresses, categories, ratings, review counts when visible, and run diagnostics for troubleshooting.
Use it for local business research, lead lists, location monitoring, market mapping, and automation workflows that need CSV, JSON, Excel, API, or MCP access to 2GIS data.
At a glance
- Primary job: Search 2GIS by keyword and city, then export public place rows.
- Input: Search queries, a location, optional public 2GIS URLs, filters, and a result limit.
- Output: One dataset row per public 2GIS place plus diagnostic KV records.
- Best for: Lead generation, competitor research, branch discovery, category monitoring, and enrichment pipelines.
Common workflows
- Lead generation: Search categories such as restaurants, dentists, clinics, cafes, repair shops, or hotels in a target city.
- Market research: Compare categories, ratings, addresses, and review counts across neighborhoods or regions.
- Monitoring: Schedule repeat runs for the same query/location and compare new rows or rating changes.
- Automation: Send dataset exports to a CRM, spreadsheet, webhook, API client, or MCP-enabled AI workflow.
Ready-to-run examples
- Dubai restaurants lead list from 2GIS — verified with 12 items.
- Almaty dentists search listings from 2GIS — verified with 7 items.
- URL-based Dubai restaurants search on 2GIS — verified with 12 items.
What data can you extract?
| Field | Description |
|---|---|
id | 2GIS place or branch identifier when available. |
title | Public place name. |
url | Public 2GIS place URL. |
query | Search query that produced the row. |
locationQuery | City or region used for query searches. |
domain | 2GIS domain used for the source route. |
address | Public address text. |
city | Input city or region context. |
rubrics / category | Public category labels. |
rating | Visible rating value, when present. |
reviewsCount | Visible review/rating count, when present. |
sourceStatus, sourceMode, blocked, emptyPage | Diagnostics for source handling. |
scrapedAt | ISO timestamp for the row. |
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| Search queries | queries | Business categories or keywords to search. | ["Restaurants", "Dentists"] |
| Location | locationQuery | City or region used in query URLs. | "dubai" |
| 2GIS URLs | startUrls | Public 2GIS search or place URLs. | [{"url":"https://2gis.ae/dubai/search/Restaurants."}] |
| Maximum places | maxItems | Cap saved rows and control spend. | 10 |
| 2GIS domain | domain | Regional 2GIS domain for query searches. | "2gis.ae" |
| Language | language | Preferred page language where supported. | "en" |
| Sort by | sortBy | Preferred order when supported by the source route. | "relevance" |
| Minimum rating | minRating | Keep places at or above a rating threshold when visible. | 4 |
| Dedupe places by | dedupeBy | Suppress duplicates across queries and URLs. | "idOrUrl" |
Example input
{"queries": ["Restaurants"],"locationQuery": "dubai","domain": "2gis.ae","language": "en","maxItems": 10,"dedupeBy": "idOrUrl"}
Example output
{"id": "70000001055149461","title": "Laffah","url": "https://2gis.ae/dubai/firm/70000001055149461","query": "Restaurants","locationQuery": "dubai","domain": "2gis.ae","address": "Flamingo Building, Sheikh Khalifa Bin Zayed road, Dubai","city": "dubai","category": "Arabic restaurant","rating": 5,"reviewsCount": 45,"sourceStatus": "ok","sourceMode": "http-static","scrapedAt": "2026-07-22T13:03:04.000Z"}
Pricing
This Actor uses pay-per-event pricing. You are charged $0.02 when a run starts and a tiered price for each place row saved to the dataset.
| Tier | Per saved place |
|---|---|
| Free | $0.003 |
| Bronze | $0.0026 |
| Silver | $0.0022 |
| Gold | $0.0018 |
| Platinum | $0.0014 |
| Diamond | $0.001 |
Tips for best results
- Start small: Use
maxItems: 10until output quality and pricing are verified. - Choose the matching region: Use
2gis.aefor UAE routes,2gis.kzfor Kazakhstan, and2gis.rufor Russia. - Keep searches focused: Specific categories and cities usually produce cleaner data than broad keywords.
- Use public inputs: Account, dashboard, login, and business-management URLs are rejected.
API usage
Node.js:
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("fetch_cat/2gis-places-scraper").call({queries: ["Restaurants"],locationQuery: "dubai",domain: "2gis.ae",maxItems: 10});console.log(run.defaultDatasetId);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("fetch_cat/2gis-places-scraper").call(run_input={"queries": ["Restaurants"],"locationQuery": "dubai","domain": "2gis.ae","maxItems": 10,})print(run["defaultDatasetId"])
cURL:
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~2gis-places-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries":["Restaurants"],"locationQuery":"dubai","domain":"2gis.ae","maxItems":10}'
MCP and AI agents
Use this Actor from MCP-compatible tools through the official Apify MCP Server.
$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/2gis-places-scraper"
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/2gis-places-scraper"}}}
Example prompt: "Run 2GIS Places Scraper for restaurants in Dubai with maxItems 10 and summarize the highest-rated places."
Limits and caveats
- Coverage: 2GIS availability, public page layout, language, and regional routes vary by country and city.
- Freshness: Source data can change after a run finishes.
- Optional fields: Some addresses, ratings, review counts, coordinates, or categories may be unavailable on public search pages.
- Rate limits: Public endpoints may throttle large or frequent runs.
Legality and responsible use
Process only data that you are allowed to access. Follow website terms, Apify's terms, and applicable laws.
Related actors
FAQ
Can I export results?
Yes. Apify datasets support JSON, CSV, Excel, XML, RSS, and API access.
Why are some fields empty?
Some 2GIS pages do not expose every field publicly. The Actor leaves unavailable fields empty instead of guessing.
Support
Open an issue from the Actor page if a run fails or output looks wrong. Include the run ID or run URL, input JSON, expected output, actual output, and one reproducible public URL.