Indiegogo APIindiegogo.com ↗
Search campaigns, fetch reward tiers, comments, updates, FAQs, and creator profiles from Indiegogo. 10 endpoints covering the full campaign lifecycle.
What is the Indiegogo API?
The Indiegogo API provides 10 endpoints for accessing crowdfunding campaign data including search, reward tiers, creator profiles, updates, and FAQs. The search_campaigns endpoint lets you filter by keyword, category, sort order, and project timing — returning paginated results with funding goals, backer counts, and creator names. Campaign-level endpoints expose comment threads, perk structures, and creator project histories.
curl -X GET 'https://api.parse.bot/scraper/80b750af-4178-4720-a348-eca95353f7de/search_campaigns?page=1&sort=trending&term=tech&category=TechAndInnovation&project_timing=ongoing' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace indiegogo-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Indiegogo SDK — search campaigns, drill into rewards, browse categories."""
from parse_apis.indiegogo_api import Indiegogo, Category, Sort, ProjectTiming, CampaignNotFound
client = Indiegogo()
# Search for tech campaigns sorted by trending, capped at 5 results.
for campaign in client.campaigns.search(category=Category.TECH_AND_INNOVATION, sort=Sort.TRENDING, limit=5):
print(campaign.name, campaign.campaign_goal, campaign.phase)
# Drill into one campaign's rewards via .first()
campaign = client.campaigns.search(term="solar", limit=1).first()
if campaign:
for reward in campaign.rewards.list(limit=3):
print(reward.name, reward.price, reward.has_limited_stock)
# Fetch campaign updates
if campaign:
for update in campaign.updates.list(limit=3):
print(update.title, update.published_at)
# Browse all categories
for group in client.categorygroups.list(limit=4):
print(group.name, group.category)
# Look up a creator profile and list their projects
creator = client.creators.get_profile(creator_slug="earthbiotechnologies")
print(creator.name, creator.description)
for project in creator.list_projects(limit=3):
print(project.name, project.backers_count, project.campaign_goal)
# Typed error handling: catch a not-found campaign
try:
client.campaigns.get_details(slug="nonexistent-creator/nonexistent-project")
except CampaignNotFound as exc:
print(f"Campaign not found: {exc}")
print("exercised: campaigns.search / rewards.list / updates.list / categorygroups.list / creators.get_profile / list_projects / get_details")
Full-text and faceted search over Indiegogo crowdfunding campaigns. Supports keyword search, category filtering, timing filters, and multiple sort orders. Returns paginated results with campaign summaries including funding goal, creator info, and project phase.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| sort | string | Sort order for results. |
| term | string | Search keyword to find campaigns by name or description. |
| category | string | Category filter using the category URL name from get_categories. |
| project_timing | string | Project timing filter. |
{
"type": "object",
"fields": {
"pageIndex": "integer zero-based page index",
"pagedItems": "array of campaign summary objects",
"totalItemCount": "integer total number of matching campaigns",
"totalPageCount": "integer total number of pages"
},
"sample": {
"data": {
"pageIndex": 0,
"pagedItems": [
{
"name": "ScrapDrain: A Better Way to Keep Food Scraps Out of Drains and the Landfill",
"phase": 10,
"urlName": "scrapdrain-prevents-clogs-climate-change",
"projectID": 243486,
"creatorName": "EarthBio Technologies",
"campaignGoal": 9500,
"creatorUrlName": "earthbiotechnologies",
"catalogCategory": 68,
"shortDescription": "Capture food scraps at the sink, prevent clogs, and reduce methane emissions, no electricity required."
}
],
"totalItemCount": 1770,
"totalPageCount": 148
},
"status": "success"
}
}About the Indiegogo API
Campaign Discovery and Search
The search_campaigns endpoint accepts a term keyword along with optional filters for category, project_type (campaign or indemand), project_timing (ongoing, upcoming, funded), and sort order (trending, newest, most_funded, ending_soon, most_backed). Results are paginated, and each item in pagedItems includes name, projectID, shortDescription, campaignGoal, and creatorName. The get_categories endpoint returns the full category tree with subcategories and their URL slugs, which feed directly into the category filter on search. The get_featured_campaigns endpoint returns homepage spotlight items with displayTitle, displayText, displayImageUrl, and targetUrl.
Campaign Detail and Funding Data
get_campaign_details accepts a slug in creator-url-name/project-url-name format and returns fields including phase, projectID, campaignGoal, creatorUrlName, and shortDescription. That projectID is the key that unlocks reward, update, and creator project lookups. get_campaign_rewards returns both a rewards object (with nested items carrying name, price, effectivePrice, and productID) and an addons object for any add-on categories the campaign offers.
Creator Profiles and Activity
get_creator_profile accepts a creator_slug and returns name, avatarUrl, creatorID, and description. The numeric creatorID from that response feeds get_creator_projects, which returns a paginated list of all campaigns that creator has run, including each project's backersCount and fundsGathered. A hasCappedResults boolean indicates when the full project history has been truncated.
Comments, Updates, and FAQs
get_campaign_comments can resolve a thread from a slug or accept a direct thread_id, and supports cursor-based pagination via last_id. Each comment object includes commentID, text, authorID, createdAt, and a children array for nested replies. get_campaign_updates pages through creator updates using lowest_sequence and returns each update's title, publishedAt, and sequenceNumber. get_campaign_faq returns an array of FAQ entries with header (the question) and content as HTML-formatted answers.
The Indiegogo API is a managed, monitored endpoint for indiegogo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when indiegogo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official indiegogo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track funding momentum by comparing
campaignGoaltofundsGatheredacross campaigns in a category - Build a reward-tier comparison tool using
price,effectivePrice, andnamefromget_campaign_rewards - Monitor creator activity by pulling all projects via
get_creator_projectsand watchingbackersCountchanges - Aggregate campaign FAQs and updates to build a knowledge base for a specific product category
- Identify trending or ending-soon campaigns using the
sortandproject_timingfilters insearch_campaigns - Analyze comment sentiment on campaigns by pulling
textfields fromget_campaign_commentswith pagination - Curate a feed of homepage-featured campaigns using
displayTitleanddisplayImageUrlfromget_featured_campaigns
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Indiegogo have an official public developer API?+
What does `get_campaign_rewards` return, and does it include shipping or availability details?+
rewards object with nested items including name, price, effectivePrice, and productID, plus an addons object for add-on categories. Shipping cost breakdowns and geographic availability per reward tier are not currently included in the response. You can fork this API on Parse and revise it to add those fields if the source exposes them on the campaign page.How does comment pagination work in `get_campaign_comments`?+
last_id. Each subsequent call should pass the commentID of the oldest comment from the previous response as last_id, which returns comments older than that ID. The totalItemCount field tells you how many top-level comments exist in total.Does the API return backer counts or funds raised for individual campaigns?+
get_creator_projects returns backersCount and fundsGathered per project in the creator's history. However, get_campaign_details and search_campaigns results do not currently include a live backer count or percentage-funded figure alongside the campaignGoal. You can fork this API on Parse and revise it to surface those fields from the campaign detail response.Can I retrieve campaign media such as images or embedded videos?+
get_featured_campaigns does include a displayImageUrl for spotlight items, but full campaign media is not exposed. You can fork this API on Parse and revise it to add a media endpoint covering campaign images and video links.