Nonprofit & IRS 990 Scraper - Charities, Officers & Leads avatar

Nonprofit & IRS 990 Scraper - Charities, Officers & Leads

Pricing

from $5.00 / 1,000 nonprofit organization records

Go to Apify Store
Nonprofit & IRS 990 Scraper - Charities, Officers & Leads

Nonprofit & IRS 990 Scraper - Charities, Officers & Leads

Scrape U.S. nonprofits & IRS Form 990 data: name, EIN, address, NTEE category, 501(c) status, multi-year revenue/expenses/assets, officers & key-employee compensation, and a lead score. Filter by state, category, subsection & revenue. B2B leads + monitoring. No browser.

Pricing

from $5.00 / 1,000 nonprofit organization records

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Nonprofit & IRS 990 Scraper — Charities, Officers & B2B Leads

Turn the IRS's digitized Form 990 filings into ready-to-use nonprofit leads and organization intelligence. This actor extracts every U.S. tax-exempt organization you search for — the name, EIN, full address, NTEE category, 501(c) subsection & foundation type, multi-year financials (revenue, expenses, assets, liabilities, net assets, contributions, program revenue, investment income), and the Key Employees & Officers from the latest 990 with their titles and compensation — then scores each one as a lead.

A nonprofit with a real budget is a real buyer: it purchases software (CRM/fundraising/accounting/HR), insurance (D&O, liability, benefits), banking & investment services, audits, consulting, events, marketing, and more. Its officers and directors are the decision-makers — and this actor gives you their names and roles.

No login, no API key, no browser — data comes straight from ProPublica's Nonprofit Explorer (digitized IRS Form 990 data), so it never breaks on anti-bot walls.

Why this nonprofit scraper?

Most "nonprofit" lists are thin name-and-EIN dumps. This actor ships the richest, most filterable record in the category:

DataTypical listsThis actor
Name, EIN, full addresspartial
NTEE category + 501(c) subsection (human-readable)code only
Public charity vs private foundation
Latest revenue, expenses & surplus/deficitsometimes
Total assets, liabilities & net assets
Contributions, program revenue & investment income
Multi-year financial history + revenue trend
Officers & key employees — names, titles, compensation
Filing PDFs (links to every digitized 990)
Revenue tier + lead score (0–100)
Filter by state, city, ZIP, NTEE, subsection, revenue & assets
Monitoring mode — only new / newly-filed orgs since last run

Use cases

  • Lead generation — find nonprofits by state, category, subsection, and budget, then reach the named officers (Executive Director, CFO, Development Director…). Proven buyers for fundraising/CRM software, accounting & audit, insurance, banking, payroll/HR, IT, and events. Sort by leadScore and work the biggest, best-resourced, most active first.
  • Fundraising & grant prospecting — target private foundations (organizationKind = privateFoundation) and large public charities; size them by assets and giving capacity.
  • Financial & investment services — filter by minAssets to find endowed organizations and foundations that need investment management, banking, and treasury services.
  • Market research & sector analysis — analyze the nonprofit sector by NTEE category, geography, revenue size, and multi-year financial trend.
  • CRM enrichment & territory planning — pull org lists by ZIP/state to build call lists, size territories, and append financials and decision-makers to existing accounts.
  • Monitoring new filings — run on a schedule with monitoring mode to capture organizations that are new — or that just filed a fresh 990 — since your last run.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the Nonprofit & IRS 990 Scraper, enter search terms and/or filters (state, NTEE category, subsection, min revenue…), then click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, or XML — or pull results programmatically via the Apify API.

Input

{
"mode": "search",
"searchTerms": ["community foundation"],
"states": ["CA", "NY"],
"nteeMajorGroups": ["7"],
"only501c3": true,
"minRevenue": 1000000,
"includeOfficers": true,
"maxResults": 200,
"monitorMode": false
}
  • modesearch (discover by keyword/filters) or organizations (look up specific orgs by EIN).
  • searchTerms — keywords matched against organization names & purposes (e.g. food bank, private school, animal rescue). Each term runs as a separate search; leave empty to browse purely by filters.
  • eins / startUrls — exact EINs (53-0196605) or ProPublica URLs (organization or search pages), auto-routed.
  • states / cities / zipCodes — location filters (USPS state codes, exact city names, full-or-prefix ZIPs).
  • nteeMajorGroups — broad NTEE category (Arts, Education, Environment & Animals, Health, Human Services, International, Public/Societal Benefit, Religion, Mutual/Membership, Unknown).
  • nteeCodePrefixes — finer NTEE code prefixes per record (e.g. B education, E health, T foundations, A6 museums).
  • subsectionCodes / only501c3 / organizationKind — filter by 501(c) subsection, restrict to 501(c)(3), or split public charities vs private foundations.
  • nameQuery — substring filter on the organization name.
  • minRevenue / maxRevenue / minAssets / minOfficerCompensation — qualify leads by budget and staffing.
  • withOfficersOnly — keep only orgs that report named officers (decision-maker contacts).
  • activeOnly — only IRS-active tax-exempt organizations.
  • includeOfficers (default true) — extract officers, titles & compensation from the latest 990 (the lead wedge). Turn off for faster/cheaper financials-only runs.
  • maxResults (default 200) / maxConcurrency (default 5) — size and speed.
  • monitorMode / monitorKey — emit only orgs that are new or newly-filed since the last run; use a distinct key per saved watch.

