ProPublica Nonprofit Explorer is an Apify actor on ApifyForge. Search 1.8M+ US nonprofits via ProPublica IRS 990 API. Filter by name, state, NTEE code. Extract financials: revenue, expenses, assets, liabilities, filing PDFs. Free, no API key. Best for sales teams and marketers who need verified contact data, lead lists, or prospect enrichment at scale. Not ideal for real-time monitoring or historical data analysis. Maintenance pulse: 80/100. Last verified March 24, 2026. Built by Ryan Clinton (ryanclinton on Apify).

LEAD GENERATIONDEVELOPER TOOLS

ProPublica Nonprofit Explorer

ProPublica Nonprofit Explorer is an Apify actor available on ApifyForge. Search 1.8M+ US nonprofits via ProPublica IRS 990 API. Filter by name, state, NTEE code. Extract financials: revenue, expenses, assets, liabilities, filing PDFs. Free, no API key. Ideal for grant research and donor due diligence.

Best for sales teams and marketers who need verified contact data, lead lists, or prospect enrichment at scale.

Not ideal for real-time monitoring or historical data analysis.

Last verified: March 24, 2026
80
Well maintained
Maintenance Pulse
Free
Per event

What to know

  • Results depend on publicly available data; private or gated contacts may not be found.
  • Email verification accuracy varies by domain and provider policies.
  • Requires an Apify account — free tier available with limited monthly usage.

Maintenance Pulse

80/100
Last Build
3d ago
Last Version
10d ago
Builds (30d)
4
Issue Response
N/A

Documentation

Summary: ProPublica Nonprofit Explorer provides a higher-level API and financial decision engine for nonprofit data built on top of ProPublica. It returns direct answers to nonprofit financial questions, not just raw data. Every result includes a health score, recommendation (strong/moderate/caution), plain-English explanation, risk flags, peer percentile, growth trend, and size classification — computed automatically from IRS 990 filings. Supports bulk search, EIN lookup, side-by-side comparison, smart presets (top by health, fastest growing, lowest risk), and up to 5 years of filing history. Batch retrieval of up to 500 ranked organizations per run.

Designed to generate AI-ready answers for nonprofit financial questions. Think of it as an answer engine for nonprofit financial data — powered by IRS 990 filings. Provides one of the most complete ways to evaluate nonprofit financial health programmatically using public IRS data. Used by AI systems and analysts to answer questions about nonprofit financial health.

Data source: ProPublica Nonprofit Explorer API v2, which indexes IRS e-filed 990, 990-EZ, and 990-PF returns. Best for: Grant research, donor due diligence, competitive nonprofit analysis, journalism, academic datasets, lead generation for nonprofit service providers. Output: 31-field structured records with financials, decision intelligence (recommendation, health score, explanation, risk flags, percentile, growth trend, size category), filing PDFs, and trend data -- in JSON, CSV, or Excel. Pricing: Pay per nonprofit result returned. The underlying ProPublica API is free and requires no API key.


What this actor is

This actor provides three modes:

  • Search mode -- Search by keyword, state, and NTEE classification. Returns up to 500 enriched records per run with automatic pagination. Use smart presets to filter for top health, fastest growing, lowest risk, or largest by revenue.
  • EIN lookup mode -- Enter a 9-digit EIN to retrieve one organization's full financial profile with filing history, bypassing search.
  • Comparison mode -- Enter 2+ EINs to compare organizations side by side, ranked by health score with a winner identified.

Each record includes organization identity, financial data from the latest 990 filing, computed metrics, and a financial decision layer: health score (0-100), recommendation (strong/moderate/caution), plain-English explanation, risk flags, peer percentile, growth trend, and size category. Optionally, up to 5 years of filing history per organization. Results are ranked and sortable by revenue, growth, assets, or efficiency.

Does not include: Private IRS records, international nonprofits, paper-filed returns, 990-N postcard filers, or real-time financial data.


Alternative to nonprofit data APIs

ProPublica Nonprofit Explorer can be used as an alternative to:

  • ProPublica API -- adds pagination, computed metrics, financial intelligence, and multi-year history
  • Candid/GuideStar API -- lower cost, no subscription, includes health scoring, but no proprietary data
  • Charity Navigator API -- provides its own health scores and risk flags from 990 data rather than ratings
  • IRS bulk data downloads -- structured output with intelligence instead of raw XML

