# Quora Scraper — Questions, Answers & Topics by Search or URL (`memo23/quora-scraper-ppe`) Actor

Quora scraper for search queries, topic pages and question URLs. Returns questions with answer counts, creation dates and IDs, plus full answer text with author and engagement. Optional cookies unlock extra results. From $0.004 per row — 10× under the $0.05 competition. JSON/CSV.

- **URL**: https://apify.com/memo23/quora-scraper-ppe.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Social media, AI, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Quora Scraper — Questions, Answers, Spaces & Search

### Overview

Uncover valuable insights and expert opinions across a wide range of topics. This Quora scraper extracts questions, full answers, Space posts and engagement metrics, giving you a comprehensive view of discussions on the platform.

**No login required for URL scraping.** Question pages and Space posts are scraped fully logged-out — paste a URL and go. Cookies are only needed if you want *keyword search* (Quora hides search results from logged-out visitors).

### What you can scrape

| Input | Cookies needed? | What you get |
| --- | --- | --- |
| **Question URL** — `quora.com/How-do-black-holes-form` | ❌ No | Every answer: full text, view count, upvotes, comments, author, credential, timestamps |
| **Space post URL** — `humanity.quora.com/…` | ❌ No | Post body, title, images, views, upvotes, shares, comments, author, owning Space |
| **Keyword search** — `searchQueries: ["machine learning"]` | ✅ Yes | Matching questions across Quora |
| **Search URL** — `quora.com/search?q=…` | ✅ Yes | Same as above |

### Features

- **Cookie-free question scraping** — all answers on a question, paginated to the end, with no account and no cookie export.
- **Space / subdomain posts** — scrape `*.quora.com` Space posts including the owning Space name and engagement metrics.
- **Full answer content** — the complete answer text, not a truncated preview.
- **Answer metrics** — upvotes, view counts and comment counts per answer.
- **Author information** — non-sensitive author details: display name, profile URL and credential.
- **Keyword search** — pass plain keywords instead of hand-building search URLs (cookies required).
- **Customizable** — flexible configuration to suit various scraping needs, with proxy support.

### How to use

1. **Set up:** ensure you have an Apify account.
2. **Configure input:** paste question / Space URLs into **Start URLs**, or enter keywords under **Search keywords**.
3. **Cookies (only for keyword search):** if — and only if — you use keyword search, log in to quora.com, export the quora.com cookies with a cookie-editor extension and paste the JSON array into the Cookies field. Extensions that work:
   - <a href="https://chromewebstore.google.com/detail/copy-cookies/jcbpglbplpblnagieibnemmkiamekcdg" target="_blank" rel="noopener noreferrer nofollow ugc">Copy Cookies</a>
   - <a href="https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm" target="_blank" rel="noopener noreferrer nofollow ugc">Cookie-Editor</a>
   - <a href="https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg" target="_blank" rel="noopener noreferrer nofollow ugc">EditThisCookie</a>
4. **(Optional)** configure proxy settings for enhanced reliability.
5. **Run the scraper.**
6. **Collect data** in JSON, CSV, Excel, HTML or any format Apify supports.

### Input examples

#### Question URL — no cookies

```json
{
    "startUrls": [
        { "url": "https://www.quora.com/How-do-black-holes-form" }
    ],
    "maxItems": 100
}
```

#### Space post URL — no cookies

```json
{
    "startUrls": [
        { "url": "https://humanity.quora.com/She-was-the-quiet-strength-behind-his-genius" }
    ],
    "maxItems": 50
}
```

#### Keyword search — cookies required

Give `searchQueries` a list of keywords and each one becomes its own `quora.com/search?q=…` crawl. Keyword results are merged with anything in `startUrls` and de-duplicated, so you can mix the two freely.

```json
{
    "searchQueries": ["machine learning", "remote work"],
    "maxItems": 100,
    "cookies": [{ "name": "m-b", "value": "…", "domain": ".quora.com" }]
}
```

### Output structure

#### Answer (from a question URL)

```json
{
    "aid": 133425545,
    "id": "QW5zd2VyQDA6MTMzNDI1NTQ1",
    "url": "https://www.quora.com/How-are-black-holes-formed-1/answer/Rishi-Munipalli",
    "content": "Black holes are formed when super massive stars die. To understand how a black hole is formed we first need to understand how a star takes birth…",
    "creationTime": "2019-04-12T04:57:41.316Z",
    "numUpvotes": 52,
    "numViews": 7256,
    "qid": 5479984,
    "isAuthorAnon": false,
    "uid": 239669543,
    "profileUrl": "https://www.quora.com/profile/Rishi-Munipalli",
    "names": [
        { "givenName": "Rishi", "familyName": "Munipalli" }
    ]
}
```

#### Space post (from a `*.quora.com` URL)

