Give.org BBB Charity Report Scraper avatar

Give.org BBB Charity Report Scraper

Pricing

$3.00 / 1,000 results

Go to Apify Store
Give.org BBB Charity Report Scraper

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

Adam Schepis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

FieldTypeRequiredDescription
startUrlsarray of URLsone of startUrls/searchQueryGive.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.
searchQuerystringone of startUrls/searchQueryBuilds https://give.org/search?searchTerm=<query>. See the caveat under "Why this actor" below.
maxResultsintegerno (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
1Board Oversight11Audit Report
2Board Size12Detailed Expense Breakdown
3Board Meetings13Accurate Expense Reporting
4Board Compensation14Budget Plan
5Conflict of Interest15Truthful Materials
6Effectiveness Policy16Annual Report
7Effectiveness Report17Website Disclosures
8Program Expenses18Donor Privacy
9Fundraising Expenses19Cause Marketing Disclosures
10Accumulating Funds20Complaints

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.

EventWhen it's charged
resultOnce 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.
  • maxConcurrency capped 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 null in most/all records today.
  • location joins the report's address lines with , (street, then city/state/ZIP).
  • category uses 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 at maxResults — 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