{
  "description": "Collect Quora questions, full answers, authors, and topics from URLs or best-effort keyword discovery.",
  "properties": {
    "answerSortOrder": {
      "default": "observed",
      "description": "Keep Quora's observed order, or sort by explicit upvotes or creation time.",
      "editor": "select",
      "enum": [
        "observed",
        "upvotes_desc",
        "newest"
      ],
      "enumTitles": [
        "Observed order",
        "Most upvotes",
        "Newest"
      ],
      "prefill": "observed",
      "title": "Answer Sort Order",
      "type": "string"
    },
    "directUrls": {
      "description": "Paste question, answer, profile, or topic URLs. Language subdomains such as es.quora.com are accepted. Invalid links are reported as status rows.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "https://www.quora.com/What-is-Python-primarily-used-for"
      ],
      "title": "Quora URLs",
      "type": "array"
    },
    "filterAiAnswers": {
      "default": "include",
      "description": "Include all answers, exclude answers explicitly labelled as AI, or keep only those AI-labelled answers.",
      "editor": "select",
      "enum": [
        "include",
        "exclude",
        "only"
      ],
      "enumTitles": [
        "Include all",
        "Exclude AI answers",
        "Only AI answers"
      ],
      "prefill": "include",
      "title": "AI Answers",
      "type": "string"
    },
    "includeAnswerHtml": {
      "default": true,
      "description": "Retain a simple HTML rendering of each answer alongside its plain text.",
      "prefill": false,
      "title": "Include Answer HTML",
      "type": "boolean"
    },
    "includeAnswers": {
      "default": true,
      "description": "Emit answer rows and fetch answers beyond the first visible cards on question pages.",
      "prefill": true,
      "title": "Include Answers",
      "type": "boolean"
    },
    "includeAuthorProfiles": {
      "default": true,
      "description": "Open each discovered author's profile to add followers, following, answer/question counts, views, join date, and credential.",
      "prefill": false,
      "title": "Enrich Authors with Profile Stats",
      "type": "boolean"
    },
    "includeFieldEvidence": {
      "default": true,
      "description": "Add field_sources and fields_present metadata so each value can be traced to the page payload.",
      "prefill": true,
      "title": "Include Field Evidence",
      "type": "boolean"
    },
    "includeMedia": {
      "default": false,
      "description": "Retain image and video links embedded in answer content.",
      "prefill": false,
      "title": "Include Answer Media",
      "type": "boolean"
    },
    "includeOutboundLinks": {
      "default": false,
      "description": "Retain external links embedded in answer content.",
      "prefill": false,
      "title": "Include Outbound Links",
      "type": "boolean"
    },
    "includeProfileSensitiveFields": {
      "default": true,
      "description": "Include location, employment, education, and join date on profile and author rows.",
      "prefill": true,
      "title": "Include Profile Location and Work History",
      "type": "boolean"
    },
    "includeRelatedQuestions": {
      "default": false,
      "description": "Follow the related-question links on each question page and scrape those questions too. This is the reliable discovery path when keyword search is gated.",
      "prefill": false,
      "title": "Discover Related Questions",
      "type": "boolean"
    },
    "includeSocialLinks": {
      "default": true,
      "description": "Include website and social links found on a profile.",
      "prefill": true,
      "title": "Include Social Links",
      "type": "boolean"
    },
    "maxAnswersPerQuestion": {
      "default": 20,
      "description": "Answer cap for each question URL. Zero emits no answers from question pages.",
      "maximum": 500,
      "minimum": 0,
      "prefill": 2,
      "title": "Maximum Answers per Question",
      "type": "integer"
    },
    "maxAuthors": {
      "default": 100,
      "description": "Maximum unique author rows emitted from answer evidence.",
      "maximum": 5000,
      "minimum": 1,
      "prefill": 20,
      "title": "Maximum Authors",
      "type": "integer"
    },
    "maxItems": {
      "default": 200,
      "description": "Hard cap on real data rows across the run. Status and manifest rows do not consume the cap.",
      "maximum": 50000,
      "minimum": 1,
      "prefill": 3,
      "title": "Maximum Total Rows",
      "type": "integer"
    },
    "maxItemsPerSource": {
      "default": 0,
      "description": "Cap real rows emitted from each URL or keyword. Zero means no per-source cap.",
      "maximum": 5000,
      "minimum": 0,
      "prefill": 0,
      "title": "Maximum Rows per Source",
      "type": "integer"
    },
    "maxRelatedQuestions": {
      "default": 15,
      "description": "Related questions retained per question page and used as discovery seeds. Zero keeps all observed related questions.",
      "maximum": 100,
      "minimum": 0,
      "prefill": 0,
      "title": "Maximum Related Questions",
      "type": "integer"
    },
    "minAnswerUpvotes": {
      "default": 0,
      "description": "Drop answers below this upvote count. Answers with no explicit upvote count are excluded when this is above zero.",
      "maximum": 2000000000,
      "minimum": 0,
      "title": "Minimum Answer Upvotes",
      "type": "integer"
    },
    "mode": {
      "default": "urls",
      "description": "What to scrape. `urls` follows pasted Quora links. `search` discovers indexed question links for your keywords and expands related questions. `authors` builds author profiles from pasted profile or question URLs.",
      "editor": "select",
      "enum": [
        "urls",
        "search",
        "authors"
      ],
      "enumTitles": [
        "Questions, answers and topics from URLs",
        "Best-effort keyword discovery + related questions",
        "Author profiles"
      ],
      "prefill": "urls",
      "title": "Mode",
      "type": "string"
    },
    "onlyUnanswered": {
      "default": false,
      "description": "Keep only questions whose explicit answer count is exactly zero. Unknown counts are excluded.",
      "prefill": false,
      "title": "Only Unanswered Questions",
      "type": "boolean"
    },
    "resultTypes": {
      "default": [
        "question",
        "answer"
      ],
      "description": "Which entity rows to emit. Status and run-manifest rows are always written when relevant.",
      "editor": "select",
      "items": {
        "enum": [
          "question",
          "answer",
          "profile",
          "author",
          "topic"
        ],
        "type": "string"
      },
      "prefill": [
        "question",
        "answer"
      ],
      "title": "Result Types",
      "type": "array"
    },
    "searchQueries": {
      "default": [],
      "description": "Best-effort keyword discovery. Quora's own search page is gated for anonymous visitors, so results depend on the public web index; a run with no indexed matches returns a clear status row instead of invented results.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Keywords or Question Titles",
      "type": "array"
    },
    "usernames": {
      "default": [],
      "description": "Quora profile slugs, with or without a leading @ or trailing slash. Converted to profile URLs and merged with Quora URLs.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "title": "Profile Usernames",
      "type": "array"
    }
  },
  "required": [],
  "schemaVersion": 1,
  "title": "Quora Question & Author Scraper Input",
  "type": "object"
}
