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.
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. |
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"
}
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 ApifyClient
client = 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.
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.