{
  "openapi": "3.0.1",
  "info": {
    "title": "Yandex Maps Scraper: Places, Phones & Reviews",
    "description": "Collect Yandex Maps places and reviews for local leads and market research. Get phones, websites, ratings, hours and reviews by search, city or business URL. No login or API key needed.",
    "version": "0.1",
    "x-build-id": "LFjRUOCCvufNOxama"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cliqtomedia~yandex-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cliqtomedia-yandex-maps-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/cliqtomedia~yandex-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cliqtomedia-yandex-maps-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/cliqtomedia~yandex-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cliqtomedia-yandex-maps-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": {
          "mode": {
            "title": "Data to collect",
            "enum": [
              "places",
              "reviews",
              "monitor"
            ],
            "type": "string",
            "description": "Choose business places, separate review rows, or changes in ratings and review counts.",
            "default": "places"
          },
          "query": {
            "title": "Search terms",
            "type": "array",
            "description": "One or more business names or types. Results are shared across the run limit.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "City or area",
            "type": "string",
            "description": "City or area for the search. If you leave it empty, the Actor uses Алматы. A city in a search term may override this area.",
            "default": "Алматы"
          },
          "locations": {
            "title": "Several cities",
            "type": "array",
            "description": "Search the same terms in each city. Duplicate businesses are returned once.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Business category",
            "type": "string",
            "description": "Add a business category as another search term."
          },
          "businessIds": {
            "title": "Business IDs",
            "type": "array",
            "description": "Numeric organization IDs from Yandex Maps business page URLs.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Business page URLs",
            "type": "array",
            "description": "HTTPS Yandex Maps organization pages, short links, or search pages. Other websites are rejected.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "Yandex Maps URL",
                  "description": "Public HTTPS Yandex Maps organization, search or short link."
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "maxItems": {
            "title": "Maximum result rows",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Total result limit for the whole run. In reviews mode this counts reviews. For large searches, turn reviews off and increase the run timeout and maximum charge. Source windows may return fewer rows; use several queries or areas.",
            "default": 10
          },
          "maxResults": {
            "title": "Maximum results (compatibility)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Optional older name for Maximum result rows. If you set it, it overrides Maximum result rows."
          },
          "includeReviews": {
            "title": "Include reviews in places",
            "type": "boolean",
            "description": "Add review text, dates, ratings, replies and public reviewer information to each business.",
            "default": true
          },
          "maxReviews": {
            "title": "Reviews per business",
            "minimum": 0,
            "maximum": 2400,
            "type": "integer",
            "description": "Maximum matching reviews per business. In Reviews mode: up to 2400 (Yandex exposes up to 600 per order; All combines four orders). Inside Places and Monitor rows: up to 50 per business, so use Reviews mode for more. A reported source total may be higher than accessible public reviews.",
            "default": 50
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "relevance",
              "newest",
              "oldest",
              "highestRating",
              "lowestRating",
              "all"
            ],
            "type": "string",
            "description": "Use source relevance, newest or star order. All combines four public source orders. Oldest sorts the accessible source window; rows may be partial when older reviews are outside it.",
            "default": "relevance"
          },
          "reviewMinRating": {
            "title": "Minimum review rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Keep reviews with at least this many stars."
          },
          "reviewMaxRating": {
            "title": "Maximum review rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Keep reviews with at most this many stars."
          },
          "reviewsFrom": {
            "title": "Reviews updated from",
            "type": "string",
            "description": "Keep reviews updated on or after this date. Use an ISO date or timestamp."
          },
          "reviewsTo": {
            "title": "Reviews updated to",
            "type": "string",
            "description": "Keep reviews updated through this date. A date without a time includes the full UTC day."
          },
          "onlyWithText": {
            "title": "Reviews with text only",
            "type": "boolean",
            "description": "Skip ratings that have no review text.",
            "default": false
          },
          "replyFilter": {
            "title": "Owner reply filter",
            "enum": [
              "all",
              "replied",
              "unanswered"
            ],
            "type": "string",
            "description": "Keep all reviews, reviews with an owner reply, or reviews without a reply.",
            "default": "all"
          },
          "language": {
            "title": "Business data language",
            "enum": [
              "ru",
              "en",
              "tr",
              "uk",
              "kk"
            ],
            "type": "string",
            "description": "Language for addresses, categories, hours and feature names. Review text keeps its original language.",
            "default": "ru"
          },
          "maxPhotos": {
            "title": "Photos per business",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum public photo links to return. Images are not downloaded.",
            "default": 0
          },
          "maxPosts": {
            "title": "Posts per business",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum public business news posts to return.",
            "default": 0
          },
          "includeMenu": {
            "title": "Full menu or price list",
            "type": "boolean",
            "description": "Read the public menu tab and include item names, prices, currencies and photo links.",
            "default": false
          },
          "enrichBusinessData": {
            "title": "Extra business details",
            "type": "boolean",
            "description": "Read the full menu and try role-based email addresses on the business website. Website checks are best effort; see emailStatus.",
            "default": false
          },
          "excludeBusinessIds": {
            "title": "Business IDs to skip",
            "type": "array",
            "description": "Skip organizations you already collected. Skipped rows have no result charge.",
            "items": {
              "type": "string"
            }
          },
          "onlyNew": {
            "title": "Only new results",
            "type": "boolean",
            "description": "Return only new places or reviews using saved history. Monitor mode already returns changes and takes precedence over this option.",
            "default": false
          },
          "stateName": {
            "title": "History store name",
            "pattern": "^yandex-maps-scraper-[\\w-]{1,80}$",
            "type": "string",
            "description": "Use the same name to continue a history. Start the name with yandex-maps-scraper-.",
            "default": "yandex-maps-scraper-history"
          },
          "radiusKm": {
            "title": "Search radius",
            "minimum": 0.1,
            "maximum": 500,
            "type": "number",
            "description": "Radius in kilometres around Search center. The source searches a matching map rectangle."
          },
          "coordinates": {
            "title": "Search center",
            "type": "string",
            "description": "Longitude,latitude. Example: 76.94,43.25. Overrides the city map center."
          },
          "viewportSpan": {
            "title": "Search area size",
            "type": "string",
            "description": "Width,height in longitude and latitude degrees. Example: 0.1,0.1."
          },
          "filterRating": {
            "title": "Minimum business rating",
            "enum": [
              "",
              "gt4.9",
              "gt4.7",
              "gt4.5",
              "gt4.0",
              "gt3.5",
              "gt3.0"
            ],
            "type": "string",
            "description": "Return businesses with at least this rating.",
            "default": ""
          },
          "minRating": {
            "title": "Minimum place stars",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep businesses with this rating or higher."
          },
          "filterOpenNow": {
            "title": "Open now",
            "type": "boolean",
            "description": "Keep businesses currently open.",
            "default": false
          },
          "filterOpen24h": {
            "title": "Open 24 hours",
            "type": "boolean",
            "description": "Keep businesses open around the clock.",
            "default": false
          },
          "filterDelivery": {
            "title": "Food delivery",
            "type": "boolean",
            "description": "Keep businesses offering food delivery.",
            "default": false
          },
          "filterTakeaway": {
            "title": "Takeaway",
            "type": "boolean",
            "description": "Keep businesses offering takeaway.",
            "default": false
          },
          "filterWifi": {
            "title": "Wi-Fi",
            "type": "boolean",
            "description": "Keep businesses with Wi-Fi.",
            "default": false
          },
          "filterCardPayment": {
            "title": "Card payments",
            "type": "boolean",
            "description": "Keep businesses that accept card payments.",
            "default": false
          },
          "filterParking": {
            "title": "Parking",
            "type": "boolean",
            "description": "Keep businesses with parking.",
            "default": false
          },
          "filterPetFriendly": {
            "title": "Pets allowed",
            "type": "boolean",
            "description": "Keep businesses that allow pets.",
            "default": false
          },
          "filterWheelchairAccess": {
            "title": "Wheelchair access",
            "type": "boolean",
            "description": "Keep businesses marked as wheelchair accessible.",
            "default": false
          },
          "filterGoodPlace": {
            "title": "Good Place award",
            "type": "boolean",
            "description": "Keep businesses with the Yandex Good Place award.",
            "default": false
          },
          "filterMichelin": {
            "title": "Michelin places",
            "type": "boolean",
            "description": "Keep businesses with a Michelin mark.",
            "default": false
          },
          "filterBusinessLunch": {
            "title": "Business lunch",
            "type": "boolean",
            "description": "Keep businesses offering a business lunch.",
            "default": false
          },
          "filterSummerTerrace": {
            "title": "Summer terrace",
            "type": "boolean",
            "description": "Keep businesses with a summer terrace.",
            "default": false
          },
          "filterCuisine": {
            "title": "Cuisines",
            "type": "array",
            "description": "Cuisine IDs, such as italian_cuisine or japanese_cuisine.",
            "items": {
              "type": "string"
            }
          },
          "filterPriceCategory": {
            "title": "Price levels",
            "type": "array",
            "description": "Source price level IDs, such as price_reasonable.",
            "items": {
              "type": "string"
            }
          },
          "filterCategories": {
            "title": "Category IDs",
            "type": "array",
            "description": "Source business category IDs. A business may match any selected category.",
            "items": {
              "type": "string"
            }
          },
          "filterChainId": {
            "title": "Chain IDs",
            "type": "array",
            "description": "Keep branches of these numeric chain IDs.",
            "items": {
              "type": "string"
            }
          },
          "customFilters": {
            "title": "Other source filters",
            "type": "array",
            "description": "Advanced source key:value filters. Each entry is sent as a separate filter.",
            "items": {
              "type": "string"
            }
          },
          "filterPriceMin": {
            "title": "Minimum average bill",
            "minimum": 0,
            "type": "integer",
            "description": "Keep businesses with a stated average bill at or above this amount in local currency."
          },
          "filterPriceMax": {
            "title": "Maximum average bill",
            "minimum": 0,
            "type": "integer",
            "description": "Keep businesses with a stated average bill at or below this amount in local currency."
          },
          "sortBy": {
            "title": "Place order",
            "enum": [
              "",
              "distance"
            ],
            "type": "string",
            "description": "Use source relevance order or distance from the given origin.",
            "default": ""
          },
          "sortOrigin": {
            "title": "Distance origin",
            "type": "string",
            "description": "Longitude,latitude used for distance sorting."
          },
          "searchScope": {
            "title": "Search coverage",
            "enum": [
              "city",
              "country"
            ],
            "type": "string",
            "description": "Search one city, or chain branches across Russian cities and overlapping map areas, including smaller towns. Country mode needs a chain ID and a supported Russian starting city. Coverage is not exhaustive; check the run summary.",
            "default": "city"
          },
          "deliveryConnector": {
            "title": "Send results to (optional)",
            "type": "string",
            "description": "Your Slack, Notion or other MCP connector. After the run the Actor posts a short summary there. Connect services once in Apify Console → MCP connectors."
          },
          "deliveryTarget": {
            "title": "Notion page or channel (optional)",
            "type": "string",
            "description": "Where to post the summary: a Notion page link (each run is added on top of that page) or a Slack channel ID. Leave empty to let the connector decide."
          },
          "reportNewOwnerReplies": {
            "title": "New owner replies",
            "type": "boolean",
            "description": "With Only new results in reviews mode, also return old reviews that have a new or updated owner reply.",
            "default": false
          },
          "searchTransport": {
            "title": "Search route",
            "enum": [
              "standard",
              "webPages"
            ],
            "type": "string",
            "description": "Standard search transfers less data. Choose web pages if the source rejects standard search. Result fields and filters are the same.",
            "default": "standard"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}