IRS Nonprofit 990 Financials and Health Score API
Pricing
from $1.90 / 1,000 nonprofit organization rows
IRS Nonprofit 990 Financials and Health Score API
Search IRS tax-exempt organizations and get Form 990 financials: revenue, expenses, net assets, officer compensation total and a financial-health score. Uses the free ProPublica Nonprofit Explorer API. No login.
Pricing
from $1.90 / 1,000 nonprofit organization rows
Rating
0.0
(0)
Developer
Detroit Web Agent - Open Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
IRS Nonprofit 990 Financials and Health Score
IRS Form 990 nonprofit financials from the ProPublica Nonprofit Explorer API: search US tax-exempt organizations by keyword, state and NTEE category and get revenue, expenses, net assets, officer compensation total, revenue growth and a 0-100 financial-health score, one row per organization.
Search US tax-exempt organizations and get their latest Form 990 numbers in one table. For every organization the actor returns the EIN, name, city and state, NTEE code, tax-exempt type, IRS ruling date, latest tax period, total revenue, total expenses, net assets, the organization-level officer compensation total and a simple financial-health score. It reads the free ProPublica Nonprofit Explorer API, which republishes IRS data. No login, no proxy, no API key.
What is IRS Nonprofit 990 Financials and Health Score?
Search IRS tax-exempt organizations and get Form 990 financials: revenue, expenses, net assets, officer compensation total and a financial-health score. Uses the free ProPublica Nonprofit Explorer API. No login. Run it from the Apify Console, the API or a schedule, and export the results as JSON, CSV, Excel or HTML.
Output
One row per organization:
| Field | Meaning |
|---|---|
ein, name, city, state | Identity and location of the organization. |
nteeCode, subsection | NTEE activity code and tax-exempt type, for example 501(c)(3) charitable. |
rulingDate, taxPeriod, filingYear | IRS ruling date, latest tax period and the filing year the numbers come from. |
totalRevenue, totalExpenses, netAssets, totalAssets, totalLiabilities | Figures from the latest Form 990 with data, in US dollars. |
officerCompensationTotal | Total compensation of current officers, directors and trustees as one organization-level number. |
expenseRatio | Expenses divided by revenue. Under 1 means a surplus, over 1 a deficit. |
revenueGrowthPct | Revenue change against the previous filing on record. |
healthScore, healthBand | 0 to 100 score and a band: strong (70+), stable (45 to 69), watch (under 45). |
propublicaUrl, filingPdfUrl, scrapedAt | Source page, the filing PDF where available, and the run time. |
Sample output
{"ein": "38-1359084","name": "Judson Center Inc","city": "Farmingtn Hls","state": "MI","nteeCode": "P700","subsection": "501(c)(3) charitable","rulingDate": "1945-08-01","filingYear": 2023,"totalRevenue": 21090731,"totalExpenses": 22587062,"netAssets": 11557468,"expenseRatio": 1.071,"healthScore": 52,"healthBand": "stable"}
Input
| Field | What it does |
|---|---|
query | Words to find in organization names, for example food, youth or animal rescue. |
state | Two-letter US state code such as MI. Empty means all states. |
nteeCategory | Broad NTEE category 1 to 10 (arts, education, environment, health, human services, international, public benefit, religion, mutual benefit, unknown). Empty means any. |
eins | Optional list of EINs to look up directly. When filled, the search fields are ignored. |
includeFinancials | On by default. Turn off for a fast list of names without financials. |
maxItems | Stop after this many organizations (default 30, up to 500). |
Sample input:
{"query": "youth","state": "OH","nteeCategory": "5","maxItems": 50}
Pricing
Pay per event. You pay a small fixed amount per organization row delivered, listed on the Pricing tab, plus a tiny start fee per run. Organizations that cannot be found are never charged, and you can set a maximum cost per run in the run options.
What does this Actor do?
It runs a search on ProPublica Nonprofit Explorer (keywords, state and broad category), then opens each organization's record and reads its filings. The newest filing with financial data gives the revenue, expense and balance-sheet figures. The filing before it is used to work out revenue growth. The result is one row per organization, ready for a spreadsheet, a CRM or an n8n, Make or Zapier workflow.
Only organization-level data is collected. The actor does not read or output the names or addresses of individual people, and the officer compensation field is a single total for the whole organization, as reported on the Form 990.
Run in 30 seconds
- Open the Actor and press Try for free (a free Apify account is enough).
- Keep the prefilled search (food-related human-services nonprofits in Michigan) and press Start.
- Open the Output tab. Use the table view or download CSV, Excel or JSON.
Use cases
- Screen charities before a donation or grant: look at expense ratio, reserves and revenue trend side by side.
- Build a prospect list of nonprofits in a state and category, ranked by revenue, for fundraising software, accounting or consulting outreach.
- Monitor organizations you fund or partner with and flag any whose health band drops to watch.
- Feed rows into an n8n, Make or Zapier workflow that adds new organizations to a CRM and alerts you on deficits.
- Research a sector for journalism, academic work or a market report using real IRS-sourced figures.
How the health score works
The score is a fixed formula, so the same filings always give the same number. Up to 40 points for the operating surplus (a 10 percent deficit scores zero, a 10 percent surplus scores full marks), up to 30 points for revenue growth against the previous filing (minus 20 percent to plus 20 percent), and up to 30 points for reserves (net assets measured in months of expenses, full marks at six months). When there is no earlier filing, the growth part gets a neutral 15 points. It is a quick screening aid, not an audit or a rating.
Limits
- Search results come from ProPublica's own index and may differ slightly from the IRS site.
- The actor reads one organization at a time with a short pause between requests, so 30 organizations take about a minute.
- Private foundations file a different form (990-PF) and may show fewer of these fields.
- Financial figures are as filed and are not audited or corrected by this actor.
Related Actors
- Developer Signals tracks public developer activity signals for companies.
- Website Tech Stack detects which technologies a website runs on.
- Sitemap Link Inventory lists every URL a site publishes in its sitemaps.
Found a bug or need a field? Open an issue on the Issues tab with the run URL.
FAQ
Where does the data come from? From the ProPublica Nonprofit Explorer API, which republishes IRS Business Master File and Form 990 extract data. The actor adds no data of its own.
Why is an organization missing financials? Small organizations may file a postcard (990-N) with no revenue figures, and new ones may not have filed yet. Those rows keep the identity fields and leave the financial fields empty.
How current are the numbers?
They reflect the newest filing ProPublica has processed, which is usually one to two years behind the calendar. The taxPeriod and filingYear fields tell you exactly which period each row covers.
Does it list individual officers or salaries? No. Only the organization-level compensation total is returned.
This Actor vs pink_comic/irs-990-nonprofit-search: that one is the most-used 990 search and links source pages and filing PDFs for charity KYB and grant prospecting. This one adds analysis on top of the numbers: expense ratio, revenue growth against the previous filing and a 0-100 health score with a strong, stable or watch band.
More from DWA Open Data
Browse all 69 data Actors, with live prices and sample output, at open-data-actors.pages.dev.
Feedback: if this Actor was useful, or if it fell short, an honest review on the Reviews tab helps other users decide. Problems or feature requests: please open an Issue and we usually reply within one business day.
Changelog
- 2026-10-22: Initial release.
- 2026-10-25: Documentation updated: README refreshed.
- 2026-10-25: Pricing update announced, effective 2026-10-25: Price cut to stay the lowest on the Store.
- 2026-10-25: Listing refresh: new Store icon, README reorganised (overview, data fields, pricing, FAQ) and changelog tab added. No code change.