Output

One record per organization (recordType: "nonprofit"):

{
"recordType": "nonprofit",
"ein": "83-0287513",
"name": "Wyoming Community Foundation",
"fullAddress": "1472 N 5th St Ste 201, Laramie, WY, 82072",
"city": "Laramie",
"state": "WY",
"nteeCode": "T310",
"nteeCategory": "Philanthropy, Voluntarism & Grantmaking Foundations",
"nteeMajorGroup": "Public & Societal Benefit",
"subsectionCode": 3,
"subsection": "Charitable / religious / educational (501(c)(3))",
"is501c3": true,
"foundationType": "Publicly supported 170(b)(1)(A)(vi)",
"isPrivateFoundation": false,
"exemptStatus": "Active (unconditional exemption)",
"isActive": true,
"rulingYear": 1989,
"latestFiscalYear": 2023,
"revenue": 22988814,
"expenses": 18650122,
"surplusOrDeficit": 4338692,
"totalAssets": 214358745,
"totalLiabilities": 9120044,
"netAssets": 205238701,
"contributions": 14210333,
"programServiceRevenue": 0,
"investmentIncome": 8120455,
"revenueTier": "very large ($10M–50M)",
"revenueTrend": "growing",
"financials": [
{ "fiscalYear": 2023, "revenue": 22988814, "expenses": 18650122, "totalAssets": 214358745, "netAssets": 205238701 }
],
"filingsCount": 11,
"yearsCovered": "2012–2023",
"officers": [
{ "name": "Samin Dadelahi", "title": "President & CEO", "compensation": 221011, "relatedCompensation": 0, "otherCompensation": 18420 }
],
"officerCount": 23,
"topOfficerName": "Samin Dadelahi",
"topOfficerTitle": "President & CEO",
"topOfficerCompensation": 221011,
"latestFilingPdfUrl": "https://projects.propublica.org/nonprofits/download-filing?path=...",
"filingPdfUrls": ["https://projects.propublica.org/nonprofits/download-filing?path=..."],
"profileUrl": "https://projects.propublica.org/nonprofits/organizations/830287513",
"leadScore": 92,
"scrapedAt": "2026-06-20T03:30:00.000Z"
}

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

  • Apify API — start runs, fetch datasets, and manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python — official SDKs.
  • Schedules — run it weekly/monthly with monitoring mode to capture only new or newly-filed organizations as fresh leads.
  • Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/nonprofit-990-scraper').call({
mode: 'search',
searchTerms: ['community foundation'],
states: ['CA'],
minRevenue: 1000000,
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} nonprofit leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new nonprofit leads straight into your CRM.
  • Slack — get notified when a monitored watch finds new organizations.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find California environmental nonprofits with over $1M revenue and list their executive directors" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete U.S. B2B & government-data lead stack:

Tips

  • Reach the people, not just the org. Keep includeOfficers on — the officer names, titles, and compensation are what turn a filing into a workable lead.
  • Qualify by budget. Use minRevenue / minAssets to focus on well-resourced organizations, and sort by leadScore.
  • Target a category fast. Combine nteeMajorGroups (e.g. Health, Education) with nteeCodePrefixes (e.g. T for foundations) and states.
  • Grantmakers vs operators. Set organizationKind to privateFoundation to find funders, or publicCharity for operating nonprofits.
  • Recurring monitoring. Combine Schedules with monitorMode and a distinct monitorKey per saved watch.

FAQ

Where does the data come from? ProPublica's Nonprofit Explorer, which digitizes the IRS's released Form 990 data (2.2M+ tax-exempt organizations, filings back to 2001). This actor searches, fetches, parses, normalizes, and scores it.

How fresh is it? The IRS releases digitized 990 data on a rolling basis and ProPublica updates continuously. Each record includes latestFiscalYear and dataUpdatedAt so you always know the vintage. Run with monitorMode on a schedule to capture new and newly-filed organizations automatically.

Is there phone/email? Form 990 data is firmographic and financial: organization name, full mailing address, financials, and the named officers (decision-makers). It does not include direct phone or email — those are easy to append with an email/phone enrichment tool or your CRM using the org name, address, and officer names provided.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

How much does a run cost? You pay per organization record returned (no start fee) — a lower price for the financial record and a little more when officers are included. A few hundred filtered leads costs only a few cents of platform compute plus the per-record price.

Is this legal? This actor collects publicly available IRS Form 990 data (republished by ProPublica). You are responsible for using the data in compliance with applicable laws and the source's terms.

A field is null — why? Some organizations genuinely don't report a value (e.g. very small 990-N/990-EZ filers have no officer table or extracted financials). Fields are null only when the source doesn't provide them.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.