{
  "openapi": "3.0.1",
  "info": {
    "title": "Yandex Maps Reviews Scraper - Stars, Text & Owner Replies",
    "description": "Yandex Maps reviews scraper: the reviews of a Yandex Maps place with star rating, full text, author, date, likes, photos and the owner's reply. Every row also carries the place's name, address, category, rating and review count. Paste organisation links or search a city. $0.30 per 1,000 reviews.",
    "version": "0.1",
    "x-build-id": "hPkSG18zSvmOLIHXh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~yandex-maps-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_studio-yandex-maps-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/dami_studio~yandex-maps-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_studio-yandex-maps-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/dami_studio~yandex-maps-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_studio-yandex-maps-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": {
          "startUrls": {
            "title": "Organisation links or ids",
            "type": "array",
            "description": "The organisations whose reviews you want. Paste the page URL (https://yandex.ru/maps/org/niki_dent/55558183898/), the reviews tab (.../reviews/), or just the numeric organisation id (55558183898). A Yandex Maps search URL also works and is expanded into its top organisations.",
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerOrganization": {
            "title": "Maximum reviews per organisation",
            "minimum": 1,
            "maximum": 2400,
            "type": "integer",
            "description": "How many reviews to take from each organisation, 1 to 2,400. Yandex Maps lists up to 600 reviews of a place in each of its four orders. Ask for more than 600 and the run reads the other orders as well and keeps only reviews it has not seen yet, so a big place can give up to 2,400 different reviews, and the ones past the first 600 do not follow the order you picked. How many a place really gives depends on how much its orders overlap. You are charged per review returned.",
            "default": 100
          },
          "order": {
            "title": "Review order",
            "enum": [
              "relevance",
              "newest",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "The order the reviews come in, the same choice the place's reviews tab offers: Yandex's default order, newest first, highest rated first, or lowest rated first.",
            "default": "relevance"
          },
          "maxItems": {
            "title": "Maximum reviews in total",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Hard cap across every organisation in this run. Use it as a budget stop when you pass in many organisations.",
            "default": 500
          },
          "searchQueries": {
            "title": "Search terms (instead of URLs)",
            "type": "array",
            "description": "Optional. Find organisations by name or category and scrape their reviews, for example \"стоматология\" or \"Osteria Mario\". Combine with \"City\" below. Yandex indexes Russian-language names most completely.",
            "items": {
              "type": "string"
            }
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City for the search terms above. English, Russian or local spelling all work (\"Moscow\", \"Москва\", \"Almaty\", \"Istanbul\"), as does a numeric Yandex geo id such as 213 (the number in a Yandex Maps link of the city). A name Yandex only matches to businesses, not to a place, is refused instead of being searched somewhere else."
          },
          "maxOrganizationsPerQuery": {
            "title": "Organisations per search term",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many organisations each search term contributes before its reviews are scraped.",
            "default": 3
          },
          "minRating": {
            "title": "Minimum star rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only return reviews rated at least this many stars. Filtered-out reviews are not charged."
          },
          "maxRating": {
            "title": "Maximum star rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only return reviews rated at most this many stars. Set to 2 or 3 to pull complaints only."
          },
          "onlyWithText": {
            "title": "Only reviews that have text",
            "type": "boolean",
            "description": "Skip star-only ratings with no written review.",
            "default": false
          },
          "onlyWithBusinessReply": {
            "title": "Only reviews the business replied to",
            "type": "boolean",
            "description": "Keep only reviews carrying an official reply from the organisation.",
            "default": false
          },
          "newerThan": {
            "title": "Published after",
            "type": "string",
            "description": "ISO date, for example 2026-01-01. Only reviews published on or after this date are returned. Anything that is not a date, such as \"2 weeks\", is refused before the run reads anything."
          },
          "olderThan": {
            "title": "Published before",
            "type": "string",
            "description": "ISO date, for example 2026-06-30. Only reviews published before this date are returned. Use it with \"Published after\" for a date range. Anything that is not a date is refused before the run reads anything. When few of a place's reviews fall in the range, the run may stop reading that place early, or skip the places after it, and leaves a free row saying so. Whether it stops depends on how many fall in the range and how quickly the pages load. A place read to the end with none in the range gives no rows."
          },
          "textContains": {
            "title": "Only reviews mentioning",
            "type": "array",
            "description": "Words or phrases, one per line, for example \"парковка\" or \"wait\". Only reviews whose text holds at least one of them are returned; capital letters do not matter. Reviews left out are not charged. When few of a place's reviews match, the run may stop reading that place early, or skip the places after it, and leaves a free row saying so. Whether it stops depends on how many match and how quickly the pages load. A place read to the end with nothing matching gives no rows.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Response language",
            "enum": [
              "",
              "ru_RU",
              "en_US",
              "tr_TR",
              "uk_UA",
              "kk_KZ",
              "uz_UZ",
              "az_AZ"
            ],
            "type": "string",
            "description": "Language for the organisation name, address and category. Review text is always in the language the reviewer wrote it in.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Leave this alone unless you need the run to go out through a particular network. Your own proxy servers are used exactly as given."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}