{
  "openapi": "3.0.1",
  "info": {
    "title": "Yandex Maps Scraper - Places, Phones & New Business Monitor",
    "description": "For lead lists and local market research: Yandex Maps (Яндекс Карты) places by category and city with name, address, phones, website, hours and rating - only places that really match your category, city and street, not other trades or nearby towns. Monitor mode returns only new or changed places.",
    "version": "0.1",
    "x-build-id": "i0QtGvRPxljTjQrf3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~yandex-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-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/neverempty~yandex-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-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/neverempty~yandex-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-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": {
          "searchQueries": {
            "title": "Search terms (business type or name)",
            "type": "array",
            "description": "What you would type into the Yandex Maps search box, for example стоматология, кафе, автосервис, dentist, pharmacy, or a chain name. Russian terms give the best results. Put the city in Location, not here. Leave Search terms, Search URLs and Place URLs all empty to run the example search стоматология in Казань.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location (city or region)",
            "type": "string",
            "description": "Optional. City, district or region the search is about, for example Казань, Москва, Санкт-Петербург, Almaty, Московская область. It is added to each search term, and with Only matching places on, a place is returned only when this name is its city (or, for a region name with область / край / республика / region / oblast, anywhere in its address). Write the full name (Санкт-Петербург, not СПб)."
          },
          "addressContains": {
            "title": "Address must contain (streets, postal codes)",
            "type": "array",
            "description": "Optional. Keep only places whose address contains one of these, word for word and in this order, for example Тверская улица, проспект Мира, 420111. A 5 or 6 digit entry is matched against the postal code exactly. Other places Yandex Maps shows nearby are left out and not charged.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Optional. Yandex Maps search pages copied from your browser, for example https://yandex.ru/maps/213/moscow/search/кафе/ or https://yandex.ru/maps/?text=кафе&ll=37.62,55.75&z=13 (the map window ll, z, spn is kept). A place page pasted here is read as a place.",
            "items": {
              "type": "string"
            }
          },
          "placeUrls": {
            "title": "Place URLs or IDs",
            "type": "array",
            "description": "Optional. Yandex Maps place pages or place IDs, for example https://yandex.ru/maps/org/short_talk/80065192585/ or 80065192585. Up to 100 per run. Returns the details of each place; with Only new or changed, only places whose details changed.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language",
            "enum": [
              "auto",
              "ru",
              "en"
            ],
            "type": "string",
            "description": "Language of names, addresses and categories. Location is matched in this language, so write it in the same language. Empty = auto."
          },
          "onlyMatching": {
            "title": "Only matching places",
            "type": "boolean",
            "description": "On (default): return and charge only places where the search term is in the name or categories (or is a category Yandex itself chose for the term), the Location is the place's city, and the address matches Address must contain when given. Places Yandex Maps mixes in from nearby towns or other trades are left out, and a free row says how many. Off: return everything Yandex Maps shows; the match columns still say how each place matched.",
            "default": true
          },
          "maxResultsPerSearch": {
            "title": "Max places per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Most places returned for one search. Empty = 50. In monitor mode it limits the places returned per search in one run; the rest come in the next run."
          },
          "maxPages": {
            "title": "Pages per search",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many Yandex Maps results pages to read for each search (25 places a page, 1 to 20). Reading stops earlier when enough places matched or the list ends. Empty = 4."
          },
          "includeSponsored": {
            "title": "Include advertised places",
            "type": "boolean",
            "description": "On (default): return places that pay Yandex for placement too, marked sponsored true. Off: leave them out.",
            "default": true
          },
          "onlyNew": {
            "title": "Only new or changed (monitor mode)",
            "type": "boolean",
            "description": "Off (default): return the places found. On: the first run returns all of them marked first-check; later runs return only places that appear in this search for the first time (new-in-results) and places whose name, phones, website, address, opening hours, status or categories changed (changed, with the old values). A change is confirmed on the place's own page before it is returned. Schedule it daily or hourly.",
            "default": false
          },
          "includeRatingChanges": {
            "title": "Monitor rating changes too",
            "type": "boolean",
            "description": "Monitor mode only. On: a change of the rating (one decimal, for example 4.8 to 4.9) also counts as a change. Off (default): ratings are returned but not watched. The number of ratings is never watched (it grows every day).",
            "default": false
          },
          "watchName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional. Name of this monitor (letters, digits, dot, dash, underscore). Monitors with different names remember separately. Empty = default."
          },
          "resetMonitoringState": {
            "title": "Start the monitor over",
            "type": "boolean",
            "description": "Forget what this monitor remembered and treat this run as the first check.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}