1. 2scraper
  2. E-commerce & retail
  3. Indiegogo
Open source · MITRuns with no key, proxy or account

Indiegogo Scraper

Indiegogo project listings, campaign pages and reward tiers: funds raised, backers, goals and deadlines, to JSON/CSV.

  • Playwright
  • Selenium
  • Puppeteer
  • Scraping Browser API
  • JSON
  • CSV
indiegogo-scraper
# Project search
$ python3 playwright_scraper.py --pages 5 --sort most-funded --format both
✓ 24 sample rows · 35 columns in sample_output.json
3modes: search, campaign, rewards
9site locales (en, de, fr, it, es, pl, cs, pt, zh)
72rows over 3 pages from a bare GitHub runner, no secrets (Sep 2026)
0API keys, proxies or accounts needed
Available Indiegogo scrapers

What the Indiegogo scraper collects

Scrapes indiegogo.com project search listings, individual campaign pages and their reward tiers into JSON or CSV. Rows are read from the site's own JSON rather than the rounded card text, so funds raised, backers, goals and campaign dates come out exact.

Project search

Input: Nothing, or a project search URL with filters

One row per campaign, 24 per page: funds raised, currency, goal, percent funded, backers, followers, creator, campaign dates and phase.

Campaign page

Input: An Indiegogo campaign URL

One row per campaign with everything from search plus the ISO 4217 currency, campaign day, stretch-goal count, reward count and published date.

Reward tiers

Input: An Indiegogo campaign URL

One row per reward tier: price, original price, 30-day lowest price, discount, remaining stock, purchased count and estimated delivery.

Quick start

From zero to Indiegogo data in 3 steps

  1. Install

    Clone the repository and install one browser engine. Python 3.9+.

    $ git clone https://github.com/2scraper/indiegogo-scraper.git && cd indiegogo-scraper
    $ pip install -r requirements.txt -r requirements-playwright.txt
    $ playwright install chromium
    $ python3 playwright_scraper.py --pages 3
  2. Run a scraper

    Pick what you need and run it. Every flag is documented in the README.

    $ python3 playwright_scraper.py --pages 5 --sort most-funded --format both
  3. Get structured data

    Rows land in JSON or CSV (--format), with a .meta.json sidecar recording status, pages fetched and why the run stopped.

Output

Indiegogo data fields

35 columns per row in a predictable schema. The most useful ones:

FieldWhat it holds
skuIndiegogo project id
titleCampaign title
urlCampaign URL
priceFunds raised, exact from the site's JSON
currencyCampaign currency; null when the symbol is ambiguous (kr), never defaulted
goalFunding goal; null for campaigns that publish none
pct_fundedPercent of goal raised
backers_countNumber of backers, exact rather than "3.4k"
followers_countNumber of followers
creatorCampaign creator
campaign_endAbsolute campaign end time (UTC)
days_leftDays remaining
phase_labelThe site's own status label, e.g. Express crowdfunding
platformindiegogo or gamefound — which platform hosts the campaign
category_codeLocale-independent numeric category id
tagsCampaign tags
[
  {
    "source": "indiegogo.com",
    "scraped_at": "2026-09-17T08:42:12.083024+00:00",
    "url": "https://www.indiegogo.com/en/projects/gpdhk/gpd-win-max-3-handheld-gaming-laptop",
    "sku": "442684",
    "title": "GPD WIN Max 3 Removable Battery High Refresh Rate OLED Handheld Gaming Laptop",
    "image_url": "https://cdn.images.indiegogo.com/projectimage/projects/442684/54401a1d-1a31-4c6c-a03d-d…",
    "price": 6569871.0,
    "currency": "HKD",
    "category": "Productivity",
    "price_source": "api",
    "platform": "indiegogo",
    "category_code": 50,
    "sort": "default",
    "page": 1,
    "position": 1,
    "creator": "GPD HK",
    "creator_url": "https://www.indiegogo.com/creators/gpdhk",
    "goal": null,
    "pct_funded": null,
    "backers_count": 337,
    "followers_count": 1066,
    "campaign_start": "2026-09-02T02:00:00Z",
    "campaign_end": "2026-10-17T02:00:00Z",
    "days_left": 29,
    "phase_label": "Express crowdfunding",
    "phase": 10,
    "outcome_code": 1,
    "funded_in_seconds": null,
    "short_description": "GPD WIN Max 3 OLED Handheld Gaming PC AMD Ryzen™ AI Max+ 395 / 388.\nAMD Radeon 8060S iG…",
    "tags": [
      "computers",
      "laptops",
      "pc"
    ],
    "currency_iso_source": null,
    "campaign_day": null,
    "stretch_goal_count": null,
    "reward_count": null,
    "published_date": null
  },
  {
    "source": "indiegogo.com",
    "scraped_at": "2026-09-17T08:42:12.083124+00:00",
    "url": "https://gamefound.com/en/projects/iv-studio/tend-expansions",
    "sku": "11718",
    "title": "Tend: Hive & Cellar Expansions",
    "image_url": "https://imgcdn.gamefound.com/projectimage/projects/11718/343ee917-ecf4-4e7f-b4cc-869430…",
    "price": 642408.53,
    "currency": "USD",
    "category": "Board & card games",
    "price_source": "api",
    "platform": "gamefound",
    "category_code": 11,
    "sort": "default",
    "page": 1,
    "position": 2,
    "creator": "IV Studio",
    "creator_url": "https://gamefound.com/creators/iv-studio",
    "goal": 50000.0,
    "pct_funded": 1284.82,
    "backers_count": 3420,
    "followers_count": 11594,
    "campaign_start": "2026-09-15T15:00:00Z",
    "campaign_end": "2026-10-07T22:00:00Z",
    "days_left": 20,
    "phase_label": "Crowdfunding",
    "phase": 10,
    "outcome_code": 0,
    "funded_in_seconds": 645,
    "short_description": "Two new expansions for the highly-acclaimed & strategic cozy farming game.",
    "tags": [
      "Strategy",
      "SummerFeast26",
      "SummerFeast2026",
      "… 1 more"
    ],
    "currency_iso_source": null,
    "campaign_day": null,
    "stretch_goal_count": null,
    "reward_count": null,
    "published_date": null
  }
]

