Nonprofit Lookup — US Charity Search & 990 Financials avatar

Nonprofit Lookup — US Charity Search & 990 Financials

Pricing

$4.00 / 1,000 results

Go to Apify Store
Nonprofit Lookup — US Charity Search & 990 Financials

Nonprofit Lookup — US Charity Search & 990 Financials

Searches US nonprofits and retrieves their latest available Form 990 financials.

Pricing

$4.00 / 1,000 results

Rating

0.0

(0)

Developer

Nick

Nick

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Nonprofit Lookup — US Charity Search, EIN & Form 990 Data

Search US nonprofits by name and state, or look one up by EIN, and get the latest Form 990 financials attached — revenue, expenses, assets, officer compensation and a link to the filing PDF. IRS data through the ProPublica Nonprofit Explorer API. No key, no login.

What does this Actor do?

There are two separate questions people ask about a charity: does this organization exist and who is it, and what do its finances look like. ProPublica's Nonprofit Explorer answers them at two different endpoints — a search index that returns identity only, and a per-organization endpoint that returns the filing history.

This Actor joins them. You search by name; it takes each match, calls the organization endpoint, walks the filings that actually contain data, picks the one with the newest tax period year, and attaches those financials to the identity record. One row per organization, with the money already on it.

The joining is optional and costed accordingly: set includeFinancials: false and you get identity records with the financial fields null and no per-organization calls at all, which is much faster when you only need to resolve names to EINs.

If one organization's detail call fails, that organization is still emitted with whatever identity data the search returned, and the failure is recorded as a diagnostic. One bad EIN never sinks a batch.

Who is it for?

  • Donors and family offices doing due diligence before giving.
  • Grant writers and development teams sizing a peer organization or a potential funder.
  • Journalists and researchers pulling structured 990 figures instead of reading PDFs.
  • B2B vetting and compliance teams confirming a counterparty's nonprofit status and scale.
  • AI agent builders who want a charity-lookup tool with a stable output schema.

Use cases

  • Check a charity's revenue, expenses and officer compensation before making a donation.
  • Resolve a list of organization names to EINs for a CRM or grants database.
  • Compare peer nonprofits in one state by total revenue and assets.
  • Pull the Form 990 PDF link for an organization you need to read in full.
  • Pair it with a grants feed: find who funds an area, then look up the funders' financials.
  • Give an agent a tool that answers "how big is this charity, and what did it report?"

What you get

One row per organization. Any value the source does not publish is null — the field is always present, and the untouched source record stays in raw.

FieldTypeDescription
einstringEmployer Identification Number, formatted XX-XXXXXXX
namestringOrganization name as filed with the IRS
citystringCity
statestringTwo-letter state code
nteeCodestringNTEE code classifying the organization's activity
subsectionCodestringIRS subsection code, e.g. 3 for a 501(c)(3)
latestFilingYearintegerTax period year of the newest filing that contained data
totalRevenueintegerTotal revenue reported on that filing, in USD
totalExpensesintegerTotal functional expenses reported on that filing, in USD
totalAssetsintegerTotal assets at end of year on that filing, in USD
officerCompensationintegerCompensation of current officers reported on that filing, in USD
form990PdfUrlstringLink to the PDF of that Form 990 filing
propublicaUrlstringLink to the organization's page on ProPublica Nonprofit Explorer
rawobjectThe complete original organization record, unmodified
retrievedAtstringISO 8601 timestamp of when this row was fetched

All six financial fields are null together when includeFinancials is false, or when an organization has no filing that contains data.

Sample output record

{
"ein": "53-0196605",
"name": "AMERICAN NATIONAL RED CROSS",
"city": "WASHINGTON",
"state": "DC",
"nteeCode": "P20",
"subsectionCode": "3",
"latestFilingYear": 2024,
"totalRevenue": 3821000000,
"totalExpenses": 3654000000,
"totalAssets": 4102000000,
"officerCompensation": 6284119,
"form990PdfUrl": "https://projects.propublica.org/nonprofits/download-filing?path=…",
"propublicaUrl": "https://projects.propublica.org/nonprofits/organizations/530196605",
"raw": { "ein": 530196605, "…": "…" },
"retrievedAt": "2026-08-23T10:44:52.019Z"
}

How to use it

Search by name and state

{
"mode": "search",
"query": "red cross",
"state": "DC",
"maxResults": 5
}

Look one up by EIN

The EIN is accepted with or without the dash.

{
"mode": "detail",
"ein": "53-0196605"
}

Resolve a batch of names, identity only

Turning financials off skips the per-organization call, which is much faster for a long list.

{
"mode": "search",
"queries": ["red cross", "habitat for humanity", "feeding america"],
"includeFinancials": false,
"maxResults": 50
}

Input parameters

InputTypeDescription
modestringsearch finds nonprofits by name; detail retrieves one by EIN. Default: search
einstringRequired for detail mode. Nine digits, with or without the dash
querystringOne organization name to search when queries is empty
queriesarrayOptional batch of names. When provided, this list is used instead of query
statestringOptional two-letter US state filter. Search mode only
includeFinancialsbooleanFetch the detail endpoint for each search result to attach financials. Default: true
maxResultsintegerMaximum records returned across the search (1–100). Default: 10