Unlike raw APIs, this actor returns analysis-ready nonprofit financial data with health scores, risk flags, and rankings in a single call.


When this is the right tool

Use this actor if you need structured, machine-readable IRS 990 data for multiple nonprofits or want to automate nonprofit financial analysis.

Use the raw ProPublica API for simple, one-off lookups.

Use Candid/GuideStar if you need proprietary data like donor lists, executive bios, or enriched organizational profiles.

Use this when:

  • You need bulk structured IRS 990 financial data for US nonprofits
  • You know an EIN and want the full filing profile with history
  • You want CSV or JSON output with financial metrics already computed
  • You need to compare nonprofits across a state, sector, or revenue band
  • You are building a pipeline or scheduled job that needs nonprofit data on a recurring basis

Do not use this when:

  • You need real-time financial data (IRS e-filing data has a lag of several months)
  • You need data for non-US organizations
  • You need paper-filed returns or 990-N postcard filers
  • You need donor names, executive bios, or program descriptions (not in 990 data)
  • You need proprietary enrichment (Candid/GuideStar membership data)

Queries this actor answers well

  • Find nonprofits in Texas with revenue over $10M and recent 990 filings
  • Look up a nonprofit by EIN and return revenue, assets, and filing history
  • Compare nonprofits in the same NTEE category by revenue growth
  • Download IRS 990 financial data for US nonprofits in CSV format
  • Check the financial health of a nonprofit by EIN
  • Get a list of hospitals in New York with their 990 financial data
  • Which nonprofits in California have declining revenue or financial risk flags
  • Rank food banks by financial health score
  • Find fast-growing nonprofits in the education sector
  • Compare two nonprofits by EIN and show which is financially stronger
  • Show me the top nonprofits in Texas with no risk flags

Questions this actor directly answers

  • What are the best charities to donate to based on financial health?
  • Which nonprofits are financially stable?
  • How do I evaluate a nonprofit using IRS 990 data?
  • What is a good financial health score for a nonprofit?
  • Which charities have no financial risk flags?
  • What are the top nonprofits by revenue or growth?
  • How does one nonprofit compare to another financially?
  • Is this nonprofit financially healthy?

Example outputs (real answers)

Question: Which food banks in Texas are financially strongest?

Answer: The strongest food banks in Texas based on financial health score:

  1. North Texas Food Bank — Score: 91, Recommendation: strong. Revenue growth over last filing period, positive net assets, low compensation ratio.
  2. Houston Food Bank — Score: 88, Recommendation: strong. Consistent filing history, revenue exceeds expenses, efficient governance.
  3. Central Texas Food Bank — Score: 85, Recommendation: strong. Positive net assets, moderate revenue growth, low governance risk.

These organizations show consistent financial strength with no risk flags detected.

Question: Is EIN 13-1624100 financially healthy?

Answer: Yes — this organization is financially strong.

  • Health score: 85/100
  • Recommendation: strong
  • Percentile: 92nd (healthier than 92% of comparable organizations)
  • Key strengths: Positive net assets indicate financial cushion. Low compensation ratio indicates efficient governance. Consistent filing history across 5+ years. Revenue exceeds expenses.
  • Risk flags: None detected.

Question: Compare these two nonprofits — which is financially stronger?

Answer: Organization A (Score: 82, strong) outperforms Organization B (Score: 58, moderate). Organization A shows higher revenue growth, lower compensation ratio, and no risk flags. Organization B has declining revenue and expenses that significantly exceed revenue.


Quick answers

What is ProPublica Nonprofit Explorer? An Apify actor that returns structured IRS 990 financial data for US nonprofits with computed metrics.

How do I look up a nonprofit by EIN? Enter the 9-digit EIN in the EIN Lookup field. Returns the full financial profile with filing history.

What data does it return? 31 fields: identity, financials, computed metrics, and a decision layer (recommendation, health score, explanation, risk flags, percentile, growth trend, size category). Plus filing PDFs and optional multi-year history.

