# Kickstarter Scraper (`parsebird/kickstarter-scraper`) Actor

Scrape Kickstarter Discover projects by category and sort order, or from a custom Discover URL. Get funding, backers, creator, and campaign details.

- **URL**: https://apify.com/parsebird/kickstarter-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.79 / 1,000 kickstarter projects

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

### Kickstarter Scraper

Scrape crowdfunding campaigns from **[Kickstarter](https://www.kickstarter.com/discover)** Discover by category and sort order, or from a custom Discover URL. Get structured titles, funding goals, pledged amounts, backer counts, creators, categories, locations, and media as clean JSON, CSV, or Excel.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Filter Kickstarter Discover by category and sort order — magic, popularity, newest, end date, or most funded — or paste a pre-filtered Discover URL, and get 50+ fields per project including funding progress, currency, creator profile, category hierarchy, and video links.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this Actor.

```
Actor: parsebird/kickstarter-scraper (Apify). Scrapes crowdfunding projects from Kickstarter Discover (kickstarter.com/discover). Call it with ApifyClient.
Input (all optional): startUrl (string, a Kickstarter Discover URL — query params in it like category_id/sort take precedence over the fields below, default "https://www.kickstarter.com/discover"), category (enum: Art|Comics|Design|Tech|Games|Music|Film|Food|Publishing, default none), sort (enum: magic|popularity|newest|end_date|most_funded, default "magic"), results_wanted (integer, default 20), max_pages (integer, default 5), proxyConfiguration (object, default Kickstarter residential preset — required, Kickstarter blocks the default datacenter proxy).
Output: one row per project — project_id, slug, state, title, blurb, creator, creator_id, creator_slug, creator_profile_url, creator_avatar_url, url, rewards_url, image_url, pledged, usd_pledged, funding_goal, backers, percentage_funded, days_left, currency, currency_symbol, country, country_displayable_name, staff_pick, category, category_id, parent_category, location, created_at, launched_at, deadline, video_high_url, video_hls_url, and more.
Pricing: pay-per-event, $0.99 per 1,000 projects on the Free plan (cheaper on paid plans). API docs: https://apify.com/parsebird/kickstarter-scraper/api
```

### What does Kickstarter Scraper do?

This Actor extracts crowdfunding campaign data from [Kickstarter](https://www.kickstarter.com/discover) Discover, the site's own project search and browse feed. It reads Kickstarter's Discover results directly, so every project comes back with its full funding numbers, creator details, and media links — no manual copy-pasting required.

- 🗂️ **Category filtering** — Art, Comics, Design, Tech, Games, Music, Film, Food, or Publishing.
- 🔀 **Five sort orders** — magic (Kickstarter's default relevance ranking), popularity, newest, end date, or most funded.
- 🔗 **Custom Discover URL support** — paste any Discover URL with your own filters already applied (e.g. `?category_id=16&sort=most_funded`) and the Actor scrapes from there.
- 💰 **Full funding data** — goal, pledged amount, USD-converted pledged amount, percentage funded, backer count, currency, and live exchange rate.
- 👤 **Creator and location details** — creator name, profile URL, avatar, campaign location, and category hierarchy (category plus parent category).
- 🎬 **Media links** — main campaign image and, when a project has one, its pitch video in both MP4 and HLS formats.
- 🚦 **Reliable by default** — ships with a residential proxy preset, because Kickstarter blocks Apify's default datacenter proxy outright.

#### How is this different from browsing Kickstarter by hand?

Kickstarter's Discover page loads 12 projects at a time and requires manual scrolling and clicking to see funding details for each one. This Actor pages through Discover automatically and returns every project's full data — including fields not shown directly on the Discover grid, like the exact USD-converted pledge amount, exchange rate, and campaign location — as structured rows ready for analysis or a spreadsheet.

### Input parameters

Every field is optional. With no start URL, category, or sort, the Actor scrapes Kickstarter's default Discover feed sorted by relevance.

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| startUrl | string | No | `https://www.kickstarter.com/discover` | Custom Kickstarter Discover URL to start from. |
| category | string | No | — | Category filter such as Art, Comics, Design, Tech, Games, Music, Film, Food, or Publishing. |
| sort | string | No | magic | Sort order: magic, popularity, newest, end\_date, most\_funded. |
| results\_wanted | integer | No | 20 | Maximum number of projects to collect. |
| max\_pages | integer | No | 5 | Safety cap on pages to process (higher values allow deeper collections). |
| proxyConfiguration | object | No | Kickstarter residential preset | Proxy settings. Kickstarter blocks Apify's default datacenter proxy, so residential routing ships preset. |

#### Input example

```json
{
  "startUrl": "https://www.kickstarter.com/discover",
  "results_wanted": 20
}
```

#### Category-focused example

```json
{
  "category": "Tech",
  "sort": "newest",
  "results_wanted": 50,
  "max_pages": 10
}
```

#### Custom Discover URL example

```json
{
  "startUrl": "https://www.kickstarter.com/discover/advanced?category_id=16&sort=most_funded",
  "results_wanted": 100,
  "max_pages": 20
}
```

### Output example

```json
{
  "project_id": "1542195646",
  "slug": "zera-mini",
  "state": "live",
  "title": "ZERA mini - The True Card-Sized Cooling Fan",
  "blurb": "TRUE Card-Sized | 13m/s Windspeed | 30,000RPM | 360° Rotatable | Intuitive Display | 69g Ultralight",
  "creator": "ZERA Sonic",
  "creator_profile_url": "https://www.kickstarter.com/profile/zerasonic",
  "url": "https://www.kickstarter.com/projects/zerasonic/zera-mini",
  "currency": "HKD",
  "funding_goal": "30000",
  "pledged": "1374487",
  "usd_pledged": "175231.05223671",
  "backers": "2522",
  "days_left": "22",
  "percentage_funded": "4581.62",
  "staff_pick": true,
  "category": "Product Design",
  "parent_category": "Design",
  "country_displayable_name": "Hong Kong",
  "location": "Hong Kong, Hong Kong",
  "created_at": "2026-06-05T06:42:08Z",
  "launched_at": "2026-07-02T12:44:59Z",
  "deadline": "2026-08-11T12:44:59Z",
  "image_url": "https://i.kickstarter.com/assets/054/736/801/501f1fa193081b32230d1e93771e623f_original.png",
  "rewards_url": "https://www.kickstarter.com/projects/zerasonic/zera-mini/rewards"
}
```

### What data can you extract from Kickstarter?

| Field | Type | Description |
|-------|------|--------------|
| project\_id | string | Kickstarter project identifier. |
| slug | string | Project slug used in the campaign URL. |
| state | string | Campaign state (live, successful, failed, canceled, suspended). |
| title | string | Campaign title. |
| blurb | string | Short campaign summary text. |
| creator / creator\_profile\_url | string | Creator display name and profile URL. |
| url / rewards\_url | string | Campaign URL and rewards page URL. |
| currency | string | Campaign currency code. |
| funding\_goal / pledged / usd\_pledged | string | Funding goal and pledged amounts, in campaign currency and USD. |
| backers | string | Number of backers. |
| days\_left | string | Estimated days until deadline. |
| percentage\_funded | string | Percentage of goal achieved. |
| staff\_pick | boolean | Whether the campaign is a Kickstarter staff pick. |
| category / parent\_category | string | Category name and its parent category. |
| country\_displayable\_name / location | string | Human-readable country name and campaign location text. |
| created\_at / launched\_at / deadline | string | Campaign creation, launch, and deadline timestamps (ISO datetime). |
| image\_url / video\_high\_url | string | Main campaign image and, when available, the pitch video. |

The full record also includes creator ID/slug/avatar, category and location IDs and slugs, exchange rate fields (`static_usd_rate`, `usd_exchange_rate`, `fx_rate`), and campaign status flags (`spotlight`, `is_starrable`, `is_launched`, `disable_communication`) for deeper analysis.

### How to scrape Kickstarter

1. Open the **Kickstarter Scraper** on Apify and click **Try for free**.
2. Leave **Start URL** as the default Discover page, or paste your own pre-filtered Discover URL.
3. Optionally pick a **category** and **sort order** — these are used only when the Start URL doesn't already specify them.
4. Set **Results wanted** and **Max pages** — start small (e.g. 20 and 5) for a fast, cheap test run.
5. Leave the proxy on the **Kickstarter residential** preset — Kickstarter blocks Apify's default datacenter proxy.
6. Click **Start**, then download results as JSON, CSV, or Excel from the **Storage** tab, or pull them from the [API](https://apify.com/parsebird/kickstarter-scraper/api).

For recurring collection, [schedule](https://docs.apify.com/platform/schedules) the Actor to run daily or weekly and track how a category's campaigns perform over time.

### How much does it cost to scrape Kickstarter?

This Actor uses the **pay-per-event** model — you are charged per project saved to the dataset, with lower rates on paid Apify plans.

| Plan | Price per project | Price per 1,000 projects |
|------|--------------------|----------------------------|
| Free | $0.00099 | **$0.99** |
| Bronze | $0.00089 | **$0.89** |
| Silver | $0.00079 | **$0.79** |
| Gold | $0.00079 | **$0.79** |

Scraping 1,000 projects on the Free plan costs about **$0.99**. Your monthly Apify platform credits typically cover several thousand projects on top of that.

### How it works

1. The Actor builds a Kickstarter Discover query from your `category` and `sort` inputs — or uses the query parameters already in your **Start URL** when present.
2. It requests each Discover results page (12 projects per page) and parses every project's full funding, creator, category, location, and media data.
3. It stops paginating once `results_wanted` is reached, `max_pages` is hit, or Kickstarter reports no further pages.
4. Projects are pushed to the dataset page by page, so partial results are available even on a long run.

### Using the Actor via API

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run = client.actor("parsebird/kickstarter-scraper").call(run_input={
    "category": "Games",
    "sort": "most_funded",
    "results_wanted": 50,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], "—", item.get("pledged"), item.get("currency"))
```

#### JavaScript

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });

const run = await client.actor('parsebird/kickstarter-scraper').call({
    category: 'Tech',
    sort: 'newest',
    results_wanted: 50,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

The Actor runs on the [Apify platform](https://apify.com), so you also get [scheduling](https://docs.apify.com/platform/schedules), a full [REST API](https://docs.apify.com/api/v2), webhooks, and native integrations with Make, Zapier, Google Sheets, and Slack. Results export as JSON, CSV, Excel, XML, or RSS.

### Use cases

- **Crowdfunding market research** — track which categories and project types are trending on Kickstarter right now.
- **Competitor monitoring** — watch a category or niche for new launches and funding milestones.
- **Investment and trend scouting** — surface the most-funded or fastest-growing campaigns in a category.
- **Creator research** — study successful campaigns' blurbs, funding goals, and reward structures before launching your own.
- **Media and journalism** — source fresh crowdfunding stories with verified funding numbers.

### FAQ

**Do I need a Kickstarter account?**
No. The Actor reads only public Discover listings. You need an Apify account to run it.

**Why is a residential proxy required?**
Kickstarter is behind Cloudflare and blocks Apify's default datacenter proxy outright. The Actor ships with a residential proxy preset and automatically rotates sessions if one is blocked, so you don't need to configure anything.

**Can I use a Kickstarter Discover URL I already built in my browser?**
Yes. Paste it into **Start URL** — any `category_id`, `sort`, or other filter already in its query string takes precedence over the Category and Sort inputs.

**Why are some fields empty?**
`video_high_url` and `video_hls_url` are only populated for campaigns that have a pitch video. Fields like `location_state` depend on what Kickstarter itself records for that campaign's location.

**Does this Actor scrape individual project pages?**
No — it scrapes Kickstarter's Discover search results, which already include full funding, creator, category, and media data for each project without an extra page load per project.

**Can I schedule recurring runs?**
Yes. Use Apify's [scheduler](https://docs.apify.com/platform/schedules) to run this Actor daily or weekly and export new results automatically. Found a problem? Open an issue on the **Issues** tab.

### Related Actors

- [Substack Leaderboard Scraper](https://apify.com/parsebird/substack-leaderboard-scraper) — top Substack newsletters and their subscriber estimates.
- [Polymarket Leaderboard Scraper](https://apify.com/parsebird/polymarket-scraper) — top prediction-market traders and their positions.
- Browse the full [ParseBird publisher page](https://apify.com/parsebird) for more scrapers.

### Legal and compliance

This Actor collects only publicly available campaign listings from Kickstarter — data any visitor can view without logging in. It does not access private data or bypass authentication. You are responsible for using the scraped data lawfully, including respecting Kickstarter's terms and applicable data-protection laws such as GDPR or CCPA where relevant. Do not use the output to spam creators or backers. If you plan to scrape at scale or redistribute the data commercially, seek legal advice first. See Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/kickstarter-scraper/changelog.md

# Actor input Schema

## `startUrl` (type: `string`):

A Kickstarter Discover URL to start from, including any filters already in its query string (e.g. `?category_id=16&sort=most_funded`). Query params already in this URL take precedence over Category and Sort below.

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

Category filter, used when the Start URL doesn't already specify one.

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

Sort order, used when the Start URL doesn't already specify one.

## `results_wanted` (type: `integer`):

Maximum number of projects to collect.

## `max_pages` (type: `integer`):

Safety cap on the number of Discover pages to process. Higher values allow deeper collections.

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

Kickstarter blocks Apify's default datacenter proxy, so residential routing is preset. Change it only for an account-specific setup.

## Actor input object example

```json
{
  "startUrl": "https://www.kickstarter.com/discover",
  "category": "",
  "sort": "magic",
  "results_wanted": 20,
  "max_pages": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "startUrl": "https://www.kickstarter.com/discover",
    "results_wanted": 20,
    "max_pages": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/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 = {
    "startUrl": "https://www.kickstarter.com/discover",
    "results_wanted": 20,
    "max_pages": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/kickstarter-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 '{
  "startUrl": "https://www.kickstarter.com/discover",
  "results_wanted": 20,
  "max_pages": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call parsebird/kickstarter-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/kickstarter-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/UWXgIyVR1IcTqLQqY/builds/8j0CVsD8qoMwA2tEa/openapi.json
