Quora Scraper avatar

Quora Scraper

Pricing

from $3.00 / 1,000 quora record scrapeds

Go to Apify Store
Quora Scraper

Quora Scraper

Scrape Quora from a question, profile, space or topic URL, or a keyword, with the target type auto-detected. Export answer text, author, credentials, upvotes, views, dates, and question and profile metadata, with no cookies.

Pricing

from $3.00 / 1,000 quora record scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

What is Quora Scraper?

Quora Scraper turns public Quora question, profile, space and topic URLs into a flat dataset of records. Answer rows return the answer text, author name and profile link, upvotes, views, created and updated dates, and the question each answer belongs to. Content marketers, SEO teams, market researchers and AI agents use it to see what real people ask and answer about a topic, with the target type detected from each URL and no Quora login or cookies.

Why people use this Quora scraper

  • One input for every target. Paste question, /profile/, /q/ space or /topic/ URLs into startUrls; the Actor detects each type.
  • Engagement on every answer. upvotes and views let you rank answers and find the ones readers actually saw.
  • Plain text, ready to read. Quora's rich text is flattened into answerText, so rows drop straight into spreadsheets and LLM prompts.
  • Answer context kept. Each answer row carries questionTitle and questionUrl, plus isMachineAnswer to separate AI-generated answers from human ones.
  • Cost control per URL. maxItemsPerTarget caps records for each target.

Best fit for this Actor

  • Best fit for audience research, FAQ and content planning, and building Q&A corpora from public Quora pages.
  • Designed for URL-driven work: start with the Quora pages you care about and collect their public answers and metadata.
  • Quora groups closely related questions together, so answer rows can point to a sibling question through questionUrl. Group by questionUrl when you want strict per-question sets.
  • For the same research on Reddit threads, continue with Reddit Search Scraper and compare both audiences side by side.

Example workflow: from a question to a content brief

A content marketer at a coding bootcamp starts with three Quora question URLs about learning to program, with maxItemsPerTarget at 50. The dataset returns each answer's answerText, upvotes, views and createdAt. They sort answers by views, read the top ten, then tag recurring advice such as "build small projects" and "pick one language first". They export the table to a spreadsheet and feed the top answers into their brief as the questions the article must answer. A monthly schedule on the same URLs shows which new answers gain traction.

Input

{
"startUrls": [
"https://www.quora.com/What-is-the-best-way-to-learn-programming",
"https://www.quora.com/topic/Computer-Programming"
],
"maxItemsPerTarget": 50,
"maxConcurrency": 5,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
FieldTypeWhat it controls
startUrlsarray of stringsQuora question, profile (/profile/<name>), space (/q/<space>) or topic (/topic/<topic>) URLs. Add at least one.
maxItemsPerTargetintegerRecords to collect per URL, from 1 to 1,000. Default 50.
maxConcurrencyintegerParallel browsers, from 1 to 10. Default 5.
proxyConfigurationobjectApify Proxy settings. Residential proxies give the smoothest access to Quora.

Output

Each row has a type: question, answer, profile or space. Fields appear when Quora shows them on the page.

FieldWhat it contains
type, urlRecord type and its Quora link
questionTitle, questionUrlThe question the record belongs to
answerTextAnswer text as plain text
upvotes, viewsAnswer engagement
createdAt, updatedAtWhen the answer was written and last edited
authorName, authorProfileUrl, authorIsVerifiedAnswer author
isMachineAnswertrue when Quora marks the answer as AI-generated
name, bio, credential, profileImageUrl, isVerified, followerCountProfile fields on profile records
answerCount, topics, askedAt, descriptionQuestion and space metadata when the page shows it
scrapedAtCollection time

Example answer row (author details are illustrative):

{
"type": "answer",
"url": "https://www.quora.com/What-is-the-best-way-to-learn-a-programming-language/answer/Jordan-Lee-12",
"answerText": "Let's unfold the mystery. There are two ways to learn: reading alone, or building small projects while you read...",
"upvotes": 16,
"views": 3382,
"createdAt": "2015-09-29T05:08:24.024Z",
"updatedAt": "2015-09-29T10:32:27.214Z",
"authorName": "Jordan Lee",
"authorProfileUrl": "https://www.quora.com/profile/Jordan-Lee-12",
"authorIsVerified": false,
"isMachineAnswer": false,
"questionTitle": "What is the best way to learn a programming language?",
"questionUrl": "https://www.quora.com/What-is-the-best-way-to-learn-a-programming-language",
"scrapedAt": "2026-10-01T01:31:36.961Z"
}

Each question URL also returns one question row with its questionTitle, url and scrapedAt.

Pricing

This Actor uses Pay per event with Apify platform usage included in the event price. You pay one Quora record scraped event for each record saved and a memory-based Actor Start event at $0.005 per GB of allocated memory (minimum one unit). For example, one question URL with maxItemsPerTarget at 50 is up to 50 record events plus the memory-based startup event. Records beyond your per-target cap are never collected or charged. The live Pricing tab on this page shows the current event prices.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~quora-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls": ["https://www.quora.com/What-is-the-best-way-to-learn-programming"], "maxItemsPerTarget": 20}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("khadinakbar/quora-scraper").call(run_input={
"startUrls": ["https://www.quora.com/What-is-the-best-way-to-learn-programming"],
"maxItemsPerTarget": 20,
})
answers = [r for r in client.dataset(run["defaultDatasetId"]).iterate_items() if r["type"] == "answer"]
print(sorted(answers, key=lambda r: r.get("views") or 0, reverse=True)[:5])

Use with AI agents (MCP)

Connect the Actor to Claude, ChatGPT or Cursor through Apify MCP and ask:

Collect up to 30 answers from this Quora question and summarize the three most-viewed pieces of advice, with links to each answer.

The agent passes the URL in startUrls, sets maxItemsPerTarget to 30, reads the dataset with get-dataset-items, keeps rows where type is answer, and cites each url. Each saved record is one event, so the per-target cap keeps the cost of the request predictable.

Best results

Starting situationHelpful actionExpected outcome
A specific questionPaste its full Quora URLThe question row plus its public answers
A broad themeUse a /topic/ URLQuestions and answers under that topic
Smooth accessSelect residential proxies in proxyConfigurationSteady page loads
Ranking answersSort by views, then upvotesThe answers readers saw most
Human-only researchFilter isMachineAnswer to falseAnswers written by people

Builder's note

I built this around URLs because Quora research usually starts from a page someone already found, and one auto-detecting input keeps that simple. I found that answers are far more useful with their reach attached, so every answer row keeps views and upvotes next to the flattened text.

FAQ

Do I need a Quora account?

No. The Actor reads public Quora pages with no login or cookies.

Why does an answer show a different question URL?

Quora merges and groups similar questions, so an answer can belong to a sibling question. questionUrl always names the question the answer was written for.

How do I control cost?

Set maxItemsPerTarget; it caps the records per URL.

Responsible use

This Actor collects publicly visible Quora content. Answers include author names and profile links, which are personal data under laws such as the GDPR and CCPA, so use them with a lawful basis and respect Quora's terms of service. Quora is a trademark of its owner; this independent Actor is not affiliated with or endorsed by Quora.

Run outcomes

Read OUTPUT and RUN_SUMMARY together with the dataset. COMPLETE and PARTIAL count persisted useful records only. VALID_EMPTY means the upstream page answered successfully without matching records. INVALID_INPUT explains an unusable request. If required upstream requests fail and no useful records are saved, the run fails with UPSTREAM_FAILED. Startup billing still applies to empty and failed runs.