# Kickstarter Comments Scraper (`stealth_mode/kickstarter-comments-scraper`) Actor

Scrape community comments from any Kickstarter project page. This scraper captures comment text, author details, creation dates, replies, badges, moderation flags, and 20+ additional fields — perfect for community analysis, sentiment tracking, and creator engagement research.

- **URL**: https://apify.com/stealth\_mode/kickstarter-comments-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Lead generation
- **Stats:** 4 total users, 2 monthly users, 97.8% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Kickstarter Comments Scraper: Extract Project Comments & Community Insights

***

### What Is Kickstarter & Why Scrape Comments?

Kickstarter is the world's leading crowdfunding platform, hosting thousands of active projects across creative, technology, design, and innovation categories. Every project page contains a vibrant comments section where backers, curious supporters, and community members discuss ideas, ask questions, and share feedback.

Analyzing comments manually is impractical at scale. The **Kickstarter Comments Scraper** automates collection of project discussions, enabling you to extract structured comment data for sentiment analysis, community engagement studies, and creator insights — without clicking through hundreds of comment threads.

***

### Overview

The **Kickstarter Comments Scraper** extracts comment records from any Kickstarter project's comments section, capturing both the discussion content and platform metadata. It is ideal for:

- **Creators & brand managers** tracking backer sentiment and engagement
- **Market researchers** analyzing community feedback across product categories
- **Data analysts** studying crowdfunding dynamics and creator-backer interaction
- **Academics** researching online community behavior and funding campaigns
- **Investors** evaluating project momentum through community discussion activity

The scraper is highly configurable, allowing bulk collection across multiple projects, with resilient error handling and flexible output limits.

***

### Input Format

The scraper accepts a JSON configuration object with three main parameters:

```json
{
  "urls": [
    "https://www.kickstarter.com/projects/direwolfdigital/war-of-the-dragon-the-wheel-of-time/comments"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
```

| Field | Type | Description |
|---|---|---|
| `urls` | Array | Direct URLs to Kickstarter project comments pages. Use the format: `/projects/[creator-username]/[project-slug]/comments` |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running even if some URLs fail. If `false`, the entire run stops at the first error. Default: `true` |
| `max_items_per_url` | Integer | Maximum number of comments to collect per URL (e.g., `200`). Useful for controlling data volume and API usage |

> **Tip:** The comments URL is located on each project page. Navigate to the project, scroll to comments, and copy the full URL from your browser address bar.

***

### Output Format

#### Example Output

```json
{
  "id": "Q29tbWVudC00NzQzNTU0OA==",
  "body": "Backed to keep an eye on this one. The combination of The Wheel of Time, Dire Wolf, and a grand strategy format is really interesting. I’ve been following the campaign trends on Tabletop Analytics too, curious to see how far this one goes.",
  "created_at": 1780491957,
  "parent_id": null,
  "author": {
    "id": "VXNlci0xMjIyNTU3MzY1",
    "image_url": "https://i.kickstarter.com/assets/010/500/931/d06078d7136ac3a6993ebd9525ae3fcf_original.png?anim=false&fit=cover&height=200&origin=ugc&q=92&v=1461694076&width=200&sig=ULlrzopFOmZvfTxDDiM1D8xswBU4WFzNAOjSdvZtYJs%3D",
    "name": "Nuuko Twilightcatcer",
    "url": "https://www.kickstarter.com/profile/1222557365",
    "is_blocked": false,
    "__typename": "User"
  },
  "removed_per_guidelines": false,
  "author_badges": [],
  "can_report": false,
  "can_delete": false,
  "can_pin": false,
  "can_remove_backer": false,
  "has_flaggings": false,
  "deleted_author": false,
  "deleted": false,
  "sustained": false,
  "pinned_at": null,
  "author_canceled_pledge": false,
  "is_project_live": true,
  "is_project_successful": false,
  "author_backing": null,
  "replies": {
    "total_count": 0,
    "nodes": [],
    "page_info": {
      "start_cursor": null,
      "has_previous_page": false,
      "__typename": "PageInfo"
    },
    "__typename": "CommentConnection"
  },
  "from_url": "https://www.kickstarter.com/projects/direwolfdigital/war-of-the-dragon-the-wheel-of-time/comments"
}
```

Each scraped comment returns a comprehensive record with 20+ fields capturing the comment content, author metadata, and platform moderation details:

#### Comment Content & Identification

