# Quora Scraper - Answers, Upvotes & Author Credentials (`parseforge/quora-scraper`) Actor

Scrape Quora answers from question, topic or profile URLs: full text, author credentials, upvotes, views, shares, comments and dates. No login. No keyword search. Export CSV, Excel, JSON or XML.

- **URL**: https://apify.com/parseforge/quora-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Social media, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 quora answers

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v3.webp)

## ❓ Quora Scraper

> 🚀 **Export Quora answers in seconds.** Paste question, topic or profile URLs and get one row per answer: full text, author credential, upvotes, views, shares, comments, dates and the question's followers and topics. No Quora login.

Quora has no public API. This Actor opens a real browser session once to pass Quora's Cloudflare gate, then reads the same public pages and answer feeds the website uses, and hands back one fixed schema you can load anywhere. In our last cloud test, 20 answers from one question came back in about 70 seconds, and a 424-answer question gave 200 answers in 83 seconds.

> ⚠️ **No keyword search.** Quora shows a login form to anonymous visitors on its search page, so this Actor cannot search by keyword. It takes question, topic and profile URLs. Use `relatedDepth` to widen a run from a few seed questions. Spaces are not supported.

| 🎯 Target Audience | 💡 Primary Use Cases |
| --- | --- |
| Market researchers | What people ask and how experts answer in a niche, with upvotes as the signal |
| Content and SEO teams | Real questions, top answers and related questions for articles and FAQs |
| Data scientists and AI teams | Question and answer pairs with full text for RAG, fine-tuning and evaluation |
| Lead generation | Authors with credentials who answer in your field, with their profile links |
| Brand and community teams | Which answers about your product get the views and the upvotes |

### 📋 What the Quora Scraper does

> 💡 **Why it matters:** upvotes and views tell you which answers people trust. This Actor puts the text and the numbers in one flat table.

- 📝 Full answer text as plain text, plus images, links and embedded videos as separate fields.
- 👤 Author name, profile URL, photo, credential line and verified flag, plus the author's total answers and views when Quora shows them.
- 📊 Upvotes, views, shares and comments on every answer.
- 📅 Publish time and last edit time.
- ❓ Question title, URL, ID, answer counts, followers, comments and topic tags.
- 🔀 Merged questions: Quora folds duplicate questions together, so a question page also lists answers written for the merged ones. Each row says so (`fromMergedQuestion`) and links the original question.
- 🌍 Language sites such as `es.quora.com` and `fr.quora.com` work the same way.
- 🎚 Filters: minimum upvotes, answers per URL, only answers written for the exact question, and related-question depth.

### 🎬 Full Demo

🚧 Coming soon.

### 📊 Output

Each row is one answer, with 36 columns.

| Field | Meaning |
| --- | --- |
| 🖼 `imageUrl` | Author photo, or Quora's default avatar |
| ❓ `questionTitle` / `questionUrl` / `questionId` | The question |
| 🔗 `answerUrl` / `answerId` / `answerRank` | The answer and its rank on the page |
| 👤 `authorName` / `authorUrl` / `authorImageUrl` / `authorCredential` / `authorVerified` | The author |
| 📈 `authorAnswerCount` / `authorTotalViews` | Author totals, when Quora shows them |
| 📝 `answerText` | Full answer text |
| 👍 `upvotes` / `shares` / `comments` / `views` | Engagement |
| 📅 `publishedAt` / `updatedAt` | Publish and last edit time (ISO 8601) |
| 🖼 `images` / `links` / `embeds` | Media in the answer |
| ✅ `fullAnswer` | `No` when Quora shows visitors only a preview |
| 🔀 `fromMergedQuestion` / `originalQuestionUrl` | Answer written for a merged duplicate question |
| 🔢 `questionAnswerCount` / `questionAllAnswersCount` / `questionFollowers` / `questionComments` | Question counts |
| 🏷 `questionTopics` | Topic tags with URLs |
| 🧭 `sourceType` / `sourceUrl` | Which input URL the row came from |
| 🕐 `scrapedAt` / ⚠️ `error` | Scrape time and error message, if any |

Three real records from a run (long values shortened):

