{
  "description": "Search the web with a query, fetch specific URLs, or crawl a site — and get clean, RAG-ready content (Markdown, text, links, and optional chunks) with citation metadata.",
  "properties": {
    "chunkMarkdown": {
      "default": false,
      "description": "Emit a `chunks` array per page — heading-aware Markdown chunks ready for embedding, never split inside code blocks or tables.",
      "prefill": false,
      "title": "Split content into chunks",
      "type": "boolean"
    },
    "chunkMaxChars": {
      "default": 2000,
      "description": "Target size of each chunk when `chunkMarkdown` is on. Code blocks and tables are kept whole even when larger.",
      "maximum": 10000,
      "minimum": 200,
      "prefill": 2000,
      "title": "Chunk size (characters)",
      "type": "integer"
    },
    "chunkOverlapChars": {
      "default": 200,
      "description": "Approximate overlap between consecutive chunks when `chunkMarkdown` is on, so context is not lost at chunk boundaries.",
      "maximum": 1000,
      "minimum": 0,
      "prefill": 200,
      "title": "Chunk overlap (characters)",
      "type": "integer"
    },
    "domainAllowlist": {
      "default": [],
      "description": "Keep only pages whose host contains one of these substrings (case-insensitive).",
      "editor": "stringList",
      "prefill": [],
      "title": "Allowed domains",
      "type": "array"
    },
    "domainBlocklist": {
      "default": [],
      "description": "Drop pages whose host contains one of these substrings.",
      "editor": "stringList",
      "prefill": [],
      "title": "Blocked domains",
      "type": "array"
    },
    "emitFailedResults": {
      "default": true,
      "description": "When a search result page cannot be fetched after the full retry ladder, still emit one record for it with `url`, `title`, `description`, `searchResult`, `searchRank` and a `fetchError` note (no fabricated content). Turn off to skip failed pages entirely.",
      "prefill": false,
      "title": "Emit results for pages that could not be fetched",
      "type": "boolean"
    },
    "excludeContentSelectors": {
      "default": [],
      "description": "Additional CSS selectors removed before extraction, on top of `Remove elements`.",
      "editor": "stringList",
      "prefill": [],
      "title": "Extra selectors to remove",
      "type": "array"
    },
    "htmlTransformer": {
      "default": "readable-text",
      "description": "`Readable content` finds the article body and drops navigation and boilerplate. `None` keeps the full cleaned page.",
      "editor": "select",
      "enum": [
        "none",
        "readable-text"
      ],
      "enumTitles": [
        "None (full page)",
        "Readable content (main article)"
      ],
      "prefill": "readable-text",
      "title": "Main content extraction",
      "type": "string"
    },
    "includeMetadata": {
      "default": true,
      "description": "Add canonical URL, author, published date, keywords, social image, and site name (each only when the page provides it).",
      "prefill": true,
      "title": "Include page metadata",
      "type": "boolean"
    },
    "keepElementsCssSelector": {
      "default": [],
      "description": "When set, only content inside these selectors is kept — everything else is dropped before extraction.",
      "editor": "stringList",
      "prefill": [],
      "title": "Keep only elements (CSS selector)",
      "type": "array"
    },
    "keywordsAnyOf": {
      "default": [],
      "description": "Keep only pages whose title or content contains at least one of these keywords (case-insensitive).",
      "editor": "stringList",
      "prefill": [],
      "title": "Required keywords (any of)",
      "type": "array"
    },
    "maxContentLength": {
      "default": 0,
      "description": "Truncate the emitted text and Markdown of each page to this many characters. 0 returns the full content. Useful for controlling embedding cost.",
      "maximum": 1000000,
      "minimum": 0,
      "prefill": 0,
      "title": "Max content length (characters)",
      "type": "integer"
    },
    "maxCrawlDepth": {
      "default": 0,
      "description": "0 reads only the start URLs. 1+ follows links found on those pages, staying on the same website, up to this depth.",
      "maximum": 5,
      "minimum": 0,
      "prefill": 0,
      "title": "Crawl depth",
      "type": "integer"
    },
    "maxCrawlPages": {
      "default": 25,
      "description": "Safety cap on pages visited in crawl mode.",
      "maximum": 500,
      "minimum": 1,
      "prefill": 25,
      "title": "Max pages to crawl",
      "type": "integer"
    },
    "maxItems": {
      "default": 0,
      "description": "Overall cap on how many pages the run may emit across all queries, URLs, and crawled pages. 0 means no global cap.",
      "maximum": 10000,
      "minimum": 0,
      "prefill": 0,
      "title": "Max pages per run",
      "type": "integer"
    },
    "maxResults": {
      "default": 3,
      "description": "How many top organic results to fetch and emit for each search query. Values above 10 need multiple search-result pages (slower). With `Emit results for pages that could not be fetched` on, each of the requested results yields one record — a page record when the fetch succeeds, or a metadata record with `fetchError` when it does not.",
      "maximum": 250,
      "minimum": 1,
      "prefill": 3,
      "title": "Max search results per query",
      "type": "integer"
    },
    "minTextLength": {
      "description": "Drop pages with fewer than this many characters of extracted text. Useful for skipping thin or placeholder pages.",
      "maximum": 1000000,
      "minimum": 0,
      "title": "Minimum text length",
      "type": "integer"
    },
    "outputFormats": {
      "default": [
        "markdown"
      ],
      "description": "Which representations to include per page, in any combination. `Links` adds every link found on the page as structured `{url, text}` pairs.",
      "editor": "select",
      "items": {
        "enum": [
          "markdown",
          "text",
          "html",
          "links"
        ],
        "enumTitles": [
          "Markdown",
          "Plain text",
          "HTML",
          "Links"
        ],
        "type": "string"
      },
      "prefill": [
        "markdown"
      ],
      "title": "Output formats",
      "type": "array"
    },
    "queries": {
      "default": [],
      "description": "Additional queries for batch research runs. Each query is searched and its top results are fetched. A query that is itself a URL is fetched directly.",
      "editor": "stringList",
      "prefill": [],
      "title": "More search queries",
      "type": "array"
    },
    "query": {
      "default": "what is retrieval augmented generation",
      "description": "What to look up, or a single web page URL to read. Examples: `vector database comparison`, `https://en.wikipedia.org/wiki/Retrieval-augmented_generation`. When `startUrls` or `queries` are also set, everything is processed in one run.",
      "editor": "textfield",
      "prefill": "what is retrieval augmented generation",
      "title": "Search query (or one URL)",
      "type": "string"
    },
    "removeElementsCssSelector": {
      "default": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='true']",
      "description": "Comma-separated CSS selectors removed before extraction (navigation, footers, ads, cookie bars). Set a non-matching selector such as `dummy_keep_everything` to keep everything.",
      "editor": "textfield",
      "prefill": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='true']",
      "title": "Remove elements (CSS selector)",
      "type": "string"
    },
    "searchCountry": {
      "default": "auto",
      "description": "Country bias for search results. `Automatic` means no country bias.",
      "editor": "select",
      "enum": [
        "auto",
        "ad",
        "ae",
        "af",
        "ag",
        "ai",
        "al",
        "am",
        "ao",
        "aq",
        "ar",
        "as",
        "at",
        "au",
        "aw",
        "ax",
        "az",
        "ba",
        "bb",
        "bd",
        "be",
        "bf",
        "bg",
        "bh",
        "bi",
        "bj",
        "bl",
        "bm",
        "bn",
        "bo",
        "bq",
        "br",
        "bs",
        "bt",
        "bv",
        "bw",
        "by",
        "bz",
        "ca",
        "cc",
        "cd",
        "cf",
        "cg",
        "ch",
        "ci",
        "ck",
        "cl",
        "cm",
        "cn",
        "co",
        "cr",
        "cu",
        "cv",
        "cw",
        "cx",
        "cy",
        "cz",
        "de",
        "dj",
        "dk",
        "dm",
        "do",
        "dz",
        "ec",
        "ee",
        "eg",
        "eh",
        "er",
        "es",
        "et",
        "fi",
        "fj",
        "fk",
        "fm",
        "fo",
        "fr",
        "ga",
        "gb",
        "gd",
        "ge",
        "gf",
        "gg",
        "gh",
        "gi",
        "gl",
        "gm",
        "gn",
        "gp",
        "gq",
        "gr",
        "gs",
        "gt",
        "gu",
        "gw",
        "gy",
        "hk",
        "hm",
        "hn",
        "hr",
        "ht",
        "hu",
        "id",
        "ie",
        "il",
        "im",
        "in",
        "io",
        "iq",
        "ir",
        "is",
        "it",
        "je",
        "jm",
        "jo",
        "jp",
        "ke",
        "kg",
        "kh",
        "ki",
        "km",
        "kn",
        "kp",
        "kr",
        "kw",
        "ky",
        "kz",
        "la",
        "lb",
        "lc",
        "li",
        "lk",
        "lr",
        "ls",
        "lt",
        "lu",
        "lv",
        "ly",
        "ma",
        "mc",
        "md",
        "me",
        "mf",
        "mg",
        "mh",
        "mk",
        "ml",
        "mm",
        "mn",
        "mo",
        "mp",
        "mq",
        "mr",
        "ms",
        "mt",
        "mu",
        "mv",
        "mw",
        "mx",
        "my",
        "mz",
        "na",
        "nc",
        "ne",
        "nf",
        "ng",
        "ni",
        "nl",
        "no",
        "np",
        "nr",
        "nu",
        "nz",
        "om",
        "pa",
        "pe",
        "pf",
        "pg",
        "ph",
        "pk",
        "pl",
        "pm",
        "pn",
        "pr",
        "ps",
        "pt",
        "pw",
        "py",
        "qa",
        "re",
        "ro",
        "rs",
        "ru",
        "rw",
        "sa",
        "sb",
        "sc",
        "sd",
        "se",
        "sg",
        "sh",
        "si",
        "sj",
        "sk",
        "sl",
        "sm",
        "sn",
        "so",
        "sr",
        "ss",
        "st",
        "sv",
        "sx",
        "sy",
        "sz",
        "tc",
        "td",
        "tf",
        "tg",
        "th",
        "tj",
        "tk",
        "tl",
        "tm",
        "tn",
        "to",
        "tr",
        "tt",
        "tv",
        "tw",
        "tz",
        "ua",
        "ug",
        "um",
        "us",
        "uy",
        "uz",
        "va",
        "vc",
        "ve",
        "vg",
        "vi",
        "vn",
        "vu",
        "wf",
        "ws",
        "ye",
        "yt",
        "za",
        "zm",
        "zw"
      ],
      "enumTitles": [
        "Automatic (no country bias)",
        "Andorra",
        "United Arab Emirates",
        "Afghanistan",
        "Antigua and Barbuda",
        "Anguilla",
        "Albania",
        "Armenia",
        "Angola",
        "Antarctica",
        "Argentina",
        "American Samoa",
        "Austria",
        "Australia",
        "Aruba",
        "Åland Islands",
        "Azerbaijan",
        "Bosnia and Herzegovina",
        "Barbados",
        "Bangladesh",
        "Belgium",
        "Burkina Faso",
        "Bulgaria",
        "Bahrain",
        "Burundi",
        "Benin",
        "Saint Barthélemy",
        "Bermuda",
        "Brunei Darussalam",
        "Bolivia, Plurinational State of",
        "Bonaire, Sint Eustatius and Saba",
        "Brazil",
        "Bahamas",
        "Bhutan",
        "Bouvet Island",
        "Botswana",
        "Belarus",
        "Belize",
        "Canada",
        "Cocos (Keeling) Islands",
        "Congo, The Democratic Republic of the",
        "Central African Republic",
        "Congo",
        "Switzerland",
        "Côte d'Ivoire",
        "Cook Islands",
        "Chile",
        "Cameroon",
        "China",
        "Colombia",
        "Costa Rica",
        "Cuba",
        "Cabo Verde",
        "Curaçao",
        "Christmas Island",
        "Cyprus",
        "Czechia",
        "Germany",
        "Djibouti",
        "Denmark",
        "Dominica",
        "Dominican Republic",
        "Algeria",
        "Ecuador",
        "Estonia",
        "Egypt",
        "Western Sahara",
        "Eritrea",
        "Spain",
        "Ethiopia",
        "Finland",
        "Fiji",
        "Falkland Islands (Malvinas)",
        "Micronesia, Federated States of",
        "Faroe Islands",
        "France",
        "Gabon",
        "United Kingdom",
        "Grenada",
        "Georgia",
        "French Guiana",
        "Guernsey",
        "Ghana",
        "Gibraltar",
        "Greenland",
        "Gambia",
        "Guinea",
        "Guadeloupe",
        "Equatorial Guinea",
        "Greece",
        "South Georgia and the South Sandwich Islands",
        "Guatemala",
        "Guam",
        "Guinea-Bissau",
        "Guyana",
        "Hong Kong",
        "Heard Island and McDonald Islands",
        "Honduras",
        "Croatia",
        "Haiti",
        "Hungary",
        "Indonesia",
        "Ireland",
        "Israel",
        "Isle of Man",
        "India",
        "British Indian Ocean Territory",
        "Iraq",
        "Iran, Islamic Republic of",
        "Iceland",
        "Italy",
        "Jersey",
        "Jamaica",
        "Jordan",
        "Japan",
        "Kenya",
        "Kyrgyzstan",
        "Cambodia",
        "Kiribati",
        "Comoros",
        "Saint Kitts and Nevis",
        "Korea, Democratic People's Republic of",
        "Korea, Republic of",
        "Kuwait",
        "Cayman Islands",
        "Kazakhstan",
        "Lao People's Democratic Republic",
        "Lebanon",
        "Saint Lucia",
        "Liechtenstein",
        "Sri Lanka",
        "Liberia",
        "Lesotho",
        "Lithuania",
        "Luxembourg",
        "Latvia",
        "Libya",
        "Morocco",
        "Monaco",
        "Moldova, Republic of",
        "Montenegro",
        "Saint Martin (French part)",
        "Madagascar",
        "Marshall Islands",
        "North Macedonia",
        "Mali",
        "Myanmar",
        "Mongolia",
        "Macao",
        "Northern Mariana Islands",
        "Martinique",
        "Mauritania",
        "Montserrat",
        "Malta",
        "Mauritius",
        "Maldives",
        "Malawi",
        "Mexico",
        "Malaysia",
        "Mozambique",
        "Namibia",
        "New Caledonia",
        "Niger",
        "Norfolk Island",
        "Nigeria",
        "Nicaragua",
        "Netherlands",
        "Norway",
        "Nepal",
        "Nauru",
        "Niue",
        "New Zealand",
        "Oman",
        "Panama",
        "Peru",
        "French Polynesia",
        "Papua New Guinea",
        "Philippines",
        "Pakistan",
        "Poland",
        "Saint Pierre and Miquelon",
        "Pitcairn",
        "Puerto Rico",
        "Palestine, State of",
        "Portugal",
        "Palau",
        "Paraguay",
        "Qatar",
        "Réunion",
        "Romania",
        "Serbia",
        "Russian Federation",
        "Rwanda",
        "Saudi Arabia",
        "Solomon Islands",
        "Seychelles",
        "Sudan",
        "Sweden",
        "Singapore",
        "Saint Helena, Ascension and Tristan da Cunha",
        "Slovenia",
        "Svalbard and Jan Mayen",
        "Slovakia",
        "Sierra Leone",
        "San Marino",
        "Senegal",
        "Somalia",
        "Suriname",
        "South Sudan",
        "Sao Tome and Principe",
        "El Salvador",
        "Sint Maarten (Dutch part)",
        "Syrian Arab Republic",
        "Eswatini",
        "Turks and Caicos Islands",
        "Chad",
        "French Southern Territories",
        "Togo",
        "Thailand",
        "Tajikistan",
        "Tokelau",
        "Timor-Leste",
        "Turkmenistan",
        "Tunisia",
        "Tonga",
        "Türkiye",
        "Trinidad and Tobago",
        "Tuvalu",
        "Taiwan, Province of China",
        "Tanzania, United Republic of",
        "Ukraine",
        "Uganda",
        "United States Minor Outlying Islands",
        "United States",
        "Uruguay",
        "Uzbekistan",
        "Holy See (Vatican City State)",
        "Saint Vincent and the Grenadines",
        "Venezuela, Bolivarian Republic of",
        "Virgin Islands, British",
        "Virgin Islands, U.S.",
        "Viet Nam",
        "Vanuatu",
        "Wallis and Futuna",
        "Samoa",
        "Yemen",
        "Mayotte",
        "South Africa",
        "Zambia",
        "Zimbabwe"
      ],
      "prefill": "auto",
      "title": "Search country",
      "type": "string"
    },
    "searchEngine": {
      "default": "auto",
      "description": "Which search engine to use. `Automatic` tries Google first and silently falls back to Bing, then DuckDuckGo when an engine is blocked — recommended.",
      "editor": "select",
      "enum": [
        "auto",
        "google",
        "bing",
        "duckduckgo"
      ],
      "enumTitles": [
        "Automatic (recommended)",
        "Google",
        "Bing",
        "DuckDuckGo"
      ],
      "prefill": "auto",
      "title": "Search engine",
      "type": "string"
    },
    "searchLanguage": {
      "default": "auto",
      "description": "Language for search results. `Automatic` lets each engine choose based on the query.",
      "editor": "select",
      "enum": [
        "auto",
        "en",
        "de",
        "fr",
        "es",
        "it",
        "pt",
        "nl",
        "sv",
        "da",
        "fi",
        "no",
        "pl",
        "cs",
        "sk",
        "hu",
        "ro",
        "bg",
        "el",
        "tr",
        "ru",
        "uk",
        "ar",
        "he",
        "fa",
        "hi",
        "id",
        "ms",
        "th",
        "vi",
        "ja",
        "ko",
        "zh"
      ],
      "enumTitles": [
        "Automatic (match the query language)",
        "English",
        "German",
        "French",
        "Spanish",
        "Italian",
        "Portuguese",
        "Dutch",
        "Swedish",
        "Danish",
        "Finnish",
        "Norwegian",
        "Polish",
        "Czech",
        "Slovak",
        "Hungarian",
        "Romanian",
        "Bulgarian",
        "Greek",
        "Turkish",
        "Russian",
        "Ukrainian",
        "Arabic",
        "Hebrew",
        "Persian",
        "Hindi",
        "Indonesian",
        "Malay",
        "Thai",
        "Vietnamese",
        "Japanese",
        "Korean",
        "Chinese"
      ],
      "prefill": "auto",
      "title": "Search language",
      "type": "string"
    },
    "startUrls": {
      "default": [],
      "description": "Pages to read directly. With `maxCrawlDepth` above 0, the actor walks links found on these pages within the same website instead.",
      "editor": "stringList",
      "prefill": [],
      "title": "Start URLs",
      "type": "array"
    }
  },
  "required": [],
  "schemaVersion": 1,
  "title": "RAG Web Browser Input",
  "type": "object"
}
