Nonprofit Search & IRS Form 990 Financials API (ProPublica) avatar

Nonprofit Search & IRS Form 990 Financials API (ProPublica)

Pricing

from $4.00 / 1,000 organization founds

Go to Apify Store
Nonprofit Search & IRS Form 990 Financials API (ProPublica)

Nonprofit Search & IRS Form 990 Financials API (ProPublica)

Returns US tax-exempt organizations (1.8M+) by name, state, cause or EIN, with IRS Form 990 financials per year (revenue, expenses, assets, officer pay, PDF links) from the ProPublica Nonprofit Explorer API. For fundraisers, grant makers and researchers.

Pricing

from $4.00 / 1,000 organization founds

Rating

0.0

(0)

Developer

lathewright LLC

lathewright LLC

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Search US tax-exempt organizations and pull their IRS Form 990 financials, for fundraisers, grant makers, journalists, researchers and AI agents. It costs $0.004 per organization and $0.01 more when financials are included, so 100 organizations with financials cost $1.40.

Search 1.8 million US tax-exempt organizations by name, state, cause (NTEE) and 501(c) subsection, or look up EINs directly, and get each organization's IRS Form 990 financials for the years you need: total revenue, expenses, assets, liabilities, contributions, program revenue, officer compensation, net assets and a link to the filed PDF. Data is the IRS Business Master File and e-filed 990s, served through ProPublica's free Nonprofit Explorer API.

Built and maintained by Lathewright. Lathewright is operated by AI systems under human ownership. A person reviews and approves everything we publish, send and sell. $0.004 per organization, $0.01 extra with financials.

Who uses it

  • Fundraisers and grant writers: size up foundations and peer organizations (revenue, assets, grants paid) before applying or benchmarking.
  • Sales to nonprofits: build lists of organizations by cause and state with budget data attached.
  • Journalists and researchers: pull multi-year financial trends for a watchlist of EINs.
  • AI agents: "How big is the Yolo Food Bank and what did it spend last year?" in one call.

Example tasks

Paste any of these into the Input tab, or send the same JSON through the API. Prices are the per-result prices listed under Pricing.

1. Food banks in Texas, no financials

{
"mode": "search",
"query": "food bank",
"state": "TX",
"includeFinancials": false,
"maxResults": 25
}

What comes back: One row per organization with name, ein, city, state, nteeCode, latestRevenue and propublicaUrl. Up to 25 rows, at most $0.10.

2. Three years of financials for one EIN

{
"mode": "lookup",
"eins": ["13-1644147"],
"includeFinancials": true,
"filingYears": 3
}

What comes back: The organization row with a filings list of up to three years. $0.004 plus $0.01.

3. Texas animal rescues that are 501(c)(3) charities

{
"mode": "search",
"query": "animal rescue",
"state": "TX",
"subsectionCode": 3,
"includeFinancials": true,
"filingYears": 2,
"maxResults": 10
}

What comes back: Up to 10 organizations, each with two years of filings.

Input

FieldTypeNotes
modesearch or lookup
querystringName or keyword (search mode)
statestringTwo-letter state code
nteeCategory1 to 101 Arts, 2 Education, 3 Environment/Animals, 4 Health, 5 Human Services, 6 International, 7 Public Benefit, 8 Religion, 9 Mutual Benefit, 10 Unknown
subsectionCodeinteger3 = 501(c)(3), 4 = 501(c)(4), 6 = 501(c)(6)…
einsarrayEINs for lookup mode
includeFinancialsbooleanAdd Form 990 data (default true)
filingYearsintegerRecent filings per organization (default 3)
maxResultsintegerCap on organizations
{ "mode": "search", "query": "food bank", "state": "CA", "nteeCategory": 5, "subsectionCode": 3, "includeFinancials": true, "filingYears": 3, "maxResults": 100 }

Output

{
"ein": "23-7111782",
"name": "Yolo Food Bank",
"city": "Woodland",
"state": "CA",
"zip": "95776-0000",
"nteeCode": "K31Z",
"subsectionCode": 3,
"rulingDate": "1971-06-01",
"latestTaxPeriod": "2023-06",
"latestRevenue": 23338085,
"latestExpenses": 23350748,
"latestAssets": 19376488,
"latestLiabilities": 8588506,
"filings": [
{
"taxPeriod": "2023-06", "taxYear": 2023, "formType": "990",
"totalRevenue": 23338085, "totalExpenses": 23350748, "totalAssetsEnd": 19376488, "totalLiabilitiesEnd": 8588506,
"contributionsAndGrants": 22785337, "programServiceRevenue": 277401, "investmentIncome": 177392,
"officerCompensation": 103333, "otherSalaries": 2664449, "netAssetsEnd": 10787982,
"pdfUrl": "https://projects.propublica.org/nonprofits/download-filing?path=IRS%2F237111782_202306_990_2024040522345095.pdf"
}
],
"propublicaUrl": "https://projects.propublica.org/nonprofits/organizations/237111782"
}

Pricing

EventPriceNotes
Organization found (organization)$0.004Primary event
Form 990 financials added (organization-financials)$0.01Only with includeFinancials and when filings exist

Plus Apify's start fee ($0.00005). 100 organizations with financials = $1.40.

How to use it

  • Console: fill in the form, Start, export CSV/JSON/Excel.
  • API: POST https://api.apify.com/v2/acts/lathewright~nonprofit-990-lookup/run-sync-get-dataset-items?token=<token>
  • n8n / Make / Zapier: Apify node → enrich a sheet of EINs or build prospect lists by cause and state.

Use from an AI agent (MCP)

Add this Actor as a tool in Claude, Cursor, VS Code or any MCP client with https://mcp.apify.com/?tools=lathewright/nonprofit-990-lookup. The Actor description is the tool description, and the input fields above are the tool parameters. Example prompts: "Find 501(c)(3) animal rescues in Texas with revenue over $1M", "Pull three years of financials for EIN 13-1644147".

Data source and fair use

IRS Exempt Organizations Business Master File and Form 990 e-file extracts, served by ProPublica's Nonprofit Explorer API (free, no key). The Actor sends at most two to three requests per second. Officer names and "care of" names are deliberately not included; only organization-level data is returned. Form 990s are public records by law.

FAQ

Why are financials missing for some organizations? Small organizations file the 990-N postcard (no financial data), churches do not file, and new filings take months to be processed.

What is the difference between latestRevenue and filings[0].totalRevenue? They are the same number; the latest* fields exist so flat CSV exports and agents can read them without digging into the array.