{
  "description": "Search Quora through a public index, expand related questions, and export question, answer, profile, author, and topic rows. Direct URLs and usernames work without search.",
  "properties": {
    "answerSortOrder": {
      "default": "observed",
      "description": "Keep Quora's order, sort by explicit upvotes, or sort by the answer creation timestamp.",
      "editor": "select",
      "enum": [
        "observed",
        "upvotes_desc",
        "newest"
      ],
      "enumTitles": [
        "Quora order",
        "Most upvoted",
        "Newest"
      ],
      "prefill": "observed",
      "title": "Answer Order",
      "type": "string"
    },
    "directUrls": {
      "default": [],
      "description": "Question, answer, profile, or topic URLs. Language subdomains are accepted. Comma-separated or one URL per line.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "https://www.quora.com/What-is-Python-primarily-used-for"
      ],
      "title": "Direct Quora URLs",
      "type": "array"
    },
    "expandRelatedQuestions": {
      "default": true,
      "description": "Open related questions linked from each question page. Quora exposes up to 70, which is how keyword search reaches more than its first result.",
      "editor": "checkbox",
      "prefill": false,
      "title": "Expand Related Questions",
      "type": "boolean"
    },
    "filterAiAnswers": {
      "default": "include",
      "description": "Include all answers, drop answers Quora explicitly labels as AI, or keep only those labelled answers.",
      "editor": "select",
      "enum": [
        "include",
        "exclude",
        "only"
      ],
      "enumTitles": [
        "Include all answers",
        "Exclude AI answers",
        "Only AI answers"
      ],
      "prefill": "include",
      "title": "AI Answers",
      "type": "string"
    },
    "includeAnswerHtml": {
      "default": true,
      "description": "Include a rendered HTML version of each answer beside its plain text. Turn off to reduce dataset size.",
      "editor": "checkbox",
      "prefill": false,
      "title": "Include Answer HTML",
      "type": "boolean"
    },
    "includeAnswers": {
      "default": true,
      "description": "Expand question pages into answer rows. Turn off to keep question rows only.",
      "editor": "checkbox",
      "prefill": true,
      "title": "Include Answers",
      "type": "boolean"
    },
    "includeAuthorProfiles": {
      "default": true,
      "description": "Open each discovered author's profile to add follower, answer, question, view, and join-date fields. Turn off to keep author rows from answer evidence only.",
      "editor": "checkbox",
      "prefill": true,
      "title": "Enrich Authors with Profiles",
      "type": "boolean"
    },
    "includeFieldEvidence": {
      "default": true,
      "description": "Include field_sources and fields_present provenance maps on each row.",
      "editor": "checkbox",
      "prefill": true,
      "title": "Include Field Evidence",
      "type": "boolean"
    },
    "includeProfileSensitiveFields": {
      "default": true,
      "description": "Include location, employment, education, and join date on profile and author rows when Quora shows them.",
      "editor": "checkbox",
      "prefill": true,
      "title": "Include Profile Details",
      "type": "boolean"
    },
    "includeSocialLinks": {
      "default": true,
      "description": "Include website and social links from a profile's public bio when present.",
      "editor": "checkbox",
      "prefill": true,
      "title": "Include Social Links",
      "type": "boolean"
    },
    "maxAnswersPerQuestion": {
      "default": 20,
      "description": "Answers to collect from each question, including the 3-5 already visible on the page. Zero means no answers.",
      "maximum": 500,
      "minimum": 0,
      "prefill": 2,
      "title": "Maximum Answers per Question",
      "type": "integer"
    },
    "maxAuthors": {
      "default": 100,
      "description": "Maximum unique author rows to emit when author is included in Result Types.",
      "maximum": 5000,
      "minimum": 1,
      "prefill": 1,
      "title": "Maximum Authors",
      "type": "integer"
    },
    "maxItems": {
      "default": 200,
      "description": "Maximum question, answer, profile, author, topic, and search-result rows across the run. Status and manifest rows do not count.",
      "maximum": 50000,
      "minimum": 1,
      "prefill": 3,
      "title": "Maximum Rows",
      "type": "integer"
    },
    "maxQuestionsPerQuery": {
      "default": 50,
      "description": "Hard cap on question rows for each search query, including seed and related questions.",
      "maximum": 500,
      "minimum": 1,
      "prefill": 1,
      "title": "Maximum Questions per Query",
      "type": "integer"
    },
    "maxRelatedQuestionsPerSeed": {
      "default": 20,
      "description": "How many related questions to open from each question page. Zero lists the links without opening them.",
      "maximum": 70,
      "minimum": 0,
      "prefill": 0,
      "title": "Related Questions per Seed",
      "type": "integer"
    },
    "minAnswerUpvotes": {
      "default": 0,
      "description": "Keep only answers with an explicit upvote count at or above this value. Answers with unknown upvotes are excluded when this is positive.",
      "maximum": 2000000000,
      "minimum": 0,
      "prefill": 0,
      "title": "Minimum Answer Upvotes",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "Search discovers questions through the DuckDuckGo index and Quora related questions. URLs is deterministic and does not depend on search.",
      "editor": "select",
      "enum": [
        "search",
        "urls",
        "authors"
      ],
      "enumTitles": [
        "Search by keyword",
        "Scrape direct URLs",
        "Discover authors"
      ],
      "prefill": "urls",
      "title": "Mode",
      "type": "string"
    },
    "onlyUnanswered": {
      "default": false,
      "description": "Keep only questions whose visible answer count is exactly zero. Questions with an unknown count are excluded.",
      "editor": "checkbox",
      "prefill": false,
      "title": "Only Unanswered Questions",
      "type": "boolean"
    },
    "resultTypes": {
      "default": [
        "question",
        "answer",
        "search_result"
      ],
      "description": "Which rows to save. Status and run-manifest rows are always emitted so blocked or empty sources stay visible.",
      "editor": "select",
      "items": {
        "enum": [
          "question",
          "answer",
          "profile",
          "author",
          "topic",
          "search_result"
        ],
        "type": "string"
      },
      "prefill": [
        "question",
        "answer"
      ],
      "title": "Result Types",
      "type": "array"
    },
    "searchQueries": {
      "default": [],
      "description": "Two to four word phrases work best. Each query finds at most a couple of question seeds, then related questions expand the result.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Search Keywords",
      "type": "array"
    },
    "searchTarget": {
      "default": "questions",
      "description": "Choose whether keyword discovery looks for question pages, profile pages, or both. Profile search is best-effort because search engines index few Quora profiles.",
      "editor": "select",
      "enum": [
        "questions",
        "profiles",
        "both"
      ],
      "enumTitles": [
        "Questions",
        "Profiles",
        "Questions and profiles"
      ],
      "prefill": "questions",
      "title": "Search Target",
      "type": "string"
    },
    "usernames": {
      "default": [],
      "description": "Quora profile usernames or slugs, with or without @ or a trailing slash. Each is normalised to a profile URL.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Profile Usernames",
      "type": "array"
    }
  },
  "required": [],
  "schemaVersion": 1,
  "title": "Quora Search Scraper Input",
  "type": "object"
}