```json
{
  "imageUrl": "https://qsf.cf2.quoracdn.net/-4-images.new_grid.profile_default_anonym...",
  "questionTitle": "What is the best way to learn programming?",
  "questionUrl": "https://www.quora.com/What-is-the-best-way-to-learn-programming",
  "answerUrl": "https://www.quora.com/What-is-the-best-way-to-learn-a-programming-language/answers/3429743",
  "answerId": 3429743,
  "questionId": 155255,
  "answerRank": 1,
  "authorName": "Anonymous",
  "authorUrl": "N/A",
  "authorImageUrl": "https://qsf.cf2.quoracdn.net/-4-images.new_grid.profile_default_anonym...",
  "authorCredential": "Not Disclosed",
  "authorVerified": "No",
  "authorAnswerCount": "N/A",
  "authorTotalViews": "N/A",
  "answerText": "1. Dive right in, ignore all anxiety. I cannot emphasis how much time is killed by anxiety. Do not look for a light at the end of the tunnel, there isn't one. J...",
  "upvotes": 11,
  "shares": 0,
  "comments": 1,
  "views": 4040,
  "publishedAt": "2013-10-31T05:20:59.693Z",
  "updatedAt": "2013-10-31T05:34:32.891Z",
  "images": [],
  "links": [],
  "embeds": [],
  "fullAnswer": "Yes",
  "fromMergedQuestion": "Yes",
  "originalQuestionUrl": "https://www.quora.com/What-is-the-best-way-to-learn-a-programming-language",
  "questionAnswerCount": 39,
  "questionAllAnswersCount": 83,
  "questionFollowers": 109,
  "questionComments": 1,
  "questionTopics": [
    {
      "name": "Programming Languages",
      "url": "https://www.quora.com/topic/Programming-Languages"
    },
    {
      "name": "Computer Programming",
      "url": "https://www.quora.com/topic/Computer-Programming"
    }
  ],
  "sourceType": "question",
  "sourceUrl": "https://www.quora.com/What-is-the-best-way-to-learn-programming",
  "scrapedAt": "2026-10-23T22:03:01.258Z",
  "error": null
}
```

```json
{
  "imageUrl": "https://qph.cf2.quoracdn.net/main-thumb-134242433-200-epmrvndcjwtniwzz...",
  "questionTitle": "What is the best way to learn programming?",
  "questionUrl": "https://www.quora.com/What-is-the-best-way-to-learn-programming",
  "answerUrl": "https://www.quora.com/Which-is-the-best-way-to-learn-computer-programming/answer/Ravi-Bhavnani",
  "answerId": 70501259,
  "questionId": 155255,
  "answerRank": 2,
  "authorName": "Ravi Bhavnani",
  "authorUrl": "https://www.quora.com/profile/Ravi-Bhavnani",
  "authorImageUrl": "https://qph.cf2.quoracdn.net/main-thumb-134242433-200-epmrvndcjwtniwzz...",
  "authorCredential": "M.S. (Summa Cum Laude) Computer Science",
  "authorVerified": "No",
  "authorAnswerCount": 1970,
  "authorTotalViews": 1849760,
  "answerText": "First of all, I’d like to point out that by “programming” you probably mean “software engineering” - i.e. the science of building software applications. Persons...",
  "upvotes": 9,
  "shares": 0,
  "comments": 0,
  "views": 2752,
  "publishedAt": "2018-01-21T19:20:58.357Z",
  "updatedAt": "N/A",
  "images": [],
  "links": [],
  "embeds": [],
  "fullAnswer": "Yes",
  "fromMergedQuestion": "Yes",
  "originalQuestionUrl": "https://www.quora.com/Which-is-the-best-way-to-learn-computer-programming",
  "questionAnswerCount": 39,
  "questionAllAnswersCount": 83,
  "questionFollowers": 109,
  "questionComments": 1,
  "questionTopics": [
    {
      "name": "Programming Languages",
      "url": "https://www.quora.com/topic/Programming-Languages"
    },
    {
      "name": "Computer Programming",
      "url": "https://www.quora.com/topic/Computer-Programming"
    }
  ],
  "sourceType": "question",
  "sourceUrl": "https://www.quora.com/What-is-the-best-way-to-learn-programming",
  "scrapedAt": "2026-10-23T22:03:01.258Z",
  "error": null
}
```

