{
  "description": "Search Yandex or parse Yandex SERP URLs and collect organic results, ads, knowledge graph and AI answers, inline images and videos, products, local companies, weather, and related searches.",
  "properties": {
    "domain": {
      "default": "yandex.com",
      "description": "Regional Yandex front. yandex.com is the international entry point; Yandex may serve it from its Russia front (reported as servedDomain).",
      "editor": "select",
      "enum": [
        "yandex.com",
        "yandex.by",
        "yandex.kz",
        "yandex.uz",
        "yandex.com.tr",
        "yandex.com.ge",
        "yandex.az",
        "yandex.md",
        "yandex.tj"
      ],
      "enumTitles": [
        "International (yandex.com)",
        "Belarus (yandex.by)",
        "Kazakhstan (yandex.kz)",
        "Uzbekistan (yandex.uz)",
        "Turkey (yandex.com.tr)",
        "Georgia (yandex.com.ge)",
        "Azerbaijan (yandex.az)",
        "Moldova (yandex.md)",
        "Tajikistan (yandex.tj)"
      ],
      "title": "Yandex Domain",
      "type": "string"
    },
    "failIfEmpty": {
      "default": false,
      "description": "Fail the run when no records were produced, instead of finishing with an empty dataset.",
      "prefill": false,
      "title": "Fail If Empty",
      "type": "boolean"
    },
    "fixTypos": {
      "default": true,
      "description": "Let Yandex correct misspelled queries. Turn it off for exact-match searches.",
      "prefill": true,
      "title": "Fix Typos",
      "type": "boolean"
    },
    "includeAds": {
      "default": true,
      "description": "Include sponsored Yandex Direct rows with their click URL and displayed domain.",
      "prefill": true,
      "title": "Include Ads",
      "type": "boolean"
    },
    "includeBlocks": {
      "default": true,
      "description": "Include knowledge graph, AI answer, inline images, inline videos, products, local companies and weather when present.",
      "prefill": true,
      "title": "Include SERP Blocks",
      "type": "boolean"
    },
    "includeRelatedSearches": {
      "default": true,
      "description": "Include the related-search suggestions shown below the results (requires Include SERP Blocks).",
      "prefill": true,
      "title": "Include Related Searches",
      "type": "boolean"
    },
    "language": {
      "default": "en",
      "description": "Yandex interface and search language. Match it to your query language to keep result text untranslated.",
      "editor": "select",
      "enum": [
        "en",
        "ru",
        "tr",
        "kk",
        "uz",
        "az",
        "be",
        "uk",
        "de",
        "fr",
        "es",
        "it",
        "pt",
        "pl",
        "cs",
        "ar",
        "he",
        "fa",
        "id"
      ],
      "enumTitles": [
        "English",
        "Russian",
        "Turkish",
        "Kazakh",
        "Uzbek",
        "Azerbaijani",
        "Belarusian",
        "Ukrainian",
        "German",
        "French",
        "Spanish",
        "Italian",
        "Portuguese",
        "Polish",
        "Czech",
        "Arabic",
        "Hebrew",
        "Persian",
        "Indonesian"
      ],
      "title": "Language",
      "type": "string"
    },
    "maxItems": {
      "default": 100,
      "description": "Global cap on unique items across all queries and pages (1-10,000). In rows mode this is the row count; in pages mode it caps the items inside page records.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 1,
      "title": "Max Items",
      "type": "integer"
    },
    "maxPages": {
      "default": 3,
      "description": "Number of result pages to read per query (1-25). Yandex serves at most 25 pages.",
      "maximum": 25,
      "minimum": 1,
      "prefill": 1,
      "title": "Max Pages Per Query",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "Search by keyword or parse existing Yandex SERP URLs.",
      "editor": "select",
      "enum": [
        "search",
        "byUrls"
      ],
      "enumTitles": [
        "Search by keyword",
        "Scrape Yandex SERP URLs"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "outputFormat": {
      "default": "pages",
      "description": "Page records preserve the existing dataset shape; rows emit one flat record per result or block item.",
      "editor": "select",
      "enum": [
        "pages",
        "rows"
      ],
      "enumTitles": [
        "One record per SERP page",
        "One record per result item"
      ],
      "prefill": "pages",
      "title": "Output Format",
      "type": "string"
    },
    "queries": {
      "description": "One or more search queries (mode=search). Each query is processed separately.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "prefill": [
        "python programming"
      ],
      "title": "Search Queries",
      "type": "array"
    },
    "region": {
      "default": "",
      "description": "Named Yandex region preset. Leave empty to use Yandex's default region. regionId overrides this value.",
      "editor": "select",
      "enum": [
        "",
        "ru",
        "moscow",
        "spb",
        "novosibirsk",
        "yekaterinburg",
        "kazan",
        "nizhny-novgorod",
        "chelyabinsk",
        "omsk",
        "samara",
        "rostov-on-don",
        "ufa",
        "krasnoyarsk",
        "voronezh",
        "perm",
        "volgograd",
        "by",
        "minsk",
        "kz",
        "almaty",
        "astana",
        "uz",
        "tashkent",
        "tr",
        "istanbul",
        "ankara",
        "izmir",
        "ge",
        "az",
        "md",
        "tj"
      ],
      "enumTitles": [
        "Any region (default)",
        "Russia",
        "Moscow",
        "Saint Petersburg",
        "Novosibirsk",
        "Yekaterinburg",
        "Kazan",
        "Nizhny Novgorod",
        "Chelyabinsk",
        "Omsk",
        "Samara",
        "Rostov-on-Don",
        "Ufa",
        "Krasnoyarsk",
        "Voronezh",
        "Perm",
        "Volgograd",
        "Belarus",
        "Minsk",
        "Kazakhstan",
        "Almaty",
        "Astana",
        "Uzbekistan",
        "Tashkent",
        "Turkey",
        "Istanbul",
        "Ankara",
        "Izmir",
        "Georgia",
        "Azerbaijan",
        "Moldova",
        "Tajikistan"
      ],
      "title": "Region",
      "type": "string"
    },
    "regionId": {
      "description": "Numeric Yandex region ID (lr). Overrides the Region preset. For example 213 is Moscow and 983 is Turkey.",
      "maximum": 3000000,
      "minimum": 1,
      "title": "Region ID",
      "type": "integer"
    },
    "serpUrls": {
      "description": "Yandex search-result URLs, one per page (mode=byUrls). Direct Yandex URLs and translated Yandex URLs are accepted.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "title": "Yandex SERP URLs",
      "type": "array"
    },
    "startPage": {
      "default": 0,
      "description": "Zero-based page to start from (0-24). Use it to resume a deep result window.",
      "maximum": 24,
      "minimum": 0,
      "title": "Start Page",
      "type": "integer"
    },
    "timeFilter": {
      "default": "any",
      "description": "Limit results by recency. The values map to Yandex's own past-day, past-two-weeks and past-month filters.",
      "editor": "select",
      "enum": [
        "any",
        "day",
        "twoWeeks",
        "month"
      ],
      "enumTitles": [
        "Any time",
        "Past 24 hours",
        "Past two weeks",
        "Past month"
      ],
      "title": "Time Filter",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Yandex SERP & Knowledge Graph Scraper Input",
  "type": "object"
}