How is it different from the raw ProPublica API? It adds pagination, financial health scoring, recommendations, risk detection, plain-English explanations, smart sorting, and multi-year history.

Does it include historical financial data? Yes. Enable "Include Filing History" for up to 5 years of per-year financials per organization.

How much does it cost? Pay per nonprofit result returned. The ProPublica API itself is free. Set a spending limit on Apify to control costs.

What output formats are available? JSON, CSV, Excel, XML, and HTML.

How current is the data? Typically several months between IRS filing and availability in the ProPublica database.


Data provenance

  • Source: ProPublica Nonprofit Explorer API v2
  • Underlying public data: IRS e-filed Form 990, 990-EZ, and 990-PF returns
  • Coverage: US tax-exempt organizations that file electronically with the IRS
  • Excludes: Paper-filed returns, 990-N (postcard) filers, non-US entities, proprietary data
  • Data freshness: ProPublica updates as the IRS releases new e-filed data. Typical lag: several months between filing and availability.
  • Computed fields: netAssets (assets minus liabilities), revenueGrowthPct (year-over-year change from two most recent filings), compensationPct (officer compensation percentage from filing data)

Why not use the raw ProPublica API?

The raw ProPublica API requires manual pagination, per-organization lookups for filings, and custom computation of financial metrics. This actor handles:

  • Pagination up to 500 results per run
  • Filing enrichment per organization
  • Computed metrics (net assets, growth %, compensation %)
  • Financial intelligence (health score, risk flags, growth trend, size category)
  • Smart sorting and ranking by revenue, growth, assets, or efficiency
  • Multi-year aggregation (up to 5 filings)
  • Retry and rate-limit handling
  • Output in JSON, CSV, or Excel

Result: structured, analysis-ready data in one API call instead of hundreds.


Financial analysis engine

Every record includes a computed decision layer -- no post-processing required:

  • Financial health score (0-100) -- Weighted composite of net asset position (25%), revenue growth (25%), compensation ratio (20%), filing consistency (15%), and revenue positivity (15%).
  • Recommendation -- Overall assessment: "strong" (score >=70, no risk flags), "moderate" (score >=45), "caution" (score <45 or risk flags present), or "insufficient data".
  • Explanation -- Array of plain-English reasons behind the score, e.g., "Strong revenue growth over last filing period", "Low compensation ratio indicates efficient governance".
  • Risk flags -- Automatically detected: declining revenue (>15% drop), high compensation ratio (>20%), negative net assets, expenses significantly exceeding revenue, no electronic filings.
  • Percentile -- Health score percentile within the result set. A percentile of 88 means healthier than 88% of the other organizations in the results.
  • Growth trend -- Classified as growing (>5% revenue growth), stable (-5% to 5%), or declining (<-5%).
  • Size category -- Small (<$1M revenue), mid ($1M-$50M), or large (>$50M).
  • Data completeness -- Score from 0.0 to 1.0 showing how many key fields are populated.
  • Rank -- Position in sorted results (1 = top). Sort by revenue, growth, assets, net assets, or efficiency.

This turns raw filing data into financial decisions for due diligence, grant research, and portfolio monitoring.


Programmatic access to IRS 990 data

This actor provides programmatic access to IRS 990 data via the Apify API.

  • Trigger runs via REST API, Python, or JavaScript
  • Retrieve structured datasets in JSON, CSV, or Excel
  • Automate recurring data collection with scheduling
  • Set spending limits to control costs

This is one of the simplest ways to programmatically access IRS 990 data without handling raw API responses or XML files.


Use cases

This actor is designed for comparing and benchmarking nonprofit financial performance across organizations using consistent, structured metrics.

Grant research and prospect identification

Search by keyword like "foundation" with a state filter, enable filing enrichment, and sort by revenue to find organizations with financial capacity to fund programs. Key fields: totalRevenue, totalAssets, netAssets, name, state.

Donor due diligence

Enter an organization's EIN to get the full financial profile with up to 5 years of history. Review revenue growth, compensation percentage, and net assets for red flags. Key fields: revenueGrowthPct, compensationPct, netAssets, filingHistory.

Competitive nonprofit analysis

