Dataspryva

Quora Question, Answer & Profile Search Scraper

Search Quora by keyword or scrape question, answer, profile, topic, Space, and post URLs directly, and get the text, author details, and engagement counts of each visibly accessible page, with clear status rows for anything blocked.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringoptionalSearch discovers questions through the DuckDuckGo index and Quora related questions. URLs is deterministic and does not depend on search.
searchQueriesarrayoptionalTwo to four word phrases work best. Each query finds at most a couple of question seeds, then related questions expand the result.
searchTargetstringoptionalChoose whether keyword discovery looks for question pages, profile pages, or both. Profile search is best-effort because search engines index few Quora profiles.
Show all input fields
FieldTypeRequiredDescription
modestringoptionalSearch discovers questions through the DuckDuckGo index and Quora related questions. URLs is deterministic and does not depend on search.
searchQueriesarrayoptionalTwo to four word phrases work best. Each query finds at most a couple of question seeds, then related questions expand the result.
searchTargetstringoptionalChoose whether keyword discovery looks for question pages, profile pages, or both. Profile search is best-effort because search engines index few Quora profiles.
directUrlsarrayoptionalQuestion, answer, profile, or topic URLs. Language subdomains are accepted. Comma-separated or one URL per line.
usernamesarrayoptionalQuora profile usernames or slugs, with or without @ or a trailing slash. Each is normalised to a profile URL.
resultTypesarrayoptionalWhich rows to save. Status and run-manifest rows are always emitted so blocked or empty sources stay visible.
includeAnswersbooleanoptionalExpand question pages into answer rows. Turn off to keep question rows only.
maxAnswersPerQuestionintegeroptionalAnswers to collect from each question, including the 3-5 already visible on the page. Zero means no answers.
expandRelatedQuestionsbooleanoptionalOpen related questions linked from each question page. Quora exposes up to 70, which is how keyword search reaches more than its first result.
maxRelatedQuestionsPerSeedintegeroptionalHow many related questions to open from each question page. Zero lists the links without opening them.
maxQuestionsPerQueryintegeroptionalHard cap on question rows for each search query, including seed and related questions.
includeAuthorProfilesbooleanoptionalOpen 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.
maxAuthorsintegeroptionalMaximum unique author rows to emit when author is included in Result Types.
minAnswerUpvotesintegeroptionalKeep only answers with an explicit upvote count at or above this value. Answers with unknown upvotes are excluded when this is positive.
filterAiAnswersstringoptionalInclude all answers, drop answers Quora explicitly labels as AI, or keep only those labelled answers.
answerSortOrderstringoptionalKeep Quora's order, sort by explicit upvotes, or sort by the answer creation timestamp.
onlyUnansweredbooleanoptionalKeep only questions whose visible answer count is exactly zero. Questions with an unknown count are excluded.
includeProfileSensitiveFieldsbooleanoptionalInclude location, employment, education, and join date on profile and author rows when Quora shows them.
includeSocialLinksbooleanoptionalInclude website and social links from a profile's public bio when present.
includeAnswerHtmlbooleanoptionalInclude a rendered HTML version of each answer beside its plain text. Turn off to reduce dataset size.
maxItemsintegeroptionalMaximum question, answer, profile, author, topic, and search-result rows across the run. Status and manifest rows do not count.
includeFieldEvidencebooleanoptionalInclude field_sources and fields_present provenance maps on each row.

Download the published input schema

