{
  "openapi": "3.0.1",
  "info": {
    "title": "Yandex Maps Scraper: Leads, Emails & Website Check",
    "description": "Yandex Maps businesses in Russia, Türkiye, Kazakhstan and the CIS: phones, website, Telegram/WhatsApp/VK, hours, rating and owner verification. Searches whole cities view by view, not just the first pages. Optional website check: emails with their source and whether the site works.",
    "version": "0.1",
    "x-build-id": "tAGfQfphUQY01ISSj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/foxlabs~yandex-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-foxlabs-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/foxlabs~yandex-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-foxlabs-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/foxlabs~yandex-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-foxlabs-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": {
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "One query per line: a business type or a name. Russian queries find the most in Russia and the CIS (стоматология, кафе, автосервис), Turkish ones in Türkiye (diş kliniği, kafe, avukat). A place found by several queries is delivered and charged once.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location (city or district)",
            "type": "string",
            "description": "City, district or region in any language, for example Москва, Kazan, Eskişehir, Kadıköy, İstanbul, Алматы. The whole area is searched, and only places inside Yandex Maps' outline of it are kept. Leave empty to use Coordinates, or to let Yandex read the place from the query text (then only the first result pages are read)."
          },
          "coordinates": {
            "title": "Coordinates (instead of a location)",
            "type": "string",
            "description": "Search around a point instead of a named place: \"latitude, longitude\" as Yandex and Google Maps show them, for example \"55.7558, 37.6176\". Used together with Radius. Overrides Location."
          },
          "radiusKm": {
            "title": "Radius around the coordinates (km)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Only used with Coordinates: places within this many kilometres of the point.",
            "default": 3
          },
          "maxResults": {
            "title": "Maximum places",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of places for the whole run, shared by all queries (each place is charged once). The places Yandex ranks highest come first. Helps control cost. Set to 0 for no limit: the whole area is searched.",
            "default": 500
          },
          "checkWebsites": {
            "title": "Check websites: emails and website status",
            "type": "boolean",
            "description": "Open the website each place lists on Yandex Maps: say whether it works (ok, domain not found, parked or for sale, spam, empty, unreachable, blocks us) and collect the emails it publishes (with the page they were found on and their kind: the website's own domain, free mail or another domain) plus Instagram, WhatsApp and Telegram links. Charged per place whose website was checked.",
            "default": true
          },
          "leadFilter": {
            "title": "Only places with",
            "enum": [
              "all",
              "with-phone",
              "with-website",
              "with-email"
            ],
            "type": "string",
            "description": "Deliver only places that have this contact. Places without it are skipped and not charged. \"Email\" needs the website check and switches it on.",
            "default": "all"
          },
          "minRating": {
            "title": "Minimum rating",
            "enum": [
              "any",
              "3.5",
              "4",
              "4.5",
              "4.8"
            ],
            "type": "string",
            "description": "Skip places rated below this on Yandex Maps (places without a rating are skipped too when a minimum is set). Skipped places are not charged.",
            "default": "any"
          },
          "skipClosed": {
            "title": "Skip permanently closed places",
            "type": "boolean",
            "description": "Yandex marks some listings as permanently closed. On by default: they are skipped and not charged. Temporarily closed places are always delivered.",
            "default": true
          },
          "language": {
            "title": "Output language",
            "enum": [
              "auto",
              "ru",
              "tr",
              "en"
            ],
            "type": "string",
            "description": "Language of names, addresses and categories. Automatic uses Turkish for places in Türkiye, Russian for Russia and the CIS, English elsewhere.",
            "default": "auto"
          },
          "placeUrls": {
            "title": "Specific places (Yandex Maps URLs or IDs)",
            "type": "array",
            "description": "Yandex Maps place links such as https://yandex.com/maps/org/name/1018907821/ (any Yandex domain), or the number alone. Filters do not apply to places you list. Short share links (/maps/-/…) are not supported.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy without a group (the datacenter pool) works for Yandex Maps and is the default. The Actor switches to residential proxy on its own if Yandex keeps refusing (see the next setting).",
            "default": {
              "useApifyProxy": true
            }
          },
          "residentialFallback": {
            "title": "Switch to residential proxy when blocked",
            "type": "boolean",
            "description": "If Yandex answers several requests in a row with a captcha or a rate limit, continue through Apify residential proxy. The price per place stays the same.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}