| Field | Meaning |
|---|---|
| `ID` | Unique identifier for the comment within Kickstarter's system |
| `Body` | The full text content of the comment as written by the author |
| `Created At` | ISO timestamp when the comment was posted (e.g., `2024-01-15T10:30:00Z`) |
| `Replies` | Number of direct replies to this comment, showing engagement depth |

#### Author & Identity

| Field | Meaning |
|---|---|
| `Author` | Name and profile information of the comment author |
| `Author Badges` | Array of badges indicating author status (e.g., "Creator", "Project Backer", "Kickstarter Staff") |
| `Author Backing` | Backer status for this specific project (whether author pledged funds) |
| `Author Canceled Pledge` | Boolean flag indicating if the author previously backed but later canceled |
| `Deleted Author` | Boolean flag if the author account was deleted after posting |

#### Comment Hierarchy & Threading

| Field | Meaning |
|---|---|
| `Parent ID` | ID of the parent comment if this is a reply; `null` if it's a top-level comment |

#### Moderation & Community Management

| Field | Meaning |
|---|---|
| `Removed Per Guidelines` | Boolean indicating if the comment was removed for violating community guidelines |
| `Deleted` | Boolean flag if the comment was deleted (by author or moderator) |
| `Sustained` | Boolean flag if a moderation action was upheld after appeal |
| `Has Flaggings` | Boolean indicating if community members reported this comment |
| `Pinned At` | ISO timestamp if a moderator pinned this comment; `null` if unpinned |

#### Permissions & Capabilities

| Field | Meaning |
|---|---|
| `Can Report` | Boolean indicating whether the current viewer can report this comment |
| `Can Delete` | Boolean indicating whether the current viewer can delete this comment (author or moderator only) |
| `Can Pin` | Boolean indicating whether the current viewer has permission to pin this comment (creator/moderator) |
| `Can Remove Backer` | Boolean indicating whether the comment author's backer status can be removed by a moderator |

#### Project Context

| Field | Meaning |
|---|---|
| `Is Project Live` | Boolean indicating whether the project was still active when the comment was posted |
| `Is Project Successful` | Boolean indicating whether the project's funding goal was met |

***

### How to Use

1. **Find a Kickstarter project** — Browse Kickstarter.com and select any active or completed project.
2. **Navigate to comments** — Click the "Comments" tab or scroll to the comments section on the project page.
3. **Copy the URL** — Copy the full comments page URL from your browser (e.g., `.../comments`).
4. **Prepare your input** — Paste the URL into the `urls` array in the configuration JSON.
5. **Set limits** — Adjust `max_items_per_url` based on your needs (e.g., `50` for sample, `500+` for full dataset).
6. **Run the scraper** — Start the actor and monitor progress in the log.
7. **Download results** — Export as JSON, CSV, or Excel for analysis.

**Best practices:**

- Use `ignore_url_failures: true` when scraping multiple projects to avoid interruptions.
- Start with `max_items_per_url: 100` to test before scaling to larger collections.
- Comments are returned in chronological order by default; sort afterward if needed.

***

### Use Cases & Business Value

- **Sentiment analysis:** Track backer enthusiasm and concerns across funding stages
- **Competitor research:** Monitor community discussions on rival projects
- **Creator feedback:** Identify frequently asked questions and improvement suggestions
- **Engagement metrics:** Measure comment velocity and reply rates to assess project momentum
- **Academic research:** Study crowdfunding dynamics, backer psychology, and community trust patterns

By automating comment collection, you can analyze thousands of conversations in minutes — revealing insights that shape product strategy, community management, and funding outcomes.

***

### Conclusion

The **Kickstarter Comments Scraper** transforms crowdfunding project discussions into actionable data. Whether you're a creator optimizing backer engagement, a researcher studying community dynamics, or an analyst tracking market trends, this scraper delivers the rich comment data you need — structured, complete, and ready for analysis.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the comments list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

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

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.kickstarter.com/projects/direwolfdigital/war-of-the-dragon-the-wheel-of-time/comments"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "urls": [
        "https://www.kickstarter.com/projects/direwolfdigital/war-of-the-dragon-the-wheel-of-time/comments"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/kickstarter-comments-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 = {
    "urls": ["https://www.kickstarter.com/projects/direwolfdigital/war-of-the-dragon-the-wheel-of-time/comments"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

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

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.kickstarter.com/projects/direwolfdigital/war-of-the-dragon-the-wheel-of-time/comments"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call stealth_mode/kickstarter-comments-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/kickstarter-comments-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/xHn2F2jhs63uyKahq/builds/0TgwgYlzsAFKzVr5J/openapi.json
