{
  "openapi": "3.0.1",
  "info": {
    "title": "2GIS Reviews Scraper: Отзывы 2ГИС, Photos, Replies & Monitoring",
    "description": "Export 2GIS (2ГИС) reviews by place ID or link: full text, stars, photos, reviewer details, owner replies and Flamp reviews. Filter by rating, date, keyword, source or unanswered, or schedule a monitor to get only new reviews. No login needed. JSON, CSV, Excel.",
    "version": "0.3",
    "x-build-id": "iEClDcX10jqx8V3OM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~2gis-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-2gis-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/getascraper~2gis-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-2gis-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/getascraper~2gis-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-2gis-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "firmIds": {
            "title": "Place IDs",
            "type": "array",
            "description": "Numeric 2GIS place IDs, for example 4504127912651411. You find one in any 2GIS place link. You can also paste full place links below instead.",
            "default": [
              "4504127912651411"
            ],
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "2GIS place links",
            "type": "array",
            "description": "Paste place links such as https://2gis.ru/moscow/firm/4504127912651411, with or without /tab/reviews at the end. The place ID is read from the link.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort reviews by",
            "enum": [
              "date_edited",
              "date_created",
              "friends",
              "trust"
            ],
            "type": "string",
            "description": "Order in which reviews are returned. 2GIS offers these four orders only.",
            "default": "date_edited"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only return reviews rated at or above this score. 2GIS rates out of 5."
          },
          "maxRating": {
            "title": "Maximum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only return reviews rated at or below this score. Set this to 2 to pull complaints only."
          },
          "dateFrom": {
            "title": "Reviews posted from",
            "type": "string",
            "description": "Only return reviews posted on or after this date. Leave empty for no start date."
          },
          "dateTo": {
            "title": "Reviews posted until",
            "type": "string",
            "description": "Only return reviews posted on or before this date. Leave empty for no end date."
          },
          "replyFilter": {
            "title": "Business reply",
            "enum": [
              "all",
              "replied",
              "unanswered"
            ],
            "type": "string",
            "description": "Keep every review, only the ones the business answered, or only the ones still waiting for an answer.",
            "default": "all"
          },
          "withTextOnly": {
            "title": "Only reviews with written text",
            "type": "boolean",
            "description": "Skip rating-only entries where the reviewer left no comment.",
            "default": false
          },
          "withPhotosOnly": {
            "title": "Only reviews with photos",
            "type": "boolean",
            "description": "Keep only reviews that include at least one photo.",
            "default": false
          },
          "sources": {
            "title": "Review sources",
            "type": "array",
            "description": "2GIS shows reviews collected from several services next to its own. List the ones you want, for example flamp or 2gis. Valid sources: 2gis, flamp, otello, booking, netmonet, tbank, sbertips, avito, 4sq. Leave empty for all.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords to include",
            "type": "array",
            "description": "Keep reviews whose text contains at least one of these words or phrases. Upper and lower case do not matter.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Keywords to exclude",
            "type": "array",
            "description": "Drop reviews whose text contains any of these words or phrases.",
            "items": {
              "type": "string"
            }
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Fill this in to turn on change tracking. The run remembers the reviews it saw under this name and the next run with the same name returns only new reviews, edited reviews, new business replies and rating changes. Leave empty for a normal export."
          },
          "onlyChanges": {
            "title": "Only return changes",
            "type": "boolean",
            "description": "When monitoring, return only new, edited and newly answered reviews plus rating changes. Switch off to also return unchanged reviews.",
            "default": true
          },
          "maxItemsPerFirm": {
            "title": "Max reviews per place",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of reviews to return for each place. Monitor runs after the first one read until nothing new is left.",
            "default": 25
          },
          "maxItems": {
            "title": "Max reviews in total",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap across all places. Leave empty for no total cap."
          },
          "includeRawData": {
            "title": "Include raw API data",
            "type": "boolean",
            "description": "Attach 2GIS's original unprocessed review object under a 'raw' field.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "The default works for normal runs: the Actor connects directly and falls back to datacenter proxies by itself. Choose your own proxies or a country only if you need to.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}