Kickstarter Project Funding Tracker
Pricing
from $6.67 / 1,000 results
Kickstarter Project Funding Tracker
Scrape a Kickstarter project's funding data - pledged, goal, backers, and a derived funding-velocity signal (pledged per day since launch). No login, no API key.
Scrapes a Kickstarter project's funding data — pledged, goal, backers, category — plus a derived funding-velocity signal. No login, no API key.
Useful for crowdfunding market research, tracking a specific campaign's momentum, and competitive analysis for creators launching a similar project.
What makes this different
funding_velocity_per_day — the number that actually tells you if a campaign is working. A raw pledged total or a percent-funded snapshot can't distinguish a project at 80% funded on day 2 of a 30-day campaign from one at 80% funded on day 29 — the first is a runaway hit, the second just squeaked by. This Actor divides total pledged by days elapsed since launch (capped at the deadline for finished campaigns), giving one number that reads as genuine momentum rather than a static snapshot.
days_remaining for live campaigns. Computed at scrape time, so filtering "campaigns ending soon" is a column, not manual date arithmetic against a raw deadline timestamp.
A genuinely nasty encoding bug, found and fixed. Kickstarter's own project page double-escapes backslashes inside the embedded JSON before HTML-encoding it, so an escaped quote inside a codec string like codecs="avc1..." arrives as an invalid two-character sequence instead of a single valid JSON escape. Parsing it directly fails partway through with a misleading "expecting ',' delimiter" error nowhere near the actual problem. This Actor corrects that extra escaping before parsing, which is the difference between a project that parses cleanly and one that silently fails on any project whose video happens to trip the bug.
Input
| Field | Type | Notes |
|---|---|---|
projects | array | Full Kickstarter project URLs, or creator-slug/project-slug paths. |
proxyConfiguration | object | Defaults to Residential. |
Output
{"project_id": "kickstarter.com:1955357092","name": "Exploding Kittens","state": "successful","goal": 10000.0,"pledged": 8782571.99,"percent_funded": 87825.72,"backers_count": 219382,"funding_velocity_per_day": 289567.16,"days_since_launch": 30.33,"category_name": "Tabletop Games","url": "https://www.kickstarter.com/projects/elanlee/exploding-kittens"}
A project that's been removed, suspended, or never existed fails with a clear message rather than returning an empty row. Each run also writes a RUN_COVERAGE record to the key-value store with what was requested, what came back, and any per-project failures.
Local development
pip install -r requirements.txtpython test_local.py https://www.kickstarter.com/projects/exploding-kittens/exploding-kittens --out sample_output.jsonpython test_local.py elanlee/exploding-kittens
sample_output.json is real output from a live run.