View complete JSON
{
  "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"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
resultsstringoptionalDataset containing question, answer, profile, author, topic, search_result, status, and run_manifest rows.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Quora questions, full answers, profiles, authors, topics, search-result cards, access-status rows, and a run manifest.",
  "properties": {
    "results": {
      "description": "Dataset containing question, answer, profile, author, topic, search_result, status, and run_manifest rows.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Quora rows",
      "type": "string"
    }
  },
  "title": "Quora Question, Answer & Profile Search Scraper Output",
  "type": "object"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "title": "Quora data",
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Quora rows",
      "transformation": {
        "fields": [
          "content_type",
          "title",
          "url",
          "question_id",
          "answer_id",
          "author_name",
          "upvotes",
          "view_count",
          "comments_count",
          "created_at",
          "follower_count",
          "answer_count",
          "search_rank",
          "search_result_type",
          "discovery_source",
          "source_query",
          "access_state",
          "source_url"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Quora Question, Answer & Profile Search Scraper

Find Quora questions by keyword, then export full answers, author profiles, and engagement data. You can also paste question, answer, profile, or topic URLs for a deterministic export that does not depend on search.

How discovery works

Quora's own keyword search is login-gated, so this actor uses a public search index in front of Quora:

  1. Index discovery finds Quora question or profile pages for your keywords.
  2. A relevance check drops index hits whose title does not share a meaningful word with your query.
  3. Related-question expansion opens the related questions Quora links from each question page. Quora exposes up to 70 per question, which is how one index result becomes a useful set.
  4. Page hydration reads the public question, answer, profile, or topic page and builds the rows.

Search is best-effort: some narrow or unusual queries return no usable Quora question, and the run says so with a status row. A run that produces no real rows fails with a clear message instead of reporting success. Direct URLs and usernames always work without search.

Modes

  • Search by keyword — one or more phrases; questions, answers, and optional profile/author rows.
  • Scrape direct URLs — question, answer, profile, or topic URLs, including language subdomains.
  • Discover authors — collect answer authors from URLs or search results and enrich their public profiles.

What each row contains

  • Question — title, URL, question ID, topics, follower count, answer count, related questions, discovery query, and parent question when reached through expansion.
  • Answer — full text (and optional HTML), answer URL and ID, upvotes, views, comments count, shares count, exact ISO creation time, AI label, related-answer provenance, and author details.
  • Profile / author — name, profile URL, bio, credential, verified flag, followers, following, answer and question counts, content views, join date, location, employment, education, topics, and answer evidence.
  • Topic — name, URL, topic ID, and follower count.
  • Search result — an index card that matched the query: title, snippet when meaningful, URL, rank, type, and source.
  • Status — a typed row when a page is blocked, removed, not found, or a query has no usable result.
  • Run manifest — counts, discovery sources, proxy path, and per-input accounting.

Empty fields are omitted, never filled with null or placeholder values.

Input reference

Field Type Default What it does
mode select search Search, direct URLs, or author discovery.
searchQueries array [] Keyword phrases used by search and author modes.
searchTarget select questions Look for questions, profiles, or both.
directUrls array [] Question, answer, profile, or topic URLs.
usernames array [] Profile usernames or slugs.
resultTypes array ["question","answer","search_result"] Rows to save.
includeAnswers boolean true Expand questions into answer rows.
maxAnswersPerQuestion integer 20 Answers per question, including visible ones.
expandRelatedQuestions boolean true Open related questions from each question page.
maxRelatedQuestionsPerSeed integer 20 Related questions to open per seed.
maxQuestionsPerQuery integer 50 Question-row cap per search query.
includeAuthorProfiles boolean true Enrich author rows with profile statistics.
maxAuthors integer 100 Maximum author rows.
minAnswerUpvotes integer 0 Minimum explicit upvote count.
filterAiAnswers select include Include, exclude, or keep only AI-labelled answers.
answerSortOrder select observed Quora order, most upvoted, or newest.
onlyUnanswered boolean false Keep only questions with an explicit zero answer count.
includeProfileSensitiveFields boolean true Include location, employment, education, and join date.
includeSocialLinks boolean true Include website and social links.
includeAnswerHtml boolean true Add rendered answer HTML beside plain text.
maxItems integer 200 Maximum real rows; status and manifest do not count.
includeFieldEvidence boolean true Include field provenance maps.

Example inputs

Search questions and answers:

{
  "mode": "search",
  "searchQueries": ["best productivity apps", "healthy meal prep"],
  "searchTarget": "questions",
  "expandRelatedQuestions": true,
  "maxRelatedQuestionsPerSeed": 20,
  "maxQuestionsPerQuery": 30,
  "maxAnswersPerQuestion": 5,
  "maxItems": 100
}

Scrape a specific question:

{
  "mode": "urls",
  "directUrls": ["https://www.quora.com/What-is-Python-primarily-used-for"],
  "resultTypes": ["question", "answer"],
  "maxAnswersPerQuestion": 20
}

Find profiles by keyword:

{
  "mode": "search",
  "searchQueries": ["Naval Ravikant", "Sam Altman"],
  "searchTarget": "profiles",
  "resultTypes": ["profile", "author"],
  "maxItems": 20
}

Use cases

  • Content and market research on public discussions
  • Building a question/answer corpus for analysis
  • Finding subject-matter authors and their public statistics
  • Monitoring how a topic's questions and answers change over time

FAQ

Do I need to log in or provide cookies? No. The actor never asks for cookies and only reads public pages.

Why does a keyword search sometimes return a status row instead of questions? The public index may have no relevant Quora question for that phrase, or its first hit may be unrelated. The actor refuses to hydrate an off-topic seed and reports the query instead of returning random questions.

Why is native Quora search not used? Quora's /search?q= page is login-gated for anonymous visitors and is disallowed by Quora's robots rules. The actor uses a public index and related questions instead.

How many questions can one keyword produce? One index hit can expand to up to 70 related questions, bounded by Maximum Questions per Query. A query with no usable index hit produces none.

Why is profile search less complete than question search? Search engines index far fewer Quora profiles than questions. Direct usernames and profile URLs are exact; keyword profile search is best-effort.

Why are some profile fields missing? Quora only shows location, employment, education, and credentials on some profiles. Missing values are omitted rather than guessed.

Can I get comments? Comment bodies are not part of the public server-rendered page. Answer rows include the comment count, not the comment text.

Can I get a question's creation date or exact view count? Those values appear only on a Quora log page that its robots rules disallow, so the actor does not fetch it. Answer creation times are exact.

Does the actor use a proxy? It connects automatically and falls back to Apify Proxy only when Quora blocks the direct connection. There is no proxy field to configure.

Is this affiliated with Quora? No. This is an independent, third-party actor that reads publicly visible pages. Users are responsible for how they use the data.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build 4Ofo0BFs3PM3I87Iz. Documentation is regenerated from the default published build; private drafts are not included.