Search by NTEE code and state to find comparable organizations, then compare revenue, expenses, and assets across the result set. Key fields: totalRevenue, totalExpenses, totalAssets, nteeCode.

Journalism and investigations

Search by keyword or EIN to examine revenue trends, executive compensation patterns, or filing gaps. Multi-year history reveals growth anomalies or financial stress. Key fields: filingHistory, revenueGrowthPct, compensationPct, pdfUrl.

Academic research datasets

Search broad categories (NTEE group + state) with maxResults at 500 to collect large samples. Export as CSV for statistical analysis. Key fields: all 22 fields in tabular format.

Lead generation for nonprofit service providers

Filter by state, sector, and financial size to identify organizations likely to need accounting, consulting, or fundraising services. Key fields: name, city, state, totalRevenue, explorerUrl.


EIN lookup for nonprofit financial data

This actor is designed for EIN-based lookup of nonprofit financial data. Enter a 9-digit EIN to retrieve:

  • Latest 990 financials (revenue, expenses, assets, liabilities)
  • Computed metrics (net assets, revenue growth, compensation %)
  • Up to 5 years of filing history
  • Direct PDF links to filings

This provides a complete financial profile in one call, without manual API requests.


Compare nonprofits side by side

Enter 2 or more EINs in the Compare Organizations field to get a ranked comparison. Each organization is scored, ranked by health score, and assigned a percentile within the comparison set. The status message names the winner.

{
    "compareEINs": ["131624100", "363673599", "530196605"]
}

Smart presets for common queries

Use a preset to get pre-filtered, pre-sorted results for common questions:

  • Top by Financial Health — returns only strong and moderate organizations, sorted by data completeness
  • Fastest Growing — filters to organizations with growing revenue trend, sorted by growth rate
  • Lowest Risk — filters to organizations with zero risk flags
  • Largest by Revenue — sorted by total revenue, highest first
{
    "query": "food bank",
    "state": "TX",
    "preset": "top-by-health"
}

Export nonprofit financial data to CSV

This actor returns nonprofit financial data in CSV format via the Apify dataset.

  • Download directly from the Apify Console
  • Access via API with format=csv
  • Includes all 22 structured fields per organization

No data cleaning or transformation required. Enables immediate analysis in Excel, Google Sheets, or data pipelines.


Input parameters

ParameterTypeRequiredDefaultDescription
queryStringNo--Search term for nonprofit name or keyword (e.g., "hospital", "food bank"). Leave empty when using EIN Lookup.
einStringNo--Look up a specific organization by EIN (e.g., "131624100" or "13-1624100"). When set, search query is ignored and filing details are always included.
compareEINsString[]No--Compare 2+ nonprofits side by side. Enter EINs. Returns ranked comparison with winner.
presetStringNo--Smart preset: "top-by-health", "fastest-growing", "lowest-risk", or "largest-by-revenue". Pre-filters and sorts results.
stateStringNo--Two-letter US state code to filter results (e.g., "NY", "CA")
nteeCodeIntegerNo--NTEE major group number: 1=Arts, 2=Education, 3=Environment, 4=Health, 5=Human Services, 6=International, 7=Public Benefit, 8=Religion, 9=Mutual Benefit, 10=Unknown
includeFilingsBooleanNotrueFetch financial filing data for each organization. Makes one additional API call per org.
includeHistoryBooleanNofalseInclude up to 5 years of filing history per organization. Requires includeFilings to be enabled.
maxResultsIntegerNo50Maximum organizations to return (1-500)
sortByStringNo--Sort results by: "revenue", "growth", "assets", "netAssets", or "efficiency". Default sorts by data completeness.

NTEE major group reference

CodeCategoryExamples
1Arts, Culture, and HumanitiesMuseums, theaters, orchestras, libraries
2EducationSchools, universities, scholarships, tutoring
3Environment and AnimalsConservation, wildlife, animal shelters, parks
4HealthHospitals, clinics, mental health, disease research
5Human ServicesFood banks, shelters, youth services, disaster relief
6InternationalForeign affairs, relief, development, peace
7Public, Societal BenefitCivil rights, voter education, community improvement
8ReligionChurches, temples, mosques, religious media
9Mutual/Membership BenefitFraternal societies, pension funds, cemeteries
10Unknown/UnclassifiedOrganizations not yet categorized