First 2 of 24 rows from a real run — sample_output.json. Long values shortened here.

Built for Indiegogo

Handles what breaks naive Indiegogo scrapers

Real pagination, not ?page=2

?page=2 silently serves page 1 again. The scraper pages through the site's own POST search API with a 0-based pageIndex from inside the cleared browser session, and refuses to build ?page=N URLs at all.

Gamefound rows labelled

indiegogo.com search mixes in campaigns hosted on gamefound.com. Every row carries a platform column, and --platform indiegogo filters to Indiegogo-hosted campaigns.

Exact numbers, honest nulls

Funds, backers and end dates come from the API instead of rounded card text. A missing goal stays null, and the API's misleading fundedInSeconds = 0 becomes null.

The site's result cap recorded

Unfiltered searches stop at 416 pages × 24 rows. The sidecar records total_results, pages_available and capped_by_site, and diff_runs.py refuses to compare runs under different --sort orders.

Everything built in

Scraping infrastructure included

The same tested core runs every 2scraper repository, so the hard parts work the same way on every site.

CAPTCHA handling

Detects the challenge a page really serves and, with a 2Captcha key, solves it only when it blocks the data — a capped number of solves per page.

Proxy rotation

Single proxy or a pool from a file, rotated on blocks with a fresh browser per exit. Credentials stay out of argv and logs.

Fingerprints

Optional complete device identity from the 2Captcha Fingerprint API — user agent, client hints, locale and timezone that agree with each other.

Scraping Browser API

Point --cdp-endpoint at a managed Chromium with its own exit country — no browser infrastructure to run yourself.

Honest run metadata

Every run writes a .meta.json sidecar and distinct exit codes: complete, blocked, empty and partial are never confused, and a failed run never overwrites good data.

Diff two runs

diff_runs.py compares two complete Indiegogo snapshots by id — new, removed and changed rows for monitoring.

Use cases

What teams do with Indiegogo data

Crowdfunding market research

Track which categories and campaigns raise the most, with exact funds raised, goals and percent funded.

Campaign performance monitoring

Follow backers, followers and funds raised for selected campaigns day by day with diff_runs.py.

Reward pricing analysis

Compare reward tier prices, discounts, 30-day lowest prices and remaining stock across campaigns.

Product launch scouting

Find new hardware and gadget campaigns early with --sort newest and category filters.

Access & pricing

Free to run. Pay only for what the site requires.

Runs with no key, proxy or account

A plain HTTP client gets Cloudflare's challenge on every route, but a local browser reads the site with no key, proxy or account, even from a datacentre address: 4 of 4 Playwright runs returned full results, and the GitHub-runner canary returned 72 rows over 3 pages (measured Sep 2026). When the challenge appeared it cleared itself on the next navigation. Residential proxies add volume and a chosen country, the Scraping Browser API a managed browser, and the 2Captcha Scraper API a page-1 read with no local browser; the Turnstile solving path is implemented in case the challenge stops clearing itself.

Optional 2Captcha services — captcha solving, the Scraping Browser API, residential proxies and fingerprints — work behind one key.

Good to know

  • Unfiltered searches are capped by the site at 9,984 rows.
  • Selenium cannot use an authenticated --cdp-endpoint or an authenticated proxy; use Playwright or pyppeteer for those.
  • scraper_api_client.py reads only page 1 of a search, because later pages need the browser session.

2scraper vs. hosted scraper APIs

2scraperTypical hosted API
CodeOpen source, MIT — read and patch itClosed
CostFree; optional services billed only when usedSubscription or per request / per result
Runs onYour machine, server or CIThe vendor's infrastructure
OutputJSON/CSV files + run metadataAPI responses
When the site changesFix it yourself or open an issue / PRWait for the vendor
FAQ

Indiegogo scraper FAQ

Do I need a proxy or a 2Captcha account to scrape Indiegogo?

No, for most use. A local headless Chromium read the site from datacentre addresses with no key or proxy; HTTP clients like curl are refused, so use a browser engine.

How many results can one search return?

An unfiltered search is capped by the site at 416 pages of 24, or 9,984 rows. Narrower queries, such as a search term, are not capped.

Why are some rows from Gamefound?

indiegogo.com runs on the Gamefound platform and its search includes Gamefound-hosted campaigns. The platform column marks them and --platform indiegogo filters them out.

Does the sort order matter?

Yes. Because results are capped, the sort decides which campaigns end up in your file, so sort is recorded on every row and diff_runs.py refuses to compare runs with different sorts.

Which languages are supported?

Nine locales as path prefixes: en, it, fr, de, pl, es, cs, pt and zh. category and phase_label are display text, so group by category_code across locales.

Is scraping Indiegogo legal?

It reads public listing and campaign pages. Public data scraping is generally lawful, but follow Indiegogo's terms and the law where you operate, and do not republish personal data.