# Kickstarter Scraper 🚀 (`scraper-engine/kickstarter-scraper`) Actor

🚀 Kickstarter Scraper extracts campaign data fast—titles, funding, backers, updates, and more—from Kickstarter. Ideal for market research, trend tracking, and lead generation. 📈 Get actionable insights instantly with kickstarter-scraper!

- **URL**: https://apify.com/scraper-engine/kickstarter-scraper.md
- **Developed by:** [Scraper Engine](https://apify.com/scraper-engine) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Scraper 🚀

Extract **rich, structured data** from [Kickstarter](https://www.kickstarter.com) at scale — funding numbers, rewards, add-ons, items, creator profiles, categories, locations and more. Point it at project pages, categories, places, creator profiles or a `/discover/advanced` search, or just set the filters and let it crawl.

No login, no headless browser — the scraper impersonates a real browser's TLS fingerprint to sail past Cloudflare, so it's fast and cheap.

***

### ✨ Why choose this scraper?

- **🧱 Complete records** — not just the search summary. Every project is enriched with rewards, add-ons, items, add-on support and the full creator profile (biography, websites, avatar).
- **🔗 Flexible input** — project / category / place / profile / discover URLs **or** human-friendly filters (category, location, status, pledged, goal, raised, sort).
- **🛡️ Residential proxy with IP rotation** — every request goes through your configured Apify proxy (residential by default), and each retry rotates to a fresh exit IP so blocks and rate-limits are shrugged off automatically.
- **💾 Live results** — every project is saved the moment it's scraped, so a long run never loses work.
- **🗂️ Four ready-made views** — Overview, Funding, Creators, and Rewards & Add-ons.

***

### 🔑 Key features

| Feature | Details |
|---|---|
| Input types | Project URL, Category URL, Place URL, Profile URL, `/discover/advanced` URL, or filters only |
| Filters | Search term, category, location, status, pledged, goal, raised, sort |
| Enrichment | Rewards, add-ons, items, creator biography / websites / avatar |
| Anti-blocking | `curl_cffi` browser TLS impersonation + escalating proxy ladder + retry/backoff |
| Output | Live dataset push, 4 table views, full JSON / CSV / XLSX export |

***

### 📥 Input

```json
{
  "startUrls": [
    { "url": "https://www.kickstarter.com/discover/categories/games/tabletop%20games" }
  ],
  "query": "",
  "maxResults": 10,
  "category": "games/tabletop games",
  "location": "",
  "status": "Successful",
  "pledged": "All",
  "goal": "All",
  "raised": "All",
  "sort": "newest",
  "enrichProjects": true,
  "concurrency": 5,
  "requestDelay": 1.0,
  "impersonate": "chrome131",
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

| Field | Type | Description |
|---|---|---|
| `startUrls` | array | Bulk list of Kickstarter URLs (project / category / place / profile / discover). Leave empty to crawl from filters. |
| `query` | string | Free-text keyword search. |
| `maxResults` | integer | Max number of projects to collect. |
| `category` | string | Category slug (`games/tabletop games`), parent (`games`) or `All`. |
| `location` | string | Free-text location, resolved automatically. |
| `status` | string | `All`, `Live`, or `Successful`. |
| `pledged` / `goal` / `raised` | string | Range buckets (see dropdowns). |
| `sort` | string | `newest`, `magic`, `popularity`, `end_date`, `most_funded`, `most_backed`. |
| `enrichProjects` | boolean | Fetch full project + creator detail (default `true`). |
| `concurrency` | integer | Parallel project fetches. |
| `requestDelay` | number | Politeness delay (seconds) + random jitter. |
| `impersonate` | string | Browser TLS fingerprint. |
| `proxyConfiguration` | object | Apify proxy settings (residential recommended). |

***

### 📤 Output

Each dataset item is the full Kickstarter project object, with a top-level `url` and an enriched `creator`. A few flat helper fields (`projectName`, `categoryName`, `creatorName`, `percentFunded`, `photoUrl`, …) are added so the table views render nicely — the complete nested data is always preserved.

```jsonc
{
  "url": "https://www.kickstarter.com/projects/infiniform/sci-fi-desert-relay-tower-complex...",
  "id": 933356486,
  "name": "Sci-fi Desert - Relay Tower Complex - 3D Printable STL Files",
  "blurb": "3D Printable Pieces for Wargames, Tabletop RPGs & Boardgames...",
  "goal": 100.0,
  "pledged": 729.0,
  "state": "successful",
  "backers_count": 35,
  "currency": "USD",
  "category": { "name": "Tabletop Games", "slug": "games/tabletop games", "parent_name": "Games" },
  "location": { "displayable_name": "Walla Walla, WA" },
  "creator": { "name": "InfiniForm", "biography": "...", "websites": [], "url": "..." },
  "rewards": [ { "minimum": 12.0, "title": "...", "backers_count": 24, "...": "..." } ],
  "add_ons": [ "..." ],
  "items": [ "..." ],
  "percentFunded": 729.0,
  "projectUrl": "https://www.kickstarter.com/projects/infiniform/..."
}
```

***

### 🚀 How to use (Apify Console)

1. Log in at [console.apify.com](https://console.apify.com) → **Actors**.
2. Open **Kickstarter Scraper**.
3. Add **Start URLs** and/or set the filters (category, status, sort, …).
4. (Optional) Set proxy to **Residential** for the most reliable runs.
5. Click **Start**.
6. Watch the live log fill up with projects as they're scraped.
7. Open the **Output** tab — switch between the 🗂️ Overview, 💰 Funding, 👤 Creators and 🎁 Rewards views.
8. Export to **JSON / CSV / XLSX**.

***

### 🤖 Use via API

```bash
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "category": "games/tabletop games",
       "status": "Successful",
       "maxResults": 10,
       "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
     }'
```

***

### 💡 Best use cases

- Market research on a category (which projects fund, at what goals, how many backers).
- Lead generation — creator profiles, websites and locations.
- Tracking rewards / pricing strategies across successful campaigns.
- Building datasets of crowdfunding trends.

***

### 💳 Pricing

This Actor runs on Apify's standard compute + proxy usage. Residential proxy traffic is the main cost driver, which is exactly why the scraper starts **direct** and only escalates when blocked — you only pay for the proxy tier you actually need.

***

### ❓ FAQ

**Do I need a proxy?** Yes — Kickstarter blocks Apify's datacenter IPs aggressively, so the Actor uses your configured Apify proxy (residential by default) from the first request. Residential is strongly recommended.

**Why do some creator fields look empty?** Those fields come from the signed creator endpoint; if a creator's profile is private or the call is rate-limited, the Actor degrades gracefully and keeps the rest of the record.

**Can I scrape a single project?** Yes — paste its URL into **Start URLs**.

**Is this legal?** The Actor only collects publicly available data. You are responsible for complying with Kickstarter's ToS and applicable laws (GDPR/CCPA, etc.).

***

### 🆘 Support & feedback

Found a bug or want a new field? Open an issue on the Actor's **Issues** tab in the Apify Console.

# Actor input Schema

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

URLs to start with. Supports 🟢 project detail, 👤 creator profile, 📂 category, 📍 place, and 🔍 /discover/advanced search URLs. Leave empty to crawl purely from the filters below.

## `query` (type: `string`):

Keyword/query you want to search on Kickstarter. Ignored when Start URLs are provided.

## `maxResults` (type: `integer`):

Maximum number of project records to retrieve.

## `category` (type: `string`):

Kickstarter category to filter results by. Pick "All" for every category.

## `location` (type: `string`):

Location to search within (e.g. "Seattle, WA" or "United States"). Resolved automatically. Leave empty to skip.

## `status` (type: `string`):

Filter by campaign status.

## `pledged` (type: `string`):

Filter by total amount pledged.

## `goal` (type: `string`):

Filter by the campaign's funding goal.

## `raised` (type: `string`):

Filter by how much of the goal was raised.

## `sort` (type: `string`):

Order of the results.

## `datasetName` (type: `string`):

Write results into a named dataset (persists across runs and is overwritten each run). Leave empty to use the run's default dataset.

## `enrichProjects` (type: `boolean`):

Fetch each project page for rewards, add-ons, items and full creator profiles. Turn off for a faster, lighter crawl that returns only the discover summary.

## `concurrency` (type: `integer`):

How many projects to fetch in parallel.

## `requestDelay` (type: `number`):

Politeness delay; a small random jitter is added on top. Kickstarter rate-limits aggressively.

## `impersonate` (type: `string`):

Browser TLS fingerprint to impersonate. Use a recent one — Cloudflare rejects old/generic fingerprints.

## `proxyConfig` (type: `object`):

Apify proxy used for every request (a fresh exit IP is drawn on each retry). RESIDENTIAL is strongly recommended and the default — Kickstarter blocks datacenter traffic.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.kickstarter.com/projects/1460250988/darkest-dungeon-by-red-hook-studios",
    "https://www.kickstarter.com/discover/categories/games/tabletop%20games",
    "https://www.kickstarter.com/discover/places/seattle-wa",
    "https://www.kickstarter.com/profile/alleycatgames",
    "https://www.kickstarter.com/discover/advanced?term=board+games&category_id=12&pledged=1&goal=1&sort=newest&page=1"
  ],
  "query": "Gadgets",
  "maxResults": 10,
  "category": "All",
  "location": "United States",
  "status": "All",
  "pledged": "All",
  "goal": "All",
  "raised": "All",
  "sort": "newest",
  "datasetName": "",
  "enrichProjects": true,
  "concurrency": 5,
  "requestDelay": 1,
  "impersonate": "chrome131",
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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": [
        "https://www.kickstarter.com/projects/1460250988/darkest-dungeon-by-red-hook-studios",
        "https://www.kickstarter.com/discover/categories/games/tabletop%20games",
        "https://www.kickstarter.com/discover/places/seattle-wa",
        "https://www.kickstarter.com/profile/alleycatgames",
        "https://www.kickstarter.com/discover/advanced?term=board+games&category_id=12&pledged=1&goal=1&sort=newest&page=1"
    ],
    "query": "Gadgets",
    "maxResults": 10,
    "category": "All",
    "location": "United States",
    "sort": "newest",
    "proxyConfig": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper-engine/kickstarter-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": [
        "https://www.kickstarter.com/projects/1460250988/darkest-dungeon-by-red-hook-studios",
        "https://www.kickstarter.com/discover/categories/games/tabletop%20games",
        "https://www.kickstarter.com/discover/places/seattle-wa",
        "https://www.kickstarter.com/profile/alleycatgames",
        "https://www.kickstarter.com/discover/advanced?term=board+games&category_id=12&pledged=1&goal=1&sort=newest&page=1",
    ],
    "query": "Gadgets",
    "maxResults": 10,
    "category": "All",
    "location": "United States",
    "sort": "newest",
    "proxyConfig": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scraper-engine/kickstarter-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 '{
  "startUrls": [
    "https://www.kickstarter.com/projects/1460250988/darkest-dungeon-by-red-hook-studios",
    "https://www.kickstarter.com/discover/categories/games/tabletop%20games",
    "https://www.kickstarter.com/discover/places/seattle-wa",
    "https://www.kickstarter.com/profile/alleycatgames",
    "https://www.kickstarter.com/discover/advanced?term=board+games&category_id=12&pledged=1&goal=1&sort=newest&page=1"
  ],
  "query": "Gadgets",
  "maxResults": 10,
  "category": "All",
  "location": "United States",
  "sort": "newest",
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scraper-engine/kickstarter-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/2X5BQYIIbcxx2spSg/builds/nBgBmLMc1hmGLXEm2/openapi.json