```json
{
  "imageUrl": "https://qph.cf2.quoracdn.net/main-thumb-386-200-7hxhOQ44saVQzHRD27MVRL...",
  "questionTitle": "What is the best way to learn programming?",
  "questionUrl": "https://www.quora.com/What-is-the-best-way-to-learn-programming",
  "answerUrl": "https://www.quora.com/What-is-the-best-way-to-learn-computer-programming/answer/Yishan-Wong",
  "answerId": 1263356,
  "questionId": 155255,
  "answerRank": 16,
  "authorName": "Yishan Wong",
  "authorUrl": "https://www.quora.com/profile/Yishan-Wong",
  "authorImageUrl": "https://qph.cf2.quoracdn.net/main-thumb-386-200-7hxhOQ44saVQzHRD27MVRL...",
  "authorCredential": "worked at Facebook",
  "authorVerified": "Yes",
  "authorAnswerCount": 1642,
  "authorTotalViews": 31411086,
  "answerText": "By writing a lot of programs.\nThere are all sorts of specific things you can do, but the most important thing is to just try and write a lot of programs.  You d...",
  "upvotes": 401,
  "shares": 0,
  "comments": 17,
  "views": 43071,
  "publishedAt": "2012-06-03T04:39:40.699Z",
  "updatedAt": "N/A",
  "images": [],
  "links": [],
  "embeds": [],
  "fullAnswer": "Yes",
  "fromMergedQuestion": "Yes",
  "originalQuestionUrl": "https://www.quora.com/What-is-the-best-way-to-learn-computer-programming",
  "questionAnswerCount": 39,
  "questionAllAnswersCount": 83,
  "questionFollowers": 109,
  "questionComments": 1,
  "questionTopics": [
    {
      "name": "Programming Languages",
      "url": "https://www.quora.com/topic/Programming-Languages"
    },
    {
      "name": "Computer Programming",
      "url": "https://www.quora.com/topic/Computer-Programming"
    }
  ],
  "sourceType": "question",
  "sourceUrl": "https://www.quora.com/What-is-the-best-way-to-learn-programming",
  "scrapedAt": "2026-10-23T22:03:04.180Z",
  "error": null
}
```

Missing values say `N/A` or `Not Disclosed`, never a silent empty cell. A row that could not be read carries only a source URL and an `error` message and is never charged.

### ✨ Why choose this Actor

- **No ceiling on questions.** A question's answers are paged until they run out. In our test, 399 answers came back from one question across 40 pages with no block.
- **Fast after the first step.** One browser step opens the session, then every page is plain HTTP.
- **Filters that cut noise.** Minimum upvotes, answers per URL and only exact-question answers. Filtered rows are not billed.
- **Honest about previews.** A few answers are shown to visitors only as a preview. They are still delivered, marked `fullAnswer: No`.
- **Every field filled or labeled.** No silent empty cells.

### 📈 How it compares to alternatives

| | This Actor | Typical Quora scraper |
| --- | --- | --- |
| One row per answer with upvotes, views, shares, comments | ✅ | Upvotes and comments |
| Author credential and totals | ✅ | Credential |
| Question followers, answer count, topics | ✅ | Followers and answer count |
| Keyword search | ❌ Quora search needs a login | Some claim it |
| Follows related questions | ✅ | Rarely |
| Min upvotes and exact-question filters | ✅ | Rarely |

Be aware of the ceilings. Quora shows a visitor about 30 answers per topic page and per profile before its sign-in wall, so those two give a sample. Question pages have no such wall.

### 🚀 How to use

