FundRazr APIfundrazr.com ↗
Search FundRazr campaigns, fetch donation stats, activity feeds, highlights, and organizer profiles via 6 structured endpoints.
What is the FundRazr API?
The FundRazr API covers 6 endpoints for retrieving crowdfunding campaign data from fundrazr.com, including search, full campaign details, donor activity, and organizer profiles. The get_campaign_details endpoint returns 10+ fields per campaign — goal, story, currency, location, status, and statistics — while get_campaign_activity streams individual donation entries with amounts, messages, and timestamps.
curl -X GET 'https://api.parse.bot/scraper/6fa8371a-ff76-4808-ac04-dcb4c275d53b/search_campaigns?page=1&query=animals&category=Accidents&sort_type=trending' \ -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 fundrazr-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: FundRazr SDK — search campaigns, drill into details, and explore activity."""
from parse_apis.fundrazr_api import FundRazr, Category, Sort, ActivityOrder, CampaignNotFound
client = FundRazr()
# List all available categories for filtering.
for cat in client.campaignsummaries.list_categories(limit=5):
print(cat)
# Search trending animal campaigns — limit caps total items fetched.
for campaign in client.campaignsummaries.search(category=Category.ANIMALS, sort_type=Sort.TRENDING, limit=3):
print(campaign.title, campaign.amount_raised, campaign.location)
# Drill into the first result's full details via the summary → detail nav op.
summary = client.campaignsummaries.search(category=Category.SPORTS, limit=1).first()
if summary:
detail = summary.details()
print(detail.title, detail.goal, detail.currency, detail.status)
print(detail.statistics.donation_count, detail.statistics.donation_sum)
print(detail.owner.name, detail.location.formatted_address)
# Walk recent activity (donations) for this campaign.
for entry in detail.activities.list(order=ActivityOrder.NEWEST_FIRST, limit=3):
print(entry.owner.name, entry.amount, entry.message)
# Get highlights (top donations/milestones).
for highlight in detail.highlights.list(limit=2):
print(highlight.activity_id, highlight.amount, highlight.is_anonymous)
# Fetch an organizer profile by slug — typed error catch.
try:
profile = client.organizerprofiles.get(profile_slug="hurricane-swim-club")
print(profile.name, profile.slug)
for c in profile.campaigns:
print(c.title, c.slug)
except CampaignNotFound as exc:
print(f"Profile not found: {exc}")
print("exercised: list_categories / search / details / activities.list / highlights.list / organizerprofiles.get")
Search for campaigns on FundRazr with optional keyword, category filtering, and sorting. Returns paginated results. Each campaign summary includes title, organizer, amount raised, location, and days left. Use the slug from results to fetch full campaign details.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| query | string | Search keyword to filter campaigns. |
| category | string | Category name to filter by. |
| sort_type | string | Sort order for results. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"has_more": "boolean, true if campaigns were returned (more pages may exist)",
"campaigns": "array of campaign summary objects with title, slug, url, organizer, amount_raised, location, days_left, short_description"
},
"sample": {
"data": {
"page": 1,
"has_more": true,
"campaigns": [
{
"url": "https://fundrazr.com/26Hurrithon",
"slug": "26Hurrithon",
"title": "'26 Hurrithon",
"location": "Austin, US",
"days_left": "4",
"organizer": "Hurricane Swim Team",
"amount_raised": "$5.6k",
"short_description": "HURRITHON is the main fundraiser for the Hurricanes!"
}
]
},
"status": "success"
}
}About the FundRazr API
Search and Campaign Lookup
The search_campaigns endpoint accepts a query string, a category filter, a sort_type, and a page integer for pagination. Each result in the campaigns array includes the campaign title, slug, url, organizer, amount_raised, location, and days_left. The slug field from search results is the required input for get_campaign_details, which returns the full record: fundraising goal, currency, status, HTML story, owner object (name, pictureUrl, homeUrl), and a statistics object containing donationCount, donationSum, commentCount, and updateCount.
Activity and Highlights
Both get_campaign_activity and get_campaign_highlights require the campaignId returned by get_campaign_details — not the slug. get_campaign_activity accepts a limit and an order parameter and returns an entries array where each entry carries activityId, created timestamp, message, owner, amount, currency, and an isAnonymous flag. get_campaign_highlights returns a similar structure ordered by significance (top donations and milestones) and includes a has_more_results boolean.
Organizer Profiles and Categories
get_organizer_profile takes a profile_slug and returns the organizer's name, slug, an info array of metadata strings (type, location, stats, member-since date), and a campaigns array listing their associated fundraisers with title, slug, and URL. list_categories requires no inputs and returns the full array of categories strings that the category parameter in search_campaigns accepts — useful for building category-browse features without hardcoding values.
The FundRazr API is a managed, monitored endpoint for fundrazr.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fundrazr.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 fundrazr.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?+
- Monitor donation velocity on active campaigns by polling
get_campaign_activityfor new entries over time. - Build a campaign discovery tool filtered by category using
search_campaignswith thecategoryparam populated fromlist_categories. - Track fundraising progress by comparing
statistics.donationSumagainst the campaigngoalfield fromget_campaign_details. - Identify top donors for a campaign using
get_campaign_highlightsto surface highest-amount activity entries. - Aggregate all campaigns run by a single organizer via
get_organizer_profileand itscampaignsarray. - Enrich a nonprofit research dataset with campaign location, category, and donor count from
get_campaign_details. - Detect anonymous versus named donations by reading the
isAnonymousflag on each activity entry.
| 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 FundRazr have an official developer API?+
Why does `get_campaign_activity` need a `campaignId` instead of the slug?+
campaignId field in the get_campaign_details response. The slug alone is not accepted by those two endpoints.Does the API return the full donor list for a campaign, including donor profile details beyond name?+
owner field (name) and an isAnonymous flag, plus the amount and message. Detailed donor profile pages are not currently fetched. The API covers campaign-level and activity-level data. You can fork it on Parse and revise to add a donor-profile endpoint if that data is publicly accessible.Can I retrieve campaign updates or comments through these endpoints?+
statistics object in get_campaign_details includes counts for updateCount and commentCount, but the full text of updates and comments is not returned by any current endpoint. You can fork it on Parse and revise to add endpoints for fetching update and comment content.How does pagination work in `search_campaigns`?+
page parameter to step through result pages. The response includes a has_more boolean that is true when campaign results were returned for that page. There is no total-count field, so iterate until has_more is false.