Honest limitations

  • This is a lookup, not a monitor. There is no watermark and no change feed — each run answers the query you gave it.
  • Search reads the first page of results per query. ProPublica paginates its search; this Actor requests one page per query, so a single broad name search returns roughly the first 25 matches, not every match. To go wider, pass several more specific names in queries — results are merged and de-duplicated by EIN.
  • includeFinancials: true costs one extra request per result, rate-limited to be a good citizen of a free public API. A 50-result run therefore takes a while. Turn it off when you only need identity.
  • "Latest" filing means latest available. Nonprofits file 990s months after their tax year ends and the IRS releases them later still, so latestFilingYear is routinely one to two years behind the present. Always read the figures against that year, not as current.
  • Filings without financial data are skipped when choosing the latest filing, so latestFilingYear can be older than the organization's most recent filing of any kind.
  • A detail miss is not a run failure. In search mode the un-enriched record is still emitted and a diagnostic is recorded. In detail mode, an EIN with no organization succeeds with zero dataset rows and a NOT_FOUND entry in RUN_SUMMARY.
  • Street address and ZIP are not normalized fields. Where the detail endpoint publishes them they are present inside raw.
  • US 501(c) organizations only, as covered by IRS filings. Foreign charities and organizations that do not file a 990 are not in this data.
  • Financial figures are as the organization reported them. They are not audited by this Actor, by ProPublica or by the IRS at the point of publication.

Reliability

Per-query and per-EIN diagnostics are written to the RUN_SUMMARY key-value record — never into your dataset. Failures carry structured reason codes. The Actor identifies itself and rate-limits its requests.

Every record carries retrievedAt, a propublicaUrl back to the source page and, where a filing was found, a form990PdfUrl to the filing itself — so you can check any row against the original 990.

Maintained against the upstream API. If ProPublica changes its schema or an endpoint moves, report it through the Issues tab and it gets fixed.

Integrations

Connect this Actor to Make, Zapier, n8n, Slack, Google Sheets, Airtable or any HTTP endpoint through Apify integrations. A run can push resolved organizations straight into a CRM or grants database, or fire a webhook when a batch completes. Datasets export as JSON, CSV, Excel, XML, RSS or HTML.

API usage

curl -X POST "https://api.apify.com/v2/acts/oneshotventure~nonprofit-lookup/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "search", "query": "red cross", "state": "DC", "maxResults": 5}'

Python, JavaScript, PHP and CLI clients are documented under Apify API clients.

Use with AI agents (MCP)

This Actor is callable from any MCP-compatible client — Claude, Cursor, VS Code or your own agent — through the Apify MCP server. The input schema is fully described and every record uses one stable, flat JSON shape, so an agent can call it and read the result without a parsing step. Because it reads IRS filing data through ProPublica's official API rather than a rendered page, the answer an agent gets is the same one the source publishes — and form990PdfUrl gives the agent the filing itself to fetch when the summary figures are not enough.

Factual filing data. Not financial, tax or charitable-giving advice.

Frequently asked questions

Is there a free Form 990 API?

Yes — ProPublica publishes the Nonprofit Explorer API over IRS Form 990 data, free and without a key. This Actor is the search-and-enrich layer that joins the identity search to the filing financials.

How do I look up a nonprofit by EIN?

Run in detail mode with the nine-digit number in ein, with or without the dash. An EIN with no matching organization returns zero rows and a NOT_FOUND diagnostic rather than failing the run.

How do I check a charity before donating?

Search by name, keep includeFinancials on, and read totalRevenue, totalExpenses, totalAssets and officerCompensation against latestFilingYear. Open form990PdfUrl for the full filing. This Actor reports what was filed; it does not rate or score charities.

How current are the financials?

They come from the newest filing that contains data, which is typically one to two tax years behind the present because of IRS filing and release timelines. latestFilingYear tells you exactly which year you are looking at.

What is an NTEE code?

The National Taxonomy of Exempt Entities code, which classifies what a nonprofit does — P20 for human services, B codes for education, and so on. It is returned on every record as nteeCode.

Why are the financial fields empty?

Either includeFinancials was set to false, or the organization has no filing on record that contains financial data. Both are normal.

Can I export the whole nonprofit database?

No, and please do not try. This Actor is a per-query lookup tool by design — see the data-source note below. Bulk IRS data is published separately by the IRS itself if that is what you need.

Does it cover charities outside the United States?

No. The data is IRS Form 990 filings, so coverage is US tax-exempt organizations only.

Data source and attribution

Data from the ProPublica Nonprofit Explorer API. This actor is not affiliated with ProPublica or the IRS. ProPublica data may not be resold as-is in bulk; this actor is a per-query lookup tool.

Every record links back to its ProPublica organization page in propublicaUrl. If you publish or redistribute anything derived from these records, credit ProPublica's Nonprofit Explorer as the source, and review ProPublica's API terms before building a commercial workflow on top of it.