Give.org BBB Charity Report Scraper
Pricing
$3.00 / 1,000 results
Give.org BBB Charity Report Scraper
Extracts BBB Wise Giving Alliance charity accountability reports from Give.org: accreditation status, per-standard results, and org details, priced pay-per-result.
Pricing
$3.00 / 1,000 results
Rating
0.0
(0)
Developer
Adam Schepis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extracts BBB Wise Giving Alliance charity accountability reports from Give.org, priced pay-per-result.
What you get
- Per charity: name, report URL, EIN (if shown), location, cause/category, accreditation status, pass/fail on all 20 BBB Standards for Charity Accountability, report issue/expiry dates, and website.
- Structured, ready-to-use data — no scraper to build or maintain yourself.
- Pay only for results: $0.004 per charity report, nothing for failed or empty runs.
- Runs on Apify's infrastructure with automatic proxy rotation and retries.
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array of URLs | one of startUrls/searchQuery | Give.org charity report pages (https://give.org/charity-reviews/<category>/<name>) and/or listing pages (https://give.org/search?searchTerm=... or https://give.org/national-charity-reviews). Listing pages are crawled for report links; report pages are scraped directly. |
searchQuery | string | one of startUrls/searchQuery | Builds https://give.org/search?searchTerm=<query>. See the caveat under "Why this actor" below. |
maxResults | integer | no (default 20) | Stops the run (and pay-per-event charging) once this many charity reports have been produced. |
Example input:
{"startUrls": [{ "url": "https://give.org/charity-reviews/human-services/american-red-cross-in-washington-dc-9999-679" },{ "url": "https://give.org/national-charity-reviews" }],"maxResults": 20}
Output example
This is a real, verified sample from a local run:
{"charityName": "American Red Cross","url": "https://give.org/charity-reviews/human-services/american-red-cross-in-washington-dc-9999-679","ein": null,"location": "431 18th Street NW, Washington, DC, 20006","phone": "(800) 733-2767","category": "Human Services","website": "https://www.redcross.org","accreditationStatus": "meets_all_standards","accreditationStatusLabel": "Accredited Charity","standard_1": "Meets Standards","standard_2": "Meets Standards","standard_3": "Meets Standards","standard_20": "Meets Standards","reportDate": "September 2026","reportExpires": "September 2028","scrapedAt": "2026-09-08T23:29:32.171Z"}
(standard_4 through standard_19 omitted above for brevity — every record has all 20.) A report the charity declined to have evaluated (accreditationStatus: "did_not_disclose") has standard_1...standard_20 all null, since no matrix is published for those; every other field is still populated.
standard_1...standard_20 are the 20 BBB Standards for Charity Accountability, in this fixed order:
| # | Standard | # | Standard |
|---|---|---|---|
| 1 | Board Oversight | 11 | Audit Report |
| 2 | Board Size | 12 | Detailed Expense Breakdown |
| 3 | Board Meetings | 13 | Accurate Expense Reporting |
| 4 | Board Compensation | 14 | Budget Plan |
| 5 | Conflict of Interest | 15 | Truthful Materials |
| 6 | Effectiveness Policy | 16 | Annual Report |
| 7 | Effectiveness Report | 17 | Website Disclosures |
| 8 | Program Expenses | 18 | Donor Privacy |
| 9 | Fundraising Expenses | 19 | Cause Marketing Disclosures |
| 10 | Accumulating Funds | 20 | Complaints |
Each standard's value is one of: "Meets Standards", "Standards Not Met", "Did Not Disclose", "Unable To Verify", "Review In Progress", or null (no matrix published for this charity's report).
accreditationStatus is one of: meets_all_standards, does_not_meet_standards, did_not_disclose, review_in_progress, unable_to_verify. accreditationStatusLabel carries Give.org's own display text for the same value.
Every dataset item has the same shape. Download results as JSON, CSV, Excel, or via the Apify API.
Pricing
This Actor uses pay-per-event pricing. You are charged only for the result event, once per charity report produced; the exact per-event price is set in Apify Console at publish time and shown on the Actor's Store page before you run it.
| Event | When it's charged |
|---|---|
result | Once per charity report, up to maxResults |
Why this actor
Give.org (the BBB Wise Giving Alliance) publishes free charity accountability reports one at a time, with no bulk export and no public API. This actor turns any charity report page, or a listing/search page full of them, into structured JSON in one call — useful for donor-research tools, nonprofit-sector datasets, and due-diligence workflows that need accreditation status and standards-level detail at scale.
Caveat on searchQuery: Give.org's search form accepts a searchTerm parameter, but as tested it does not filter results server-side — every query returns the same default listing (paginated, ~6,400 charities total). The parameter is still wired up so the actor keeps working (and starts actually filtering) if that changes; for now, prefer startUrls with direct report URLs or the /national-charity-reviews listing (a single page indexing ~1,700 report links) if you need deterministic, specific charities.
How it works
- Report pages render their content client-side via a WordPress AJAX call (
admin-ajax.php?action=give_load_charity_report) using a nonce embedded in the page. This actor fetches the report page first (the same request an anonymous visitor's browser makes), reads the bureau code / source ID / nonce out of it, then makes that same AJAX call itself to get the report HTML — no login, no data beyond what's shown to any visitor. - Listing pages (search results and the national A-Z index) are ordinary server-rendered HTML; report links (and, on search-result cards, a category label) are read directly from the page.
maxConcurrencycapped at 3.
Robots.txt
https://give.org/robots.txt returned 404 (no robots.txt) when checked while building this actor (2026-09-08). There were no Disallow paths to honor. This should be re-checked periodically in case the site adds one.
Notes for buyers
- EIN was not shown on any charity report sampled while building this actor (not this environment's report template, at least) — the field is extracted defensively in case a report does show one, but expect
nullin most/all records today. locationjoins the report's address lines with,(street, then city/state/ZIP).categoryuses the human-readable label shown on a listing page's result card when the report was reached that way; for report URLs given directly (or reached via the national listing, which doesn't show a category label on its cards), it's derived from the report URL's category segment against Give.org's fixed cause taxonomy.- Seed 3 (
smoke/seed-3.json) crawls/national-charity-reviews, a single page indexing roughly 1,700 report links, and stops atmaxResults— a good way to see the budget cutoff in action on a page with far more links than you asked for.
Reference docs used to build this actor
- Apify SDK for JS: https://docs.apify.com/sdk/js/
- Pay-per-event monetization overview: https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event
- Pay-per-event SDK guide (
Actor.charge,ChargingManager, local test mode): https://docs.apify.com/sdk/js/docs/concepts/pay-per-event Actor.chargeAPI reference: https://docs.apify.com/sdk/js/reference/class/Actor.actor/actor.jsonreference: https://docs.apify.com/platform/actors/development/actor-definition/actor-json- Built with Crawlee and the Apify SDK for JavaScript.