US Nonprofit Data — EIN, Revenue & Form 990 Financials avatar

US Nonprofit Data — EIN, Revenue & Form 990 Financials

Pricing

$4.00 / 1,000 company records

Go to Apify Store
US Nonprofit Data — EIN, Revenue & Form 990 Financials

US Nonprofit Data — EIN, Revenue & Form 990 Financials

Look up US nonprofits and charities by name, EIN or state. Returns EIN, legal name, NTEE classification, 501(c) subsection, address, and the revenue, expenses and total assets filed on their most recent Form 990.

Pricing

$4.00 / 1,000 company records

Rating

0.0

(0)

Developer

Berkan Kaplan

Berkan Kaplan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

US Nonprofit Data — EIN, Revenue & Form 990 Financials 💙

foXLabs nonprofit & funding series: UK charities · Canadian charities · NIH grants · NSF awards · Research organizations (ROR)

🎉 Look up any US nonprofit by name or EIN and get its IRS identity plus the Form 990 financials — revenue, expenses, assets and liabilities — as clean rows. No key, no login. Built for nonprofit-sector sales, grant researchers, and anyone sizing an organization before they approach it.

🔍 What is this Actor — and when should you use it?

Every US tax-exempt organization files a Form 990, and those filings are public. This Actor searches the IRS exempt-organization record (through ProPublica's Nonprofit Explorer) by name or EIN and returns one row per organization: legal identity, 501(c) subsection, full address, ruling year, how many filings exist — and the headline financials from the most recent filing.

Use it when you need: to qualify a nonprofit by budget size before a sales call; a list of organizations in one state; the EIN for a grant application or a CRM record; or the revenue and asset base behind a foundation.

Use something else when: the charity is not American — use UK charities or Canadian charities. For research funding rather than organizational finances, use the NIH and NSF Actors.

🤖 Use with AI agents

Already on the Apify MCP server? Ask for this Actor by name: foxlabs/us-nonprofit-data.

Your agent can pay for its own runs. This Actor is pay-per-event with agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — no Apify account or API token of its own. Billing is the same either way: per delivered organization row.

Otherwise paste this into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

Run the Apify actor foxlabs/us-nonprofit-data with
{"queries":["American Red Cross","530196605"],"maxResultsPerQuery":10}
and tell me their revenue and total assets.

📋 Overview

SourceIRS Form 990 via ProPublica Nonprofit Explorer
CoverageUS tax-exempt organizations (501(c) filers)
Auth neededNone. No API key, no login, no proxy required
RowOne nonprofit organization
Measured run15 rows in 3.3 s for 3 queries (2026-09-20, build 0.1.8)
Pricing$0.004 per delivered row — $4 per 1,000

✨ Features

  • 🔎 Name or EIN in the same field — mixed lists work
  • 💵 Form 990 financials — revenue, expenses, total assets, total liabilities
  • 🏷️ 501(c) subsection rendered the way people write it (501(c)(3))
  • 📮 Full address with city, state and ZIP on every row
  • 📅 Ruling year and filing count — how long the organization has been exempt and how deep its history goes
  • 🗺️ State filter for building regional lists
  • Key-free and fast — 15 rows in about 3 seconds, no proxy

🎬 Quick Start

curl -X POST "https://api.apify.com/v2/acts/foxlabs~us-nonprofit-data/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["American Red Cross","Khan Academy","530196605"],"maxResultsPerQuery":10}'

🚀 Getting Started (3 steps)

  1. Put names or EINs into queries. Both forms work; the default run mixes them.
  2. Add a state if you want a regional list. state takes a two-letter code.
  3. Run it. Rows arrive in the dataset; export to CSV/JSON/Excel or read them over the API.

📥 Input

FieldTypeDefaultDescription
queriesarray["American Red Cross","Khan Academy","530196605"]Nonprofit names or 9-digit EINs
statestring"" (all)Two-letter state code to restrict results
maxResultsPerQueryinteger10Cap on organizations returned per query
maxConcurrencyinteger4Parallel requests
requestDelayMsinteger0Optional pause between requests
includeRawbooleanfalseAttach the untouched source record to each row
proxyConfigurationobjectproxy offThe source answers direct requests; enable only if you need it

Example — exact lookup by EIN:

{ "queries": ["530196605", "141683211"], "maxResultsPerQuery": 1 }

Example — regional list:

{ "queries": ["food bank"], "state": "TX", "maxResultsPerQuery": 50 }

📤 Output

One row per organization. Fill rates below are from the measured run (15 rows, 3 queries, 2026-09-20):

FieldTypeFillDescription
companyNamestring100%Organization name as filed
registrationNumberstring100%EIN, formatted 53-0196605
legalFormstring100%501(c) subsection, e.g. 501(c)(3)
statusstring100%Exempt status
addressstring100%Full address line
city / state / postalCodestring100%Location
countryNamestring100%Always United States
rulingYearnumber100%Year the IRS granted exemption
filingCountnumber100%Number of Form 990 filings on record
revenuenumber80%Total revenue from the most recent filing
totalAssetsnumber80%Total assets from the most recent filing
industryCodestring80%NTEE classification code
expensesnumber53%Total expenses, where the filing reports them
totalLiabilitiesnumber53%Total liabilities, where reported
fiscalYearnumber53%Fiscal year of the financials
formTypestring53%Which 990 variant was filed (990, 990-EZ, 990-PF)
careOfNamestring53%"Care of" contact name on the filing, where present
sourceUrlstring100%Nonprofit Explorer page for the organization
country / registry / query / scrapedAtstring100%Provenance fields
industrystring0%The source publishes a numeric NTEE code but no industry label — use industryCode; this column stayed empty on every measured row

Why the financial fields are not at 100%: small organizations file the short 990-EZ or 990-N, which carry fewer figures, and the newest filings are sometimes indexed before their financial detail lands. filingCount tells you how much history exists for an organization.

Columns the source does not publish at all (tax number, incorporation and dissolution dates, headcount, capital, website, e-mail, phone, officers) were removed rather than shipped permanently empty.

A real row from the default run:

{
"companyName": "American National Red Cross",
"registrationNumber": "53-0196605",
"legalForm": "501(c)(3)",
"address": "431 18TH ST NW, Washington, DC, 20006-5310",
"city": "Washington",
"state": "DC",
"postalCode": "20006-5310",
"industryCode": "P210",
"revenue": 3217077611,
"totalAssets": 4028321133,
"sourceUrl": "https://projects.propublica.org/nonprofits/organizations/530196605"
}

💼 Use cases

  • Qualify before you call — revenue and assets tell you whether an organization can afford your product
  • Territory lists — filter by state to build a regional nonprofit prospect list
  • Grant research — profile foundations by asset base before applying
  • CRM enrichment — attach EIN, subsection and address to existing nonprofit records
  • Sector analysis — group organizations by NTEE code and compare revenue bands

🔗 Integration

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('foxlabs/us-nonprofit-data').call({
queries: ['American Red Cross'], maxResultsPerQuery: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("foxlabs/us-nonprofit-data").call(
run_input={"queries": ["American Red Cross"], "maxResultsPerQuery": 10}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items

No-code: Make, n8n and Zapier reach this Actor through the Apify app — schedule it and push nonprofits into a CRM or a sheet.

📊 Pricing

Pay-per-event: company-record — $0.004 per delivered row ($4 per 1,000). Compute and traffic are included; you pay for rows, not run time. Rows without an organization name are not charged.

View current pricing.

❓ FAQ

Do I need an API key? No. The IRS exempt-organization record is public and this Actor needs no key, login or proxy.

Can I look up by EIN? Yes — put the 9-digit EIN in queries, with or without the dash.

How current are the financials? They come from the most recent Form 990 on record. Nonprofits file annually and the IRS publishes with a lag, so the newest year is usually one to two years behind.

Why does an organization show no revenue? It most likely filed a 990-EZ or 990-N, which carry less financial detail. filingCount shows how many filings exist.

Does it include officer compensation? No. This Actor returns organization-level identity and headline financials, not the schedules.

Can I get every nonprofit in a state? Search a broad term with state set and raise maxResultsPerQuery; the source paginates search results rather than dumping the full register.

🐛 Troubleshooting

A name returns the wrong organization. Nonprofits often share names across states. Search the EIN for an exact match, or add state.

Fewer rows than expected. maxResultsPerQuery caps per query — raise it, or split queries across runs.

Financial fields are empty for small charities. Expected: the short filing forms do not carry those figures. Use filingCount and rulingYear to judge organization maturity instead.

⚠️ Trademark

The IRS is a US federal agency and ProPublica's Nonprofit Explorer is an independent journalism project. This Actor is not affiliated with or endorsed by either, and reads only publicly published exempt-organization filings.

Form 990 filings are public by law — Congress made them disclosable precisely so donors and the public can see how tax-exempt organizations use their money. The rows this Actor returns are organizational records and financial totals, not personal data. You remain responsible for how you use the output.

🤝 Support & contact

Questions, a field you need, or a bug: info@foxlabs.com.tr — or open an issue on the Actor's Apify page.

Changelog

0.1.8

  • Removed permanently-empty columns (tax number, status detail, incorporation and dissolution dates, headcount, capital, website, e-mail, phone, officers) — the source does not publish them. Row went from 35 columns to 25.

0.1

  • IRS exempt-organization search by name or EIN, enriched with the most recent Form 990 filing.
  • Pay-per-event billing on delivered rows (company-record).