```json
{
    "record_type": "space_post",
    "pid": 253578461,
    "id": "UG9zdEAwOjI1MzU3ODQ2MQ==",
    "url": "https://humanity.quora.com/She-was-the-quiet-strength-behind-his-genius",
    "title": "She was the quiet strength behind his genius…",
    "content": "Gabriel García Márquez proposed to Mercedes Barcha at a local dance in Colombia…",
    "images": ["https://qph.cf2.quoracdn.net/main-qimg-…"],
    "numViews": 2189,
    "numUpvotes": 50,
    "numComments": 0,
    "numShares": 1,
    "creationTime": "2026-08-07T00:22:17.446Z",
    "space": { "name": "Humanity", "tribeId": 1575194 },
    "isAuthorAnon": false,
    "uid": 1343396776,
    "profileUrl": "https://www.quora.com/profile/Pusp-L",
    "names": [
        { "givenName": "Pusp L.", "familyName": "" }
    ]
}
```

#### Question summary (from search results)

```json
{
    "index": 1,
    "qid": 101059049,
    "id": "UXVlc3Rpb25AMDoxMDEwNTkwNDk=",
    "url": "https://www.quora.com/What-is-Web3-and-why-does-it-matter",
    "title": "What is Web3, and why does it matter?",
    "creationTime": "2021-09-27T06:20:50.336Z",
    "answerCount": 19
}
```

### FAQ

**Do I need a Quora account?**
Not for question or Space URLs — those are scraped fully logged-out. Only keyword search needs cookies, because Quora returns no search results to logged-out visitors.

**Why did my search run return nothing?**
Keyword search without cookies comes back empty by design. Add cookies, or scrape question/Space URLs directly instead.

**How many answers do I get per question?**
All of them, up to your `maxItems` limit — the scraper pages through the full answer list.

**My cookies stopped working.**
Re-export them from a logged-in browser session. Cookies typically stay valid for months.

### Support

- For issues or feature requests, please use the [Issues](https://console.apify.com/actors/Sll6pBcBHlFnhoPRh/issues) section of this actor.
- If you need customization or have questions, feel free to contact the author:
  - Author's website: <https://muhamed-didovic.github.io/>
  - Email: <muhamed.didovic@gmail.com>

### Additional Services

- Request customization or whole dataset: <muhamed.didovic@gmail.com>
- If you need anything else scraped, or this actor customized, email: <muhamed.didovic@gmail.com>
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: <muhamed.didovic@gmail.com>

### ⚠️ Disclaimer

This scraper collects only publicly available data from Quora. It does not bypass any login wall or access private content. Use the data responsibly and in line with Quora's terms of service and applicable data-protection law in your jurisdiction.

# Actor input Schema

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

Paste Quora URLs, one per line. <b>These run without any login or cookies.</b><br><br>Supported: <b>question pages</b> (<code>quora.com/How-do-black-holes-form</code>) — returns every answer with full text, view count, upvotes, comments, author and credential; and <b>Space posts</b> (<code>humanity.quora.com/…</code>) — returns the post body, views, upvotes, shares and the owning Space.<br><br>Leave empty if you only want keyword search below. A run needs at least one of the two.

## `searchQueries` (type: `array`):

Search Quora by keyword — each entry becomes a <code>quora.com/search?q=…</code> run.<br><br><b>⚠️ Keyword search requires cookies</b> (fill in the Cookies section below). Quora returns no search results to logged-out visitors, so a search run without cookies will come back empty. Scraping question or Space <b>URLs</b> above has no such requirement.

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

Maximum number of rows to scrape. Each answer is one row (each Space post is one row).

## `cookies` (type: `array`):

<b>Optional.</b> Leave empty to scrape question and Space URLs — those work fully logged-out.<br><br>Only fill this in if you use <b>Search keywords</b> above, since Quora hides search results from logged-out visitors. Log in to quora.com in your browser, export the quora.com cookies with a cookie-editor extension (Cookie-Editor, EditThisCookie) and paste the exported JSON array here. Cookies stay valid for months; re-export if search runs start returning empty.

## `proxy` (type: `object`):

Specifies proxy servers that will be used by the scraper in order to hide its origin.<br><br>For details, see <a href='https://apify.com/apify/web-scraper#proxy-configuration' target='_blank' rel='noopener'>Proxy configuration</a> in README.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.quora.com/How-do-black-holes-form"
    }
  ],
  "searchQueries": [
    "machine learning",
    "remote work"
  ],
  "maxItems": 100,
  "cookies": [],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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/How-do-black-holes-form"
        }
    ],
    "searchQueries": [
        "machine learning",
        "remote work"
    ],
    "cookies": [],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/quora-scraper-ppe").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/How-do-black-holes-form" }],
    "searchQueries": [
        "machine learning",
        "remote work",
    ],
    "cookies": [],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/quora-scraper-ppe").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/How-do-black-holes-form"
    }
  ],
  "searchQueries": [
    "machine learning",
    "remote work"
  ],
  "cookies": [],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call memo23/quora-scraper-ppe --silent --output-dataset

```

## MCP server setup

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

```

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/Sll6pBcBHlFnhoPRh/builds/0leyD7pN4s6xP2wBf/openapi.json