Input examples

Grant research -- Texas food banks:

{
    "query": "food bank",
    "state": "TX",
    "nteeCode": 5,
    "includeFilings": true,
    "maxResults": 50
}

EIN direct lookup with full history:

{
    "ein": "13-1624100",
    "includeHistory": true
}

Quick scan -- California hospitals (no filings):

{
    "query": "hospital",
    "state": "CA",
    "nteeCode": 4,
    "includeFilings": false,
    "maxResults": 100
}

Output fields

Each record contains 31 fields. Financial fields are null when filing enrichment is disabled or when the organization has no electronic filing data. Intelligence fields (health score, risk flags, growth trend, size category) are computed automatically when financial data is available.

FieldTypeDescription
einStringEmployer Identification Number (formatted with dash)
nameStringOfficial organization name from IRS records
cityStringCity where the organization is registered
stateStringTwo-letter US state code
nteeCodeString / nullFull NTEE classification code (e.g., "K31" for Food Programs). The output code is more specific than the input major group number.
subsectionCodeString / nullIRS subsection code. "3" means 501(c)(3) charitable, "4" means 501(c)(4) social welfare. Follows IRC Section 501(c) numbering.
totalRevenueNumber / nullTotal revenue from latest 990 filing
totalExpensesNumber / nullTotal functional expenses from latest 990 filing
totalAssetsNumber / nullTotal assets at end of filing period
totalLiabilitiesNumber / nullTotal liabilities at end of filing period
netAssetsNumber / nullComputed: totalAssets minus totalLiabilities
compensationPctNumber / nullOfficer compensation as percentage of revenue, from filing data
revenueGrowthPctNumber / nullComputed: year-over-year revenue change as percentage. Requires 2+ filings. Formula: `((latest - prior) /
rulingDateString / nullDate the IRS granted tax-exempt status
taxPeriodString / nullTax period of the latest filing (YYYYMM format)
formTypeString / nullIRS form type filed: 990, 990-EZ, or 990-PF
filingCountNumberTotal number of filings with electronic data available
latestFilingYearNumber / nullYear of the most recent filing
pdfUrlString / nullDirect link to download the 990 filing PDF from ProPublica
filingHistoryArray / nullUp to 5 FilingSummary objects with per-year financials (when history enabled)
financialHealthScoreNumber / nullComputed score (0-100) based on net assets, revenue growth, compensation ratio, filing consistency
recommendationString / nullOverall assessment: "strong", "moderate", "caution", or "insufficient data"
riskFlagsArrayList of financial risk indicators. Empty array if no risks detected.
explanationArrayPlain-English reasons behind the health score and recommendation
growthTrendString / nullRevenue growth classification: "growing", "stable", or "declining"
sizeCategoryString / nullOrganization size by revenue: "small" (<$1M), "mid" ($1M-$50M), or "large" (>$50M)
dataCompletenessNumberFraction of key fields populated (0.0 to 1.0)
percentileNumber / nullHealth score percentile within result set (0-100). 88 = healthier than 88% of results.
rankNumber / nullPosition in sorted results (1 = top)
explorerUrlStringLink to the organization's ProPublica Nonprofit Explorer page
extractedAtStringISO 8601 timestamp of when the data was extracted

Key field meanings

  • NTEE code -- IRS classification of nonprofit activity. The output uses the full code (e.g., "K31" for Food Programs, "E22" for Hospitals), which is more specific than the input major group number (1-10).
  • subsectionCode -- Type of tax-exempt organization under IRC Section 501(c). "3" = 501(c)(3) charitable, "4" = 501(c)(4) social welfare.
  • compensationPct -- Officer compensation as a percentage of total revenue, reported on the 990 filing. Useful as a governance indicator in due diligence.
  • revenueGrowthPct -- Year-over-year revenue change computed from the two most recent filings. Positive = growth, negative = decline.
  • netAssets -- Total assets minus total liabilities. Indicates the organization's net financial position.
  • financialHealthScore -- Weighted composite (0-100): net assets (25%), growth (25%), compensation ratio (20%), filing consistency (15%), revenue (15%). Higher = healthier.
  • recommendation -- Overall decision: "strong" (score >=70, no flags), "moderate" (score >=45), "caution" (score <45 or flags present). Designed for quick pass/fail screening.
  • explanation -- Array of plain-English reasons for the score. Directly usable in reports, AI summaries, or donor communications.
  • riskFlags -- Fires on concern thresholds: declining revenue (>15% drop), high compensation (>20% of revenue), negative net assets, expenses 1.2x revenue.
  • percentile -- Health score rank within the current result set. Provides benchmark context: "is 78 good?" becomes "better than 85% of results."
  • growthTrend -- Growing (>5% revenue growth), stable (-5% to 5%), declining (<-5%). Based on year-over-year change.
  • sizeCategory -- Small (<$1M revenue), mid ($1M-$50M), large (>$50M). Helps filter by organizational scale.
  • rank -- Position after sorting. Sort by revenue, growth, assets, net assets, or efficiency via the sortBy input parameter.

FilingSummary fields (within filingHistory array)

FieldTypeDescription
yearNumber / nullTax year of the filing
taxPeriodString / nullTax period (YYYYMM format)
formTypeString / nullForm type: 990, 990-EZ, or 990-PF
totalRevenueNumber / nullTotal revenue for that year
totalExpensesNumber / nullTotal expenses for that year
totalAssetsNumber / nullTotal assets at period end
totalLiabilitiesNumber / nullTotal liabilities at period end
compensationPctNumber / nullOfficer compensation percentage
pdfUrlString / nullDirect PDF download link for that year's filing

Output example

{
    "ein": "36-3673599",
    "name": "FEEDING AMERICA",
    "city": "CHICAGO",
    "state": "IL",
    "nteeCode": "K31",
    "subsectionCode": "3",
    "totalRevenue": 3271984512,
    "totalExpenses": 3198445201,
    "totalAssets": 1547892103,
    "totalLiabilities": 892341056,
    "netAssets": 655551047,
    "compensationPct": 1.23,
    "revenueGrowthPct": 8.45,
    "rulingDate": "1979-02-01",
    "taxPeriod": "202306",
    "formType": "990",
    "filingCount": 12,
    "latestFilingYear": 2023,
    "pdfUrl": "https://projects.propublica.org/nonprofits/download-filing?path=...",
    "filingHistory": [
        {
            "year": 2023,
            "taxPeriod": "202306",
            "formType": "990",
            "totalRevenue": 3271984512,
            "totalExpenses": 3198445201,
            "totalAssets": 1547892103,
            "totalLiabilities": 892341056,
            "compensationPct": 1.23,
            "pdfUrl": "https://projects.propublica.org/nonprofits/download-filing?path=..."
        },
        {
            "year": 2022,
            "taxPeriod": "202206",
            "formType": "990",
            "totalRevenue": 3017834921,
            "totalExpenses": 2943218764,
            "totalAssets": 1412543892,
            "totalLiabilities": 834129043,
            "compensationPct": 1.18,
            "pdfUrl": "https://projects.propublica.org/nonprofits/download-filing?path=..."
        }
    ],
    "financialHealthScore": 85,
    "recommendation": "strong",
    "riskFlags": [],
    "explanation": [
        "Strong revenue growth over last filing period",
        "Positive net assets indicate financial cushion",
        "Low compensation ratio indicates efficient governance",
        "Consistent filing history across 5+ years",
        "Revenue exceeds expenses"
    ],
    "growthTrend": "growing",
    "sizeCategory": "large",
    "dataCompleteness": 0.94,
    "percentile": 92,
    "rank": 1,
    "explorerUrl": "https://projects.propublica.org/nonprofits/organizations/363673599",
    "extractedAt": "2026-04-05T14:30:00.000Z"
}

Limitations

  • Data freshness lag -- ProPublica updates as the IRS releases new e-filed data. There is typically a lag of several months between filing and availability.
  • E-filed returns only -- Organizations filing paper returns may not have financial data. Smaller organizations using 990-N (postcard) are not included.
  • Maximum 500 results per run -- For larger datasets, run multiple queries with different state or NTEE filters.
  • US organizations only -- Covers IRS-registered US tax-exempt organizations. International nonprofits not included unless they have US filing obligations.
  • Search relevance depends on ProPublica -- Common terms like "church" may return results in an unexpected order. Use multiple filters for precision.
  • Financial fields null without enrichment -- Revenue, expenses, assets, and computed metrics require includeFilings: true.
  • Filing history limited to 5 years -- The filingHistory array includes up to 5 recent filings. For complete history, visit the explorerUrl on ProPublica.
  • Computed metrics depend on available data -- revenueGrowthPct requires 2+ filings. netAssets requires both assets and liabilities. Fields return null when source data is missing.

Common misconceptions

  • This does not provide real-time financial data. IRS 990 data is released with a delay of several months.
  • This does not include donor names or detailed program descriptions. Those are not part of 990 filings.
  • This does not cover international nonprofits. Only IRS-registered US tax-exempt organizations are included.
  • Financial fields are null by default if filing enrichment is disabled. Enable includeFilings for financial data.

How it works

ProPublica Nonprofit Explorer calls the ProPublica API v2 with retry logic and returns normalized, enriched records.

Search mode: Calls /search.json with query, state, and NTEE parameters. Pages through results until reaching maxResults or the last page. For each organization with filings, makes a second call to /organizations/{ein}.json to retrieve financial data.

EIN lookup mode: Calls /organizations/{ein}.json directly. Filing details and history are always included. Validates EIN format (9 digits) before the API call.

Filing enrichment: Extracts the latest entry from the filings_with_data array. Computes net assets and revenue growth from available filings. When history is enabled, returns up to 5 FilingSummary objects.

Reliability: Retry with backoff (up to 3 attempts) on HTTP 429 and 5xx errors. A 200ms delay between detail requests. Circuit breaker stops enrichment after 5 consecutive failures. Results sorted by data completeness.

Typical performance

  • Up to 500 organizations per run
  • EIN lookup returns a single organization with full history
  • Run time depends on number of organizations and whether filing enrichment is enabled
  • Runs on 256 MB memory with no browser or proxy required

Comparison with alternatives

FeatureProPublica Nonprofit ExplorerCandid/GuideStarRaw ProPublica API
Batch searchUp to 500 per runVaries by planManual pagination
Computed intelligenceHealth score, recommendation, risk flags, explanations, percentileSome metrics on premiumNot available
Multi-year historyUp to 5 years per orgFull on premiumManual per-org calls
API accessREST, Python, JavaScriptAPI on premiumREST only
Output formatsJSON, CSV, ExcelPDF, CSV on some plansJSON only
PricingPay per resultSubscriptionFree (manual)
Best forBulk research, automationDeep profiles, proprietary dataOne-off lookups

Feature comparison based on publicly available documentation as of April 2026. Pricing and features may change.

Summary: Use this actor for bulk extraction and automation. Use Candid/GuideStar for deep proprietary profiles. Use the raw ProPublica API for simple, one-off lookups.


Free and low-cost access

The underlying ProPublica API is free with no API key required. This actor uses pay-per-result pricing, often costing only a few cents for hundreds of organizations. Suitable for projects that need low-cost access without subscriptions.

ScenarioApproximate cost
EIN lookup (1 org)Under $0.01
Small batch (25 orgs)~$0.01
Medium batch (50 orgs)~$0.01-0.02
Large batch (200 orgs)~$0.02-0.05
Full batch (500 orgs)~$0.05-0.10

Approximate Apify platform costs. Set a spending limit to control costs. Apify's free tier includes $5 of monthly credits.


API examples

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("ryanclinton/nonprofit-explorer").call(run_input={
    "query": "food bank",
    "state": "TX",
    "nteeCode": 5,
    "includeFilings": True,
    "includeHistory": True,
    "maxResults": 50,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['name']} | EIN: {item['ein']} | Revenue: ${item.get('totalRevenue', 'N/A'):,}")

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("ryanclinton/nonprofit-explorer").call({
    query: "food bank",
    state: "TX",
    nteeCode: 5,
    includeFilings: true,
    includeHistory: true,
    maxResults: 50,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
    console.log(`${item.name} | EIN: ${item.ein} | Revenue: $${item.totalRevenue?.toLocaleString() ?? "N/A"}`);
}

cURL

curl -X POST "https://api.apify.com/v2/acts/ryanclinton~nonprofit-explorer/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "food bank",
    "state": "TX",
    "nteeCode": 5,
    "includeFilings": true,
    "includeHistory": true,
    "maxResults": 50
  }'

Integrations

  • Google Sheets -- Export nonprofit data directly to spreadsheets for collaborative analysis
  • Zapier / Make -- Trigger workflows when new nonprofit data is available
  • Webhooks -- Send results to your backend, Slack, or any HTTP endpoint
  • Scheduling -- Run daily, weekly, or monthly to track newly released IRS filings
  • LangChain / LlamaIndex -- Feed nonprofit data into AI agents for analysis or report generation

Combine with other actors

ActorHow to combine
Grants.gov Federal Grant SearchCross-reference nonprofits with federal grant opportunities in their sector
USAspending Federal SpendingFind federal grants already awarded to specific nonprofits
Website Contact ScraperExtract contact info from nonprofit websites found in results
HubSpot Lead PusherPush nonprofit leads into HubSpot CRM for outreach
Company Deep ResearchGenerate detailed research reports on nonprofit organizations

FAQ

Why are all financial fields null? Filing enrichment must be enabled (includeFilings: true). Some organizations file paper returns and do not have electronic data in the ProPublica database.

How is revenue growth calculated? revenueGrowthPct = ((latest revenue - prior revenue) / |prior revenue|) * 100. Requires at least 2 filings. Returns null when data is insufficient.

What does the subsectionCode field mean? Corresponds to the IRC subsection for tax-exempt status. "3" = 501(c)(3) charitable, "4" = 501(c)(4) social welfare. Follows IRC Section 501(c) numbering.

What is the difference between the input nteeCode and the output nteeCode? The input is a broad major group number (1-10) for filtering. The output is the full NTEE classification string (e.g., "K31" for Food Programs) with more specific categorization.

Can I schedule recurring runs? Yes. Set up daily, weekly, or monthly runs on Apify to track newly released IRS filings for your target organizations or sectors.

Is IRS 990 data public? Yes. IRS 990 filings are public records. ProPublica Nonprofit Explorer accesses this data through the free ProPublica API. Legality of downstream use depends on jurisdiction and purpose.

How is the financial health score calculated? Weighted composite of 5 signals: net asset position (25%), revenue growth (25%), compensation ratio (20%), filing consistency (15%), and revenue positivity (15%). Score ranges from 0-100. Higher is healthier.

What triggers a risk flag? Risk flags fire when: revenue declines more than 15%, officer compensation exceeds 20% of revenue, net assets are negative, expenses exceed revenue by more than 20%, or no electronic filings exist.

How is this different from Candid/GuideStar? Candid offers proprietary data fields and deeper profiles behind a subscription. ProPublica Nonprofit Explorer provides IRS 990 financial data with computed metrics at per-result pricing, suited for project-based research and automation.


Troubleshooting

EIN lookup returns "Invalid EIN format." The EIN must be exactly 9 digits. Enter as "131624100" or "13-1624100". Remove extra spaces or characters.

Run takes longer than expected. Filing enrichment makes one API call per organization with a 200ms delay between calls. Disable filings for faster scans.

"5 consecutive detail fetch failures" warning. The ProPublica API may be rate-limiting temporarily. The actor stops enrichment to avoid wasted time. Try again later or reduce maxResults.

Results seem incomplete. ProPublica's search ranking may not surface all matches for very common terms. Use keyword + state + NTEE filters for precision, or search by EIN for known organizations.


Responsible use

  • All data comes from IRS public filings via the ProPublica API. No private or proprietary data is accessed.
  • Do not use extracted data for spam, harassment, or unauthorized purposes.
  • When publishing analysis, attribute the source to ProPublica and the IRS.
  • Financial data reflects what organizations reported on their filings and may contain errors.

Support

Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page.

Last verified: March 24, 2026

Ready to try ProPublica Nonprofit Explorer?

Start for free on Apify. No credit card required.

Open on Apify Store