Vexaloom Labs

2GIS Business Directory Extractor for CIS & Middle East

Search 2GIS for businesses by category and city across Russia, the UAE, Kazakhstan and the wider CIS, and get name, address, rating, hours, contacts and social links for each place.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredWhat to read: search the directory, expand 2GIS links, or look up place IDs.
searchQueriesarrayoptionalWhat to look for, one term per line (mode=search). Example: coffee, restaurant, стоматология. Use the local language for better coverage.
locationQuerystringoptionalCity or area to search in (mode=search), for example Moscow, Алматы or Dubai. Can be a local or English name.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to read: search the directory, expand 2GIS links, or look up place IDs.
searchQueriesarrayoptionalWhat to look for, one term per line (mode=search). Example: coffee, restaurant, стоматология. Use the local language for better coverage.
locationQuerystringoptionalCity or area to search in (mode=search), for example Moscow, Алматы or Dubai. Can be a local or English name.
citiesarrayoptionalOptional additional cities. Every search term runs in every city (mode=search).
cityIdsarrayoptionalOptional exact 2GIS city IDs. Use instead of city names when you already know the ID.
startUrlsarrayoptionalSearch, place (/firm/), organization (/branches/) or building (/inside/) links, go.2gis.com short links, or bare place IDs (mode=urls).
placeIdsarrayoptional2GIS branch IDs to read directly (mode=ids).
latitudenumberoptionalCenter latitude for an area search (mode=search). Set together with longitude; overrides the city center.
longitudenumberoptionalCenter longitude for an area search (mode=search). Set together with latitude.
radiusMetersintegeroptionalSearch radius around latitude/longitude, in meters (1–50000).
bboxstringoptionalOptional rectangle as lon1,lat1,lon2,lat2. Overrides city and point search.
countrystringoptional2GIS country site. Leave on Auto-detect to derive it from the city or link.
languagestringoptionalLanguage of names and content returned by 2GIS. Auto uses the country site's default.
maxItemsintegeroptionalMaximum number of places per search term + city/area combination.
sortBystringoptionalOrder of search results. Distance needs a latitude/longitude or map area.
rubricIdsarrayoptionalOnly places in these 2GIS categories (rubric IDs), for example 162 for coffee shops.
districtIdsarrayoptionalOptional district IDs. Useful for splitting a large city into smaller searches.
minRatingnumberoptionalKeep only places rated at least this value (0–5).
minReviewsintegeroptionalKeep only places with at least this many reviews.
websiteFilterstringoptionalReturn all places, only places with a website, or only places without one.
filterHasPhotosbooleanoptionalOnly return places that have photos on 2GIS.
filterOpenNowbooleanoptionalOnly return places open at the time of the run.
filter24x7booleanoptionalOnly return places open around the clock.
filterHasGoodsbooleanoptionalOnly return places that published goods or a menu.
filterHasRatingbooleanoptionalOnly return places with a rating.
filterHasReviewsbooleanoptionalOnly return places with reviews.
filterDeliverybooleanoptionalOnly return places whose published attributes mention delivery.
filterTakeawaybooleanoptionalOnly return places whose attributes mention takeaway or pickup.
filterCardPaymentbooleanoptionalOnly return places whose attributes mention card payment.
filterWifibooleanoptionalOnly return places whose attributes mention Wi-Fi.
minAverageCheckintegeroptionalKeep only places whose published average check is at least this value, in local currency.
maxAverageCheckintegeroptionalKeep only places whose published average check is at most this value, in local currency.
skipAdsbooleanoptionalDrop paid/promoted search results.
includeContactsbooleanoptionalAdd phones, websites, emails, social links and messengers.
includeReviewsbooleanoptionalAdd review texts to each place when 2GIS exposes them. Rating and review counts are always included.
maxReviewsPerPlaceintegeroptionalMaximum review texts per place when reviews are enabled (1–1000).
reviewsSortstringoptionalOrder of review texts.
reviewsMinRatingintegeroptionalKeep only reviews with at least this star rating (1–5).
reviewsWithAnswerbooleanoptionalKeep only reviews that have an official business reply.
reviewsSincestringoptionalKeep only reviews created on or after this date (YYYY-MM-DD).
reviewsKeywordstringoptionalKeep only reviews whose text contains this word or phrase.
includePhotosbooleanoptionalAdd photo URLs when 2GIS exposes them. A main photo URL and photo count are included whenever available.
maxPhotosPerPlaceintegeroptionalMaximum photo URLs per place when photos are enabled (1–100).
scrapeOrgBranchesbooleanoptionalWhen a place link is given, also return the other branches of the same organization.

