GoFundMe Campaigns Scraper
Pricing
Pay per event
GoFundMe Campaigns Scraper
🔎 Scrape public GoFundMe fundraisers by keyword or URL. Extract campaign titles, organizer, story, amounts, goals, donations, and images.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Extract public fundraiser data from GoFundMe search results and campaign pages. Use keywords, GoFundMe search URLs, or direct fundraiser URLs to collect campaign titles, organizers, locations, amounts raised, goals, donation counts, stories, images, and status fields.
The actor is built for public data collection. It does not log in, donate, message organizers, or access private donor information.
What does GoFundMe Campaigns Scraper do?
GoFundMe Campaigns Scraper turns public GoFundMe fundraiser pages into structured dataset rows.
It can:
- 🔎 Search GoFundMe by keyword, person, location, cause, or topic
- 🔗 Process direct
https://www.gofundme.com/f/...campaign URLs - 📄 Open campaign pages for richer details
- 💰 Extract raised amount, goal, currency, and donation count
- 🧑 Capture organizer and visible beneficiary or charity information
- 🏙️ Capture public location fields when GoFundMe exposes them
- 🖼️ Save fundraiser image URLs
- 📊 Export clean JSON, CSV, Excel, XML, or API results from Apify datasets
Who is it for?
This scraper is useful for teams that monitor public fundraising activity at scale.
- 📰 Journalists tracking crisis response, disaster relief, or local stories
- 🧑💼 Nonprofit analysts monitoring fundraising markets and campaign language
- 🏥 Healthcare researchers studying public medical fundraising patterns
- 🏛️ Public policy teams looking at emergency relief needs
- 📈 Market researchers comparing cause categories and donation momentum
- 🧰 Data teams building dashboards from public campaign metadata
Why use this scraper?
GoFundMe pages are useful but hard to analyze manually. Search pages are designed for browsing, not for spreadsheet work. This actor converts public fundraiser pages into structured rows so you can sort, filter, deduplicate, and monitor campaigns over time.
Public data and limitations
The actor only extracts data visible on public GoFundMe pages. Some fields are optional because GoFundMe may hide them, omit them, or expose different fields by country, category, or campaign type.
It does not collect private donor emails, private payment details, private organizer data, or authenticated account-only information.
How much does it cost to scrape GoFundMe campaigns?
Default pricing is pay-per-result. Formula-derived BRONZE pricing is about $0.1165 per 1,000 saved campaign rows, plus a small run-start event. Actual billing depends on the live Apify pricing configuration shown on the actor page.
For small tests, keep maxItems low. For monitoring workflows, raise maxItems once you have confirmed the query returns the type of campaigns you want.
Input options
| Field | Type | Description |
|---|---|---|
searchQueries | array | Keywords, causes, people, or locations to search on GoFundMe |
startUrls | array | Public GoFundMe search URLs or direct campaign URLs |
maxItems | integer | Maximum campaign records to save across all inputs |
includeDetails | boolean | Visit campaign pages for full story, organizer, image, date, and status fields |
Example input
{"searchQueries": ["medical bills", "flood relief"],"startUrls": [{ "url": "https://www.gofundme.com/f/flood-relief-fund-2025" }],"maxItems": 25,"includeDetails": true}
Output data
Each dataset row represents one public GoFundMe fundraiser campaign.
| Field | Description |
|---|---|
campaignUrl | Canonical public fundraiser URL |
fundraiserId | GoFundMe fundraiser ID when visible |
slug | URL slug |
title | Campaign title |
organizerName | Public organizer name |
organizerId | Public organizer ID when visible |
beneficiaryName | Visible beneficiary name, if present |
charityName | Visible charity name, if present |
categoryId | GoFundMe category ID when exposed |
city, state, countryCode | Public location fields |
amountRaised | Amount raised as a number |
goalAmount | Goal as a number |
currency | Currency code such as USD |
donationCount | Number of donations shown by GoFundMe |
story | Plain-text campaign story |
imageUrls | Public image URLs |
status | Campaign status when visible |
createdAt, publishedAt, updatedAt | Public date fields when visible |
sourceQuery, sourceUrl | Input source tracking |
Example output
{"campaignUrl": "https://www.gofundme.com/f/flood-relief-fund-2025","fundraiserId": "92508227","title": "2025 Flood Relief Fund","organizerName": "GoFundMe Org","amountRaised": 678255,"goalAmount": 1000000,"currency": "USD","donationCount": 3173,"city": "Los Angeles","state": "CA","countryCode": "US","status": "ACTIVE"}
How to scrape GoFundMe by keyword
- Open the actor on Apify.
- Add one or more phrases to
searchQueries. - Set
maxItemsto the number of fundraiser rows you need. - Keep
includeDetailsenabled if you need stories, images, organizers, or dates. - Click Start.
- Download the dataset as CSV, JSON, Excel, or connect through the Apify API.
How to scrape direct fundraiser URLs
Paste public campaign URLs into startUrls, for example:
{"startUrls": [{ "url": "https://www.gofundme.com/f/flood-relief-fund-2025" }],"maxItems": 1,"includeDetails": true}
This is best when you already have a list of fundraiser pages and want consistent campaign details.
Tips for better results
- Use specific phrases such as
wildfire relief californiainstead of onlyhelp. - Run separate queries for separate research topics so
sourceQuerystays useful. - Use direct URLs when you need exact known campaigns.
- Disable
includeDetailsonly when you need faster search metadata and do not need the full story. - Deduplicate by
campaignUrlorfundraiserIdin your downstream database.
Integrations
You can connect the dataset to:
- Google Sheets or Excel reporting workflows
- BI dashboards for donation and category trends
- Data warehouses for longitudinal monitoring
- Newsroom research notebooks
- Nonprofit CRM enrichment workflows using only public campaign context
- Alerting pipelines that watch for new campaigns matching a cause or location
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/gofundme-campaigns-scraper').call({searchQueries: ['medical bills'],maxItems: 25,includeDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/gofundme-campaigns-scraper').call(run_input={'searchQueries': ['flood relief'],'maxItems': 25,'includeDetails': True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~gofundme-campaigns-scraper/runs?token=MY-APIFY-TOKEN' \-H 'Content-Type: application/json' \-d '{"searchQueries":["medical bills"],"maxItems":25,"includeDetails":true}'
MCP usage
Use this actor from MCP-compatible tools through Apify MCP:
https://mcp.apify.com/?tools=automation-lab/gofundme-campaigns-scraper
Claude Code setup:
$claude mcp add apify-gofundme https://mcp.apify.com/?tools=automation-lab/gofundme-campaigns-scraper
Claude Desktop JSON config:
{"mcpServers": {"apify-gofundme": {"url": "https://mcp.apify.com/?tools=automation-lab/gofundme-campaigns-scraper"}}}
Example prompts:
- "Run the GoFundMe Campaigns Scraper for flood relief campaigns and summarize the top campaigns by amount raised."
- "Scrape these GoFundMe URLs and return a CSV with organizer, goal, raised amount, and story."
- "Find public medical fundraiser campaigns matching this query and group them by state."
Data quality notes
GoFundMe can change field availability by page, country, campaign state, or experiment. The actor keeps optional fields nullable rather than inventing values. Numeric amount fields are returned as numbers when GoFundMe exposes clean numeric values.
Legality and responsible use
This actor is designed for publicly available GoFundMe pages. You are responsible for using the data legally and ethically. Respect privacy, platform terms, copyright, and applicable data protection rules. Avoid contacting organizers in ways that could be spammy, harmful, or misleading.
Troubleshooting
If a query returns too few results, try broader terms, remove punctuation, or use a GoFundMe search URL from your browser.
If story or organizer fields are empty, keep includeDetails enabled and verify that the public campaign page shows those fields.
If a campaign URL is skipped, confirm it follows the public /f/<slug> format and is not a private, deleted, or redirected page.
FAQ
Can it scrape donor names?
No. This actor focuses on campaign-level public fundraiser metadata, not private donor details.
Does it need proxies?
The first version uses normal HTTP requests and does not require a residential proxy.
Can I monitor the same query every day?
Yes. Schedule the actor on Apify and deduplicate by campaignUrl or fundraiserId in your destination.
Can I scrape a whole category?
Use category-related keywords or GoFundMe search URLs. Category labels may not always be exposed as human-readable names, so the actor currently returns categoryId when visible.
Related scrapers
Other Automation Lab actors that can complement this workflow:
- https://apify.com/automation-lab/google-news-scraper
- https://apify.com/automation-lab/google-search-scraper
- https://apify.com/automation-lab/facebook-ads-library-scraper
- https://apify.com/automation-lab/reddit-scraper
Changelog
- Initial version: search public GoFundMe campaigns and scrape campaign details.
Support
If you need a field that appears publicly on GoFundMe but is missing from the dataset, open an issue on Apify with a sample public URL and expected field name.