IRS Nonprofit 990 Financials and Health Score API avatar

IRS Nonprofit 990 Financials and Health Score API

Pricing

from $1.90 / 1,000 nonprofit organization rows

Go to Apify Store
IRS Nonprofit 990 Financials and Health Score API

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

Detroit Web Agent - Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

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:

FieldMeaning
ein, name, city, stateIdentity and location of the organization.
nteeCode, subsectionNTEE activity code and tax-exempt type, for example 501(c)(3) charitable.
rulingDate, taxPeriod, filingYearIRS ruling date, latest tax period and the filing year the numbers come from.
totalRevenue, totalExpenses, netAssets, totalAssets, totalLiabilitiesFigures from the latest Form 990 with data, in US dollars.
officerCompensationTotalTotal compensation of current officers, directors and trustees as one organization-level number.
expenseRatioExpenses divided by revenue. Under 1 means a surplus, over 1 a deficit.
revenueGrowthPctRevenue change against the previous filing on record.
healthScore, healthBand0 to 100 score and a band: strong (70+), stable (45 to 69), watch (under 45).
propublicaUrl, filingPdfUrl, scrapedAtSource 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

FieldWhat it does
queryWords to find in organization names, for example food, youth or animal rescue.
stateTwo-letter US state code such as MI. Empty means all states.
nteeCategoryBroad NTEE category 1 to 10 (arts, education, environment, health, human services, international, public benefit, religion, mutual benefit, unknown). Empty means any.
einsOptional list of EINs to look up directly. When filled, the search fields are ignored.
includeFinancialsOn by default. Turn off for a fast list of names without financials.
maxItemsStop 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

  1. Open the Actor and press Try for free (a free Apify account is enough).
  2. Keep the prefilled search (food-related human-services nonprofits in Michigan) and press Start.
  3. 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.

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.