Download the published input schema

View complete JSON
{
  "description": "Find businesses in the 2GIS directory by search term, city, point or map area, or read specific search, place, organization and building links. No account, API key or proxy is needed.",
  "properties": {
    "bbox": {
      "description": "Optional rectangle as lon1,lat1,lon2,lat2. Overrides city and point search.",
      "editor": "textfield",
      "title": "Map area",
      "type": "string"
    },
    "cities": {
      "description": "Optional additional cities. Every search term runs in every city (mode=search).",
      "editor": "stringList",
      "title": "More cities",
      "type": "array"
    },
    "cityIds": {
      "description": "Optional exact 2GIS city IDs. Use instead of city names when you already know the ID.",
      "editor": "stringList",
      "title": "City IDs",
      "type": "array"
    },
    "country": {
      "default": "auto",
      "description": "2GIS country site. Leave on Auto-detect to derive it from the city or link.",
      "editor": "select",
      "enum": [
        "auto",
        "ru",
        "kz",
        "ae",
        "kg",
        "uz",
        "by",
        "az",
        "am",
        "ge",
        "tj",
        "cy",
        "cz",
        "it",
        "cl"
      ],
      "enumTitles": [
        "Auto-detect",
        "Russia (2gis.ru)",
        "Kazakhstan (2gis.kz)",
        "UAE (2gis.ae)",
        "Kyrgyzstan (2gis.kg)",
        "Uzbekistan (2gis.uz)",
        "Belarus (2gis.by)",
        "Azerbaijan (2gis.az)",
        "Armenia (2gis.am)",
        "Georgia (2gis.ge)",
        "Tajikistan (2gis.tj)",
        "Cyprus (2gis.com.cy)",
        "Czechia (2gis.cz)",
        "Italy (2gis.it)",
        "Chile (2gis.cl)"
      ],
      "title": "Country site",
      "type": "string"
    },
    "districtIds": {
      "description": "Optional district IDs. Useful for splitting a large city into smaller searches.",
      "editor": "stringList",
      "title": "District IDs",
      "type": "array"
    },
    "filter24x7": {
      "default": false,
      "description": "Only return places open around the clock.",
      "title": "Open 24/7 only",
      "type": "boolean"
    },
    "filterCardPayment": {
      "default": false,
      "description": "Only return places whose attributes mention card payment.",
      "title": "Card payment only",
      "type": "boolean"
    },
    "filterDelivery": {
      "default": false,
      "description": "Only return places whose published attributes mention delivery.",
      "title": "Delivery only",
      "type": "boolean"
    },
    "filterHasGoods": {
      "default": false,
      "description": "Only return places that published goods or a menu.",
      "title": "Has goods/menu only",
      "type": "boolean"
    },
    "filterHasPhotos": {
      "default": false,
      "description": "Only return places that have photos on 2GIS.",
      "title": "Has photos only",
      "type": "boolean"
    },
    "filterHasRating": {
      "default": false,
      "description": "Only return places with a rating.",
      "title": "Has rating only",
      "type": "boolean"
    },
    "filterHasReviews": {
      "default": false,
      "description": "Only return places with reviews.",
      "title": "Has reviews only",
      "type": "boolean"
    },
    "filterOpenNow": {
      "default": false,
      "description": "Only return places open at the time of the run.",
      "title": "Open now only",
      "type": "boolean"
    },
    "filterTakeaway": {
      "default": false,
      "description": "Only return places whose attributes mention takeaway or pickup.",
      "title": "Takeaway only",
      "type": "boolean"
    },
    "filterWifi": {
      "default": false,
      "description": "Only return places whose attributes mention Wi-Fi.",
      "title": "Wi-Fi only",
      "type": "boolean"
    },
    "includeContacts": {
      "default": true,
      "description": "Add phones, websites, emails, social links and messengers.",
      "prefill": true,
      "title": "Include contacts",
      "type": "boolean"
    },
    "includePhotos": {
      "default": false,
      "description": "Add photo URLs when 2GIS exposes them. A main photo URL and photo count are included whenever available.",
      "title": "Include photo URLs",
      "type": "boolean"
    },
    "includeReviews": {
      "default": false,
      "description": "Add review texts to each place when 2GIS exposes them. Rating and review counts are always included.",
      "title": "Include reviews",
      "type": "boolean"
    },
    "language": {
      "default": "auto",
      "description": "Language of names and content returned by 2GIS. Auto uses the country site's default.",
      "editor": "select",
      "enum": [
        "auto",
        "ru_RU",
        "ru_KZ",
        "en_RU",
        "en_AE",
        "ar_AE",
        "kk_KZ",
        "ky_KG",
        "uz_UZ",
        "az_AZ",
        "hy_AM",
        "ka_GE",
        "tg_TJ",
        "cs_CZ",
        "it_IT",
        "es_CL",
        "en_CY"
      ],
      "enumTitles": [
        "Auto",
        "Russian (Russia)",
        "Russian (Kazakhstan)",
        "English (Russia)",
        "English (UAE)",
        "Arabic (UAE)",
        "Kazakh",
        "Kyrgyz",
        "Uzbek",
        "Azerbaijani",
        "Armenian",
        "Georgian",
        "Tajik",
        "Czech",
        "Italian",
        "Spanish (Chile)",
        "English (Cyprus)"
      ],
      "title": "Language",
      "type": "string"
    },
    "latitude": {
      "description": "Center latitude for an area search (mode=search). Set together with longitude; overrides the city center.",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "locationQuery": {
      "description": "City or area to search in (mode=search), for example Moscow, Алматы or Dubai. Can be a local or English name.",
      "editor": "textfield",
      "prefill": "Moscow",
      "title": "City",
      "type": "string"
    },
    "longitude": {
      "description": "Center longitude for an area search (mode=search). Set together with latitude.",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "maxAverageCheck": {
      "description": "Keep only places whose published average check is at most this value, in local currency.",
      "minimum": 0,
      "title": "Maximum average check",
      "type": "integer"
    },
    "maxItems": {
      "default": 50,
      "description": "Maximum number of places per search term + city/area combination.",
      "editor": "number",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max places",
      "type": "integer"
    },
    "maxPhotosPerPlace": {
      "default": 5,
      "description": "Maximum photo URLs per place when photos are enabled (1–100).",
      "editor": "number",
      "maximum": 100,
      "minimum": 1,
      "title": "Max photos per place",
      "type": "integer"
    },
    "maxReviewsPerPlace": {
      "default": 10,
      "description": "Maximum review texts per place when reviews are enabled (1–1000).",
      "editor": "number",
      "maximum": 1000,
      "minimum": 1,
      "title": "Max reviews per place",
      "type": "integer"
    },
    "minAverageCheck": {
      "description": "Keep only places whose published average check is at least this value, in local currency.",
      "minimum": 0,
      "title": "Minimum average check",
      "type": "integer"
    },
    "minRating": {
      "description": "Keep only places rated at least this value (0–5).",
      "maximum": 5,
      "minimum": 0,
      "title": "Minimum rating",
      "type": "number"
    },
    "minReviews": {
      "description": "Keep only places with at least this many reviews.",
      "minimum": 0,
      "title": "Minimum reviews",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "What to read: search the directory, expand 2GIS links, or look up place IDs.",
      "editor": "select",
      "enum": [
        "search",
        "urls",
        "ids"
      ],
      "enumTitles": [
        "Search by keyword + city/area",
        "Read 2GIS links",
        "Look up place IDs"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "placeIds": {
      "description": "2GIS branch IDs to read directly (mode=ids).",
      "editor": "stringList",
      "title": "Place IDs",
      "type": "array"
    },
    "radiusMeters": {
      "default": 20000,
      "description": "Search radius around latitude/longitude, in meters (1–50000).",
      "editor": "number",
      "maximum": 50000,
      "minimum": 1,
      "title": "Radius (meters)",
      "type": "integer"
    },
    "reviewsKeyword": {
      "description": "Keep only reviews whose text contains this word or phrase.",
      "editor": "textfield",
      "title": "Review keyword",
      "type": "string"
    },
    "reviewsMinRating": {
      "description": "Keep only reviews with at least this star rating (1–5).",
      "maximum": 5,
      "minimum": 1,
      "title": "Minimum review rating",
      "type": "integer"
    },
    "reviewsSince": {
      "description": "Keep only reviews created on or after this date (YYYY-MM-DD).",
      "editor": "textfield",
      "title": "Reviews since",
      "type": "string"
    },
    "reviewsSort": {
      "default": "date_created",
      "description": "Order of review texts.",
      "editor": "select",
      "enum": [
        "date_created",
        "date_edited",
        "rating"
      ],
      "enumTitles": [
        "Newest first",
        "Recently edited",
        "Highest rating"
      ],
      "title": "Review order",
      "type": "string"
    },
    "reviewsWithAnswer": {
      "default": false,
      "description": "Keep only reviews that have an official business reply.",
      "title": "Reviews with a business reply",
      "type": "boolean"
    },
    "rubricIds": {
      "description": "Only places in these 2GIS categories (rubric IDs), for example 162 for coffee shops.",
      "editor": "stringList",
      "title": "Category IDs",
      "type": "array"
    },
    "scrapeOrgBranches": {
      "default": false,
      "description": "When a place link is given, also return the other branches of the same organization.",
      "title": "Expand organization branches",
      "type": "boolean"
    },
    "searchQueries": {
      "description": "What to look for, one term per line (mode=search). Example: coffee, restaurant, стоматология. Use the local language for better coverage.",
      "editor": "stringList",
      "prefill": [
        "coffee"
      ],
      "title": "Search terms",
      "type": "array"
    },
    "skipAds": {
      "default": false,
      "description": "Drop paid/promoted search results.",
      "title": "Skip promoted places",
      "type": "boolean"
    },
    "sortBy": {
      "default": "relevance",
      "description": "Order of search results. Distance needs a latitude/longitude or map area.",
      "editor": "select",
      "enum": [
        "relevance",
        "rating",
        "distance",
        "flamp_rating",
        "creation_time",
        "opened_time",
        "name"
      ],
      "enumTitles": [
        "Relevance",
        "Rating (highest first)",
        "Distance (nearest first)",
        "Flamp rating",
        "Newest branch",
        "Recently opened",
        "Name (A–Z)"
      ],
      "title": "Sort by",
      "type": "string"
    },
    "startUrls": {
      "description": "Search, place (/firm/), organization (/branches/) or building (/inside/) links, go.2gis.com short links, or bare place IDs (mode=urls).",
      "editor": "stringList",
      "title": "2GIS links",
      "type": "array"
    },
    "websiteFilter": {
      "default": "all",
      "description": "Return all places, only places with a website, or only places without one.",
      "editor": "select",
      "enum": [
        "all",
        "with",
        "without"
      ],
      "enumTitles": [
        "All places",
        "With a website",
        "Without a website"
      ],
      "title": "Website",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "2GIS Business Directory Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
resultsstringoptionalAll 2GIS place records from the run, in the default dataset.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Places from 2GIS country sites, including contacts, hours, ratings, review statistics, attributes, photos and location data.",
  "properties": {
    "results": {
      "description": "All 2GIS place records from the run, in the default dataset.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Results",
      "type": "string"
    }
  },
  "title": "2GIS Business Directory Extractor for CIS & Middle East Output",
  "type": "object"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "fields": {},
  "title": "2GIS Business Directory Extractor for CIS & Middle East Output",
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {
          "address": {
            "format": "text",
            "label": "address"
          },
          "addressCity": {
            "format": "text",
            "label": "addressCity"
          },
          "addressComment": {
            "format": "text",
            "label": "addressComment"
          },
          "attributeGroups": {
            "format": "text",
            "label": "attributeGroups"
          },
          "attributes": {
            "format": "text",
            "label": "attributes"
          },
          "attributesByTag": {
            "format": "text",
            "label": "attributesByTag"
          },
          "brand": {
            "format": "text",
            "label": "brand"
          },
          "categories": {
            "format": "text",
            "label": "categories"
          },
          "categoryIds": {
            "format": "text",
            "label": "categoryIds"
          },
          "city": {
            "format": "text",
            "label": "city"
          },
          "country": {
            "format": "text",
            "label": "country"
          },
          "createdAt": {
            "format": "text",
            "label": "createdAt"
          },
          "delivery": {
            "format": "text",
            "label": "delivery"
          },
          "description": {
            "format": "text",
            "label": "description"
          },
          "district": {
            "format": "text",
            "label": "district"
          },
          "districtArea": {
            "format": "text",
            "label": "districtArea"
          },
          "emails": {
            "format": "text",
            "label": "emails"
          },
          "extension": {
            "format": "text",
            "label": "extension"
          },
          "fullName": {
            "format": "text",
            "label": "fullName"
          },
          "hasDiscount": {
            "format": "text",
            "label": "hasDiscount"
          },
          "hasGoods": {
            "format": "text",
            "label": "hasGoods"
          },
          "houseNumber": {
            "format": "text",
            "label": "houseNumber"
          },
          "id": {
            "format": "text",
            "label": "id"
          },
          "is24x7": {
            "format": "text",
            "label": "is24x7"
          },
          "isClosed": {
            "format": "text",
            "label": "isClosed"
          },
          "isPromoted": {
            "format": "text",
            "label": "isPromoted"
          },
          "landmark": {
            "format": "text",
            "label": "landmark"
          },
          "latitude": {
            "format": "number",
            "label": "latitude"
          },
          "longitude": {
            "format": "number",
            "label": "longitude"
          },
          "mainPhotoUrl": {
            "format": "link",
            "label": "mainPhotoUrl"
          },
          "messengers": {
            "format": "text",
            "label": "messengers"
          },
          "name": {
            "format": "text",
            "label": "name"
          },
          "nearestMetro": {
            "format": "text",
            "label": "nearestMetro"
          },
          "nearestStations": {
            "format": "text",
            "label": "nearestStations"
          },
          "orgBranchCount": {
            "format": "number",
            "label": "orgBranchCount"
          },
          "orgId": {
            "format": "text",
            "label": "orgId"
          },
          "orgName": {
            "format": "text",
            "label": "orgName"
          },
          "orgRating": {
            "format": "number",
            "label": "orgRating"
          },
          "orgReviewCount": {
            "format": "number",
            "label": "orgReviewCount"
          },
          "phones": {
            "format": "text",
            "label": "phones"
          },
          "phonesFormatted": {
            "format": "text",
            "label": "phonesFormatted"
          },
          "photoCount": {
            "format": "number",
            "label": "photoCount"
          },
          "photos": {
            "format": "text",
            "label": "photos"
          },
          "postcode": {
            "format": "text",
            "label": "postcode"
          },
          "primaryCategory": {
            "format": "text",
            "label": "primaryCategory"
          },
          "rating": {
            "format": "number",
            "label": "rating"
          },
          "ratingCategory": {
            "format": "text",
            "label": "ratingCategory"
          },
          "ratingCount": {
            "format": "number",
            "label": "ratingCount"
          },
          "recordType": {
            "format": "text",
            "label": "recordType"
          },
          "region": {
            "format": "text",
            "label": "region"
          },
          "reviewCount": {
            "format": "number",
            "label": "reviewCount"
          },
          "reviews": {
            "format": "text",
            "label": "reviews"
          },
          "scheduleText": {
            "format": "text",
            "label": "scheduleText"
          },
          "scrapedAt": {
            "format": "text",
            "label": "scrapedAt"
          },
          "searchCity": {
            "format": "text",
            "label": "searchCity"
          },
          "searchQuery": {
            "format": "text",
            "label": "searchQuery"
          },
          "shortName": {
            "format": "text",
            "label": "shortName"
          },
          "socialLinks": {
            "format": "text",
            "label": "socialLinks"
          },
          "street": {
            "format": "text",
            "label": "street"
          },
          "timezoneOffset": {
            "format": "number",
            "label": "timezoneOffset"
          },
          "type": {
            "format": "text",
            "label": "type"
          },
          "updatedAt": {
            "format": "text",
            "label": "updatedAt"
          },
          "url": {
            "format": "link",
            "label": "url"
          },
          "website": {
            "format": "link",
            "label": "website"
          },
          "websites": {
            "format": "text",
            "label": "websites"
          },
          "workingHours": {
            "format": "text",
            "label": "workingHours"
          }
        }
      },
      "title": "Places Overview",
      "transformation": {
        "fields": [
          "id",
          "name",
          "fullName",
          "shortName",
          "extension",
          "type",
          "recordType",
          "url",
          "categories",
          "categoryIds",
          "primaryCategory",
          "address",
          "addressComment",
          "postcode",
          "street",
          "houseNumber",
          "landmark",
          "country",
          "region",
          "city",
          "addressCity",
          "district",
          "districtArea",
          "latitude",
          "longitude",
          "timezoneOffset",
          "phones",
          "phonesFormatted",
          "website",
          "websites",
          "emails",
          "socialLinks",
          "messengers",
          "rating",
          "reviewCount",
          "ratingCount",
          "orgRating",
          "orgReviewCount",
          "ratingCategory",
          "workingHours",
          "scheduleText",
          "is24x7",
          "isClosed",
          "orgId",
          "orgName",
          "orgBranchCount",
          "brand",
          "attributes",
          "attributeGroups",
          "attributesByTag",
          "photoCount",
          "mainPhotoUrl",
          "photos",
          "reviews",
          "isPromoted",
          "hasGoods",
          "hasDiscount",
          "delivery",
          "nearestStations",
          "nearestMetro",
          "searchQuery",
          "searchCity",
          "scrapedAt",
          "updatedAt",
          "createdAt",
          "description"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

2GIS Business Directory Extractor for CIS & Middle East

Scrape 2GIS business listings across 14 country sites — Russia, Kazakhstan, the UAE, Kyrgyzstan, Uzbekistan, Belarus, Azerbaijan, Armenia, Georgia, Tajikistan, Cyprus, Czechia, Italy and Chile. Search by keyword and city or map area, or paste search, place, organization and building links. Records include the address and coordinates, categories, rating and review counts when published, opening hours, contacts, social links and published attributes, plus a main photo when 2GIS exposes one. No account, API key or proxy is needed.

What this actor does

  • Three modes: search by keyword + city/area, read 2GIS links, or look up place IDs.
  • Rich place data: phones, websites, emails, social links, messengers, hours, rating, review counts, attributes, nearest transit and a main photo.
  • Organization and branch discovery: expand an organization to its branches, or read every business inside a building.
  • Real filters: open now, 24/7, has a website, has photos, has goods/menu, has a rating or reviews, plus rating/review thresholds and category filters.
  • Optional enrichment: review texts with rating, author, date and business replies; photo URLs.
  • Clean output: every empty field is omitted, so records contain no nulls or placeholder values.

Output per place

  • id — 2GIS branch ID
  • name, fullName, shortName, extension, type, recordType
  • url — the place page on the correct 2GIS country site
  • categories, categoryIds, rubrics[], primaryCategory
  • address, addressComment, postcode, street, houseNumber, landmark
  • country, region, city, addressCity, district, districtArea, cityAlias
  • latitude, longitude, timezoneOffset
  • phones, phonesFormatted, website, websites, emails, socialLinks, messengers
  • rating, reviewCount, ratingCount, orgRating, orgReviewCount, ratingCategory, reviewProviders[]
  • workingHours[], scheduleText, is24x7, isClosed
  • orgId, orgName, orgBranchCount, brand
  • attributes[], attributeGroups[], attributesByTag
  • photoCount (when 2GIS returns it), mainPhotoUrl, photos[] (when photo URLs are enabled)
  • reviews[] — review text, rating, author, date, photos and business reply (when enabled)
  • isPromoted, hasGoods, hasDiscount, delivery
  • nearestStations[], nearestMetro[]
  • searchQuery, searchCity, scrapedAt, updatedAt, createdAt, description

Input

Field Type Default Description
mode string search search, urls or ids
searchQueries array – Search terms (mode=search)
locationQuery string – City to search in (mode=search)
cities array – Additional cities; every term runs in each city
cityIds array – Exact 2GIS city IDs instead of names
startUrls array – Search, /firm/, /branches/, /inside/ or short links (mode=urls)
placeIds array – Branch IDs (mode=ids)
latitude, longitude number – Center for a point search
radiusMeters integer 20000 Radius around the point (1–50000)
bbox string – Map rectangle as lon1,lat1,lon2,lat2
country string auto Country site: ru, kz, ae, kg, uz, by, az, am, ge, tj, cy, cz, it, cl
language string auto Content language, e.g. ru_RU, ru_KZ, en_AE, kk_KZ
maxItems integer 50 Max places per search term + city/area
sortBy string relevance relevance, rating, distance, flamp_rating, creation_time, opened_time, name
rubricIds array – Category IDs, e.g. 162 for coffee shops
districtIds array – District IDs for splitting large cities
minRating number – Keep places rated at least this value
minReviews integer – Keep places with at least this many reviews
websiteFilter string all all, with or without a website
filterHasPhotos boolean false Only places with photos
filterOpenNow boolean false Only places open now
filter24x7 boolean false Only places open around the clock
filterHasGoods boolean false Only places with goods or a menu
filterHasRating boolean false Only places with a rating
filterHasReviews boolean false Only places with reviews
filterDelivery boolean false Only places whose attributes mention delivery
filterTakeaway boolean false Only places whose attributes mention takeaway
filterCardPayment boolean false Only places whose attributes mention card payment
filterWifi boolean false Only places whose attributes mention Wi-Fi
minAverageCheck, maxAverageCheck integer – Filter by published average check
skipAds boolean false Drop promoted results
includeContacts boolean true Add phones, websites, emails, socials and messengers
includeReviews boolean false Add review texts
maxReviewsPerPlace integer 10 Max review texts per place
reviewsSort string date_created date_created, date_edited or rating
reviewsMinRating integer – Keep reviews with at least this rating
reviewsWithAnswer boolean false Keep only reviews with a business reply
reviewsSince string – Keep reviews since YYYY-MM-DD
reviewsKeyword string – Keep reviews containing this word
includePhotos boolean false Add photo URLs
maxPhotosPerPlace integer 5 Max photo URLs per place
scrapeOrgBranches boolean false Expand a place link to its organization's branches

Example: coffee shops in Moscow

{
  "mode": "search",
  "searchQueries": ["coffee"],
  "locationQuery": "Moscow",
  "maxItems": 25,
  "websiteFilter": "with",
  "sortBy": "rating"
}

Example: Dubai restaurants that are open now

{
  "mode": "search",
  "searchQueries": ["restaurant"],
  "locationQuery": "Dubai",
  "filterOpenNow": true,
  "includeContacts": true,
  "maxItems": 50
}

Example: read a place and its organization's branches

{
  "mode": "urls",
  "startUrls": ["https://2gis.ru/moscow/firm/70000001044357973"],
  "scrapeOrgBranches": true,
  "includeReviews": true,
  "maxReviewsPerPlace": 5
}

Example: every business inside a building

{
  "mode": "urls",
  "startUrls": ["https://2gis.ru/moscow/inside/4504235290707169"],
  "maxItems": 100
}

Use cases

  • Local lead generation — collect businesses by city and category with phone, website and email contacts.
  • Market research — compare category coverage, ratings and review volumes across cities and countries.
  • Competitor tracking — follow a chain's branches, addresses, hours and rating changes.
  • Reputation monitoring — export ratings, review counts and optional review texts with business replies.
  • Directory enrichment — fill missing contacts, coordinates and opening hours in your own listings.
  • Coverage checks — find businesses without a website, without photos or without reviews.

FAQ

Do I need a 2GIS account or API key?

No. The actor reads 2GIS's public directory data and needs no account, API key, cookie or proxy. Just choose a search term and a city.

Which countries are supported?

Russia, Kazakhstan, the UAE, Kyrgyzstan, Uzbekistan, Belarus, Azerbaijan, Armenia, Georgia, Tajikistan, Cyprus, Czechia, Italy and Chile. The country site is detected automatically from a link or resolved from the city.

Why are some fields missing from a place?

2GIS listings vary. A website, email, social link, photo or review is only included when the business has published it. Empty fields are omitted rather than filled with null or placeholder values.

What is the difference between rating and orgRating?

rating belongs to the individual branch. orgRating and orgReviewCount aggregate the whole organization. ratingCount counts star votes, while reviewCount counts written reviews.

Do reviews and photos work for every place?

Rating and review counts are included whenever 2GIS publishes them. Review texts and photo URLs are optional and depend on what 2GIS exposes for that place. A main photo URL and an exact photo count are included when 2GIS returns them; places with no reviews or photos simply omit those fields.

How do I get more than the default number of places?

Raise maxItems. For very large categories, split the search by district, category (rubricIds) or several narrower search terms. The run status message tells you if more places were available than were requested.

How do I search in Russian, Kazakh or Arabic?

Use the local spelling in searchQueries and locationQuery (for example кофейня and Москва), or set language to the content language you want.

Is this affiliated with 2GIS?

No. This is a third-party actor that reads the public 2GIS directory. It is not affiliated with, endorsed by, or sponsored by 2GIS.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build VmwSyA6i1GQqfVvgJ. Documentation is regenerated from the default published build; private drafts are not included.