If you've ever tried to research a nonprofit -- what they actually spend money on, how much their executives earn, or whether their revenue is growing -- you've probably landed on ProPublica's Nonprofit Explorer or GuideStar.
Both have problems. ProPublica rate-limits aggressively and returns limited fields. GuideStar (now Candid) locks most useful data behind a paywall starting at $99/month. And neither gives you a clean way to search by keyword, filter by revenue range, or export structured data at scale.
The underlying data is public. Every tax-exempt organization in the US files Form 990 with the IRS, and the IRS publishes this data through the Exempt Organizations Business Master File (BMF). The raw data is there -- it's just painful to work with directly.
What's in an IRS 990 filing
Form 990 contains the financial details nonprofits are required to disclose:
- Total revenue and expenses -- how much money comes in and goes out
- Executive compensation -- what the top officers and directors earn
- Program service revenue -- revenue broken down by activity
- Assets and liabilities -- the organization's balance sheet
- State of registration and ruling date (when tax-exempt status was granted)
- NTEE code -- a classification system for nonprofit activities (education, health, arts, etc.)
This is the data that journalists use for investigative reporting, grant makers use for due diligence, researchers use for sector analysis, and sales teams use to identify organizations with budget.
The problem with existing tools
ProPublica Nonprofit Explorer is free but limited. You can search by name or EIN, but you can't filter by revenue range, state, or NTEE code in a single query. Their API has strict rate limits and returns only summary data. If you need to pull 500 nonprofits in the health sector with revenue over $1M in California, you're doing it manually.
GuideStar/Candid has deeper data but charges $99-399/month depending on the tier. The API access tier is even more expensive. For a journalist, student, or small research team, this isn't practical.
IRS BMF directly is free but comes as bulk CSV files updated monthly. Parsing, filtering, and matching across files requires significant data engineering work.
A simpler approach
I built an IRS 990 Nonprofit Search actor on Apify that wraps the IRS BMF data in a clean search interface. You can search by:
- Keyword -- organization name
- State -- filter by any US state
- NTEE code -- narrow by sector (E = education, F = mental health, T = philanthropy, etc.)
- Revenue range -- find organizations above or below a threshold
Results come back as structured JSON with all the key fields: EIN, name, revenue, assets, ruling date, NTEE classification, address, and more. Export to CSV, Excel, or Google Sheets with one click.
No API key required. Pay only for the results you use.
Use cases
Journalism: Find the highest-paid nonprofit executives in a state, or identify organizations with revenue spikes that warrant investigation.
Grant making: Screen potential grantees by sector, size, and location before committing to deeper due diligence.
Sales/fundraising: Identify nonprofits with budget in a specific sector -- health nonprofits with $5M+ revenue in Texas, education organizations in New York, etc.
Academic research: Build datasets of nonprofits by sector, geography, and size for quantitative analysis without manual data collection.
Combining with other data sources
Nonprofit research rarely stops at 990 data. If you're building a complete picture, you might also want:
- SEC EDGAR filings -- check if the nonprofit's related entities have SEC filings
- USAspending federal grants -- see what federal funding the organization receives
- CFPB consumer complaints -- relevant for financial nonprofits and consumer advocacy orgs
All of these are free public data sources with ready-to-use Apify actors.
Getting started
- Go to the IRS 990 Nonprofit Search actor
- Enter a search term, state, or NTEE code
- Click "Start" -- results are typically ready in under 30 seconds
- Export to CSV, JSON, or connect via API for automated workflows
The data updates as the IRS releases new BMF files. No scraping involved -- this is structured API data from official government sources.
Top comments (0)