{
  "openapi": "3.0.1",
  "info": {
    "title": "Yandex Maps Scraper - Emails, Phones & Reviews",
    "description": "Turn Yandex Maps into structured business leads. Extract phones, emails, websites, social links, reviews, ratings, opening hours and menu prices. Search by keyword, URL or business ID. Supports 6 languages and regional currencies. Export to Excel, CSV or JSON.",
    "version": "0.2",
    "x-build-id": "x7aB6U3EijBVhuGta"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trakk~yandex-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trakk-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/trakk~yandex-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-trakk-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/trakk~yandex-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-trakk-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": {
          "scrapeType": {
            "title": "What to collect",
            "enum": [
              "search",
              "details",
              "reviews"
            ],
            "type": "string",
            "description": "Find businesses, enrich specific places, or export one row per review.",
            "default": "search"
          },
          "query": {
            "title": "Search queries",
            "type": "array",
            "description": "One search phrase per line. Include the city in each query, or set Location below. Commas are kept as part of the phrase. Example: coffee Moscow; стоматология Казань.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "location": {
            "title": "Location (optional)",
            "type": "string",
            "description": "Appended to every query. Leave empty when your query already includes the city. Coordinates take precedence for the search area.",
            "default": ""
          },
          "startUrls": {
            "title": "Yandex Maps links",
            "type": "array",
            "description": "Business pages, search links, category pages or short share links. Business IDs work below too. Category pages return the organizations available on that page.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "businessIds": {
            "title": "Business IDs",
            "type": "array",
            "description": "Numeric IDs from the business URL, for example 1036014863. Use this to skip discovery.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxItems": {
            "title": "Maximum output rows",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "TOTAL for the whole run, shared by all queries and URLs. In review mode this limits review rows. Duplicates and filtered places do not use the allowance. Unlimited runs are not supported.",
            "default": 20
          },
          "language": {
            "title": "Язык данных / Data language",
            "enum": [
              "ru",
              "en",
              "tr",
              "kk",
              "uk",
              "az"
            ],
            "type": "string",
            "description": "Выберите язык адресов, категорий и графика работы. Названия организаций и отзывы сохраняют оригинал; перевод отзыва возвращается только если его предоставляет Яндекс. Валюта берётся из цен источника и не меняется при выборе языка. / Choose the metadata language. Currency always follows the source prices, without conversion.",
            "default": "ru"
          },
          "enrichContacts": {
            "title": "Find additional business contacts",
            "type": "boolean",
            "description": "Collect emails, phone links and social profiles from the linked business website (up to three public pages). Official business replies can also provide emails. Every additional contact includes its source. Availability varies.",
            "default": true
          },
          "includeMenu": {
            "title": "Include full menu or price list",
            "type": "boolean",
            "description": "Fetch the complete menu/price list when the business publishes one. When off, the available menu preview is returned.",
            "default": false
          },
          "maxPhotos": {
            "title": "Photos per business",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum photos to return, including dimensions, tags and available author information. 0 disables photo collection.",
            "default": 3
          },
          "maxPosts": {
            "title": "Posts per business",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum public news/posts per business. 0 disables post collection.",
            "default": 3
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Collect review text, rating, date, author profile, photos, videos and the business reply when available.",
            "default": true
          },
          "maxReviews": {
            "title": "Reviews per business",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum matching reviews per business. Review mode also respects Maximum output rows across the whole run. 0 disables reviews in business modes.",
            "default": 5
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "relevance",
              "newest",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Choose the source review order. A pinned review may still appear first.",
            "default": "relevance"
          },
          "reviewsSince": {
            "title": "Reviews newer than (optional)",
            "type": "string",
            "description": "Exclusive cutoff: only reviews dated after this instant. ISO-8601 such as 2026-01-01T00:00:00Z, Unix seconds or milliseconds. An empty result can be correct; Run summary explains it.",
            "default": ""
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "0 means any rating. Filters business ratings in business modes and review ratings in review mode.",
            "default": 0
          },
          "maxReviewRating": {
            "title": "Maximum review rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Used only in Reviews mode. Combine with Minimum rating to select negative or positive reviews.",
            "default": 5
          },
          "requirePhone": {
            "title": "Only businesses with a phone",
            "type": "boolean",
            "description": "Keep businesses with a phone listed in Yandex Maps.",
            "default": false
          },
          "requireWebsite": {
            "title": "Only businesses with a website",
            "type": "boolean",
            "description": "Keep businesses with a website listed in Yandex Maps.",
            "default": false
          },
          "filterOpenNow": {
            "title": "Only open businesses",
            "type": "boolean",
            "description": "Keep businesses whose current source status explicitly says they are open.",
            "default": false
          },
          "deduplicate": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Return a business once across all sources, or each unique review once in Reviews mode.",
            "default": true
          },
          "excludeBusinessIds": {
            "title": "Skip previously collected IDs",
            "type": "array",
            "description": "Useful for repeat runs. These business IDs are skipped before enrichment.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "outputFormat": {
            "title": "Export field format",
            "enum": [
              "extended",
              "zen",
              "mamaev"
            ],
            "type": "string",
            "description": "Extended includes the fields used by popular Yandex Maps Actors plus additional contact evidence and data-quality fields. Choose a compatibility format to match differing website/features/region data types.",
            "default": "extended"
          },
          "coordinates": {
            "title": "Area center: longitude,latitude",
            "type": "string",
            "description": "Example: 37.622,55.753. Overrides the city center for query searches.",
            "default": ""
          },
          "viewportSpan": {
            "title": "Area size: longitude span,latitude span",
            "type": "string",
            "description": "Example: 0.1,0.1 for a city-center area. Requires a sensible area center.",
            "default": ""
          },
          "maxPages": {
            "title": "Maximum pages per source",
            "minimum": 1,
            "maximum": 40,
            "type": "integer",
            "description": "Applies to search and review pagination. The Run summary distinguishes page limits from a fully exhausted source.",
            "default": 10
          },
          "maxRuntimeSecs": {
            "title": "Time budget (seconds)",
            "minimum": 5,
            "maximum": 180,
            "type": "integer",
            "description": "Stops collection gracefully within the time budget and keeps records already saved. Upper limit cannot be raised by input.",
            "default": 150
          },
          "maxRequests": {
            "title": "Request budget",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Total attempts, including retries, detail pages and website contact pages. Stops new work when reached.",
            "default": 300
          },
          "maxConcurrency": {
            "title": "Concurrent requests",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Balanced default for speed and reliability. Use a lower value if the source is responding slowly.",
            "default": 8
          },
          "maxRetries": {
            "title": "Retries after a failed request",
            "minimum": 0,
            "maximum": 2,
            "type": "integer",
            "description": "Bounded retries for temporary source failures. A failed business does not discard successful results.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Connection settings",
            "type": "object",
            "description": "Optional custom connection configuration. Leave unchanged for automatic handling."
          },
          "maxContactPages": {
            "title": "Contact pages per business",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Maximum public pages from the business website, including contact pages and a linked privacy page when needed.",
            "default": 3
          },
          "resumeState": {
            "title": "Resume state (automatic)",
            "type": "object",
            "description": "Use the value provided in RESUME_INPUT to continue a limited run. Leave empty for a new collection.",
            "default": {}
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}