1. Create a free Apify account. New accounts get $5 in free credit: [sign up here](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the Quora Scraper and click **Try for free**.
3. Paste one or many question, topic or profile URLs.
4. Set **Max Items** and any filters.
5. Click **Start** and watch the run log.
6. Open the **Storage** tab and download CSV, Excel, JSON or XML, or read the rows through the Apify API.

Input examples:

```json
{ "startUrls": [{ "url": "https://www.quora.com/What-is-the-best-way-to-learn-programming" }], "minUpvotes": 10, "maxItems": 100 }
```

```json
{ "startUrls": [{ "url": "https://www.quora.com/What-is-the-best-way-to-learn-programming" }], "relatedDepth": 1, "maxAnswersPerUrl": 5, "maxItems": 40 }
```

Free Apify plans return up to 10 rows as a preview.

### 💼 Business use cases

#### Niche research

Paste the ten questions your audience asks most, sort the dataset by upvotes and views, and read the answers that won.

#### Q\&A datasets

Collect hundreds of answers per question with full text, credentials and dates for retrieval, training and benchmarking.

#### Widening a run from a few seeds

Quora search needs a login, so set `relatedDepth` to follow the related questions Quora lists next to each question, one to three levels out.

#### Finding experts

Read a topic or a profile to see who answers, what credential they list and how many views their answers earn.

### 🔌 Automating Quora Scraper

- **Make and Zapier**: run the Actor on a schedule and push new top answers into a sheet.
- **Slack**: post an alert when a tracked question gets a new answer.
- **Airbyte**: sync answers into a warehouse and join them on `questionId`.
- **GitHub Actions**: run weekly and commit the CSV so a change history builds itself.
- **Google Drive**: drop each export into a shared folder for the content team.
- **Apify Scheduler**: run daily, weekly or hourly with no external tooling.

### 🌟 Beyond business use cases

- **Research**: study how experts and amateurs answer the same question.
- **Personal**: collect the best answers on a topic you are learning.
- **Non-profit**: gather community questions about a cause to plan an FAQ.
- **Experimentation**: build a question and answer corpus for evaluation.

### 🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant:

> I am using the Quora Scraper on Apify. It returns one row per answer with questionTitle, answerText, authorName, authorCredential, upvotes, views, shares, comments, publishedAt and questionTopics. Help me design an analysis that finds which credentials earn the most views on questions in one topic.

### ❓ Frequently Asked Questions

#### 🔑 Do I need a Quora account or cookies?

No. The Actor reads only what a logged-out visitor can see.

#### 🔎 Can I search Quora by keyword?

No. Quora search results need a login. Use question, topic or profile URLs, and `relatedDepth` to widen a run. A search URL returns an error row.

#### 📚 How many answers can I get from one question?

All of them. We collected 399 from one question with no block.

#### 🧵 And from a topic or a profile?

About 30 answers each, where Quora's sign-in wall starts. The run says so in its log and keeps what it collected.

#### 🌍 Do other language sites work?

Yes, for example `es.quora.com` and `fr.quora.com`.

#### 🪐 Are Quora Spaces supported?

Not yet.

#### 🛡 Does it need residential proxies?

Yes. Quora's Cloudflare gate refuses datacenter connections. The default input already uses residential proxies in the US.

#### 🐢 Why is the run slow to start?

The first step opens a browser to pass Quora's gate and can take 15 to 60 seconds, sometimes with several tries on different connections. After that the rows stream quickly.

#### 🔀 Why does a question return answers for other questions?

Quora merges duplicate questions, and its question page lists answers written for the merged ones. Turn on `onlyOwnAnswers` to keep only answers written for the exact question you pasted.

#### ❔ Why is a field N/A?

Topic and profile feeds carry less question context than a question page, so question followers, topics and totals read `N/A` there. Author totals are also shown only for some authors.

#### 💵 How is it billed?

Pay per event: a small start fee per GB of run memory plus one event per answer written. Filtered, duplicate and error rows are free. Current prices are on the Actor's Pricing tab.

### 🔌 Integrate with any app

Every run writes to an Apify dataset you can read over the REST API, stream into a webhook, or export as CSV, Excel, JSON or XML. Apify's integrations cover Make, Zapier, Airbyte, Slack, Google Drive, GitHub, Google Sheets and plain HTTP webhooks, so the rows land wherever your team already works.

### 🔗 Recommended Actors

- [Reddit Posts Scraper](https://apify.com/parseforge/reddit-posts-scraper) for posts, communities and users from Reddit.
- [Google Search Scraper](https://apify.com/parseforge/google-search-scraper) for Google results and AI Overviews.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more scrapers.

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** This is an independent tool and is not affiliated with, endorsed by, or connected to Quora, Inc. It collects only publicly available data. You are responsible for using it in line with Quora's terms and applicable laws, including GDPR, CCPA and PIPL. Do not use it to identify, profile or target individuals.

# Actor input Schema

## `startUrls` (type: `array`):

Question pages (https://www.quora.com/What-is-the-best-way-to-learn-programming), topic pages (https://www.quora.com/topic/Python-programming-language-1) and profile pages (https://www.quora.com/profile/Dhruv-Aggarwal-31). Language sites such as es.quora.com or fr.quora.com work too. Quora search pages need a login and are not supported.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `maxAnswersPerUrl` (type: `integer`):

Stop each URL after this many answers, so one long question does not use the whole budget. Leave empty for no per-URL limit.

## `minUpvotes` (type: `integer`):

Keep only answers with at least this many upvotes. Filtered answers are not billed.

## `onlyOwnAnswers` (type: `boolean`):

Quora merges near-duplicate questions, so a question page also lists answers written for the merged ones (the rows say fromMergedQuestion = Yes). Turn this on to keep only answers written for the question you pasted. Applies to question URLs.

## `relatedDepth` (type: `integer`):

0 reads only the questions you paste. 1 also reads the related questions Quora lists next to each one, 2 goes one level further, up to 3. Related questions count toward Max Items.

## `proxyConfiguration` (type: `object`):

Residential proxies (US) are required: datacenter exits are always refused by Quora's Cloudflare gate.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.quora.com/What-is-the-best-way-to-learn-programming"
    }
  ],
  "maxItems": 10,
  "minUpvotes": 0,
  "onlyOwnAnswers": false,
  "relatedDepth": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields

## `fullData` (type: `string`):

Complete dataset with all 36 fields

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.quora.com/What-is-the-best-way-to-learn-programming"
        }
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/quora-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.quora.com/What-is-the-best-way-to-learn-programming" }],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/quora-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.quora.com/What-is-the-best-way-to-learn-programming"
    }
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call parseforge/quora-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/quora-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/EhFSaIZO1O0voEnhF/builds/HW8smbiKshtRA50TG/openapi.json
