Discover/ProPublica API
live

ProPublica APIprojects.propublica.org

Search 1.9M+ US nonprofits by name, EIN, state, or NTEE category. Retrieve financials, tax filings, compensation, and grants via 3 structured endpoints.

Endpoint health
verified 3d ago
get_organization
search_organizations
search_and_detail
3/3 passing latest checkself-healing
Endpoints
3
Updated
22d ago

What is the ProPublica API?

The ProPublica Nonprofit Explorer API provides structured access to over 1.9 million US nonprofit organizations across 3 endpoints. Use search_organizations to filter nonprofits by name, state, IRS subsection code, or NTEE category, and get_organization to retrieve full financial profiles including annual revenue, expenses, assets, liabilities, and multi-year tax filing records by EIN.

Try it
NTEE major category numeric ID filter.
Page number (0-indexed).
Maximum number of results to return (auto-paginates if needed).
Search query — organization name, keyword, or EIN.
Two-letter US state code filter (e.g. 'NY', 'CA', 'TX').
IRS subsection code filter (e.g. '3' for 501(c)(3), '4' for 501(c)(4)).
api.parse.bot/scraper/215c40f3-ec1f-432f-a891-57122947675c/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/215c40f3-ec1f-432f-a891-57122947675c/search_organizations?ntee=1&page=0&limit=5&query=foundation' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace projects-propublica-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: ProPublica Nonprofit Explorer SDK — search, detail, filings."""
from parse_apis.propublica_nonprofit_explorer_api import (
    NonprofitExplorer,
    NteeCategory,
    OrganizationNotFound,
)

client = NonprofitExplorer()

# Search arts nonprofits (lightweight summaries) — limit= caps total items fetched.
for org in client.organizationsummaries.search(query="museum", ntee=NteeCategory.ARTS, limit=5):
    print(org.name, org.state, org.ntee_code)

# Drill into one result's full profile via .details().
summary = client.organizationsummaries.search(query="red cross", limit=1).first()
if summary:
    detail = summary.details()
    print(detail.name, detail.city, detail.state, detail.revenue_amount)
    # Walk its filings (already included in the detail response).
    for filing in detail.filings_with_data[:3]:
        print(filing.tax_prd_yr, filing.totrevenue, filing.totfuncexpns)

# Search with full details in one call (combines search + detail lookups).
for org in client.organizations.search(query="hospital", state="CA", limit=3):
    print(org.name, org.city, org.asset_amount)

# Direct point-lookup by EIN when you already know it.
try:
    org = client.organizations.get(ein="530196605")
    print(org.name, org.asset_amount, org.ntee_code)
except OrganizationNotFound as exc:
    print(f"EIN not found: {exc.ein}")

print("exercised: organizationsummaries.search / details / organizations.search / organizations.get / OrganizationNotFound")
All endpoints · 3 totalmissing one? ·

Full-text search over US nonprofit organizations. Filters by state, NTEE major category, and IRS subsection code. Returns 25 results per upstream page; auto-paginates up to the requested limit. Each result is a lightweight summary (EIN, name, location, NTEE code, subsection); use get_organization for full financials and filings.

Input
ParamTypeDescription
nteestringNTEE major category numeric ID filter.
pageintegerPage number (0-indexed).
limitintegerMaximum number of results to return (auto-paginates if needed).
querystringSearch query — organization name, keyword, or EIN.
statestringTwo-letter US state code filter (e.g. 'NY', 'CA', 'TX').
c_codestringIRS subsection code filter (e.g. '3' for 501(c)(3), '4' for 501(c)(4)).
Response
{
  "type": "object",
  "fields": {
    "page": "integer - starting page",
    "num_pages": "integer - total pages available",
    "organizations": "array of organization summary objects with ein, name, city, state, ntee_code, subseccd, score",
    "total_results": "integer - total matching organizations",
    "results_returned": "integer - number returned in this response"
  }
}

About the ProPublica API

What the API Covers

The API surfaces data from ProPublica's Nonprofit Explorer, a public database of IRS filings for US tax-exempt organizations. Coverage includes 501(c)(3) charities, 501(c)(4) social welfare organizations, and dozens of other subsection types. Each organization record includes core identifiers (ein, name, city, state, zipcode), classification metadata (ntee_code, subsection_code, classification_codes), and a ruling_date indicating when the IRS recognized the organization's tax-exempt status.

Endpoints and Key Parameters

search_organizations accepts a free-text query (name, keyword, or EIN), a two-letter state code, a numeric ntee major category ID (e.g., '1' for Arts, '2' for Education), and a c_code for IRS subsection filtering. Results default to 25 per page; the limit parameter triggers auto-pagination across pages. Each result includes ein, name, city, state, ntee_code, subseccd, and a relevance score.

get_organization takes a single ein (dashes stripped automatically) and returns the full organization object plus two filing arrays: filings_with_data contains extracted financial figures per tax year — totrevenue, totfuncexpns, totassetsend, totliabend, totcntrbgfts, totprgmrevn, and more — while filings_without_data lists years where a filing exists but financials were not extracted.

Combined Lookup

search_and_detail merges a search query with per-organization detail fetches in a single call, returning an array where each element contains both the full organization object and its filings_with_data. Because it issues multiple lookups internally, keeping limit small (under 10) reduces the chance of timeouts on large result sets.

Reliability & maintenanceVerified

The ProPublica API is a managed, monitored endpoint for projects.propublica.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when projects.propublica.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official projects.propublica.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Screen nonprofit grantees by pulling revenue, expenses, and assets from filings_with_data before disbursing funds.
  • Map the density of 501(c)(3) organizations by state using the state filter in search_organizations.
  • Track year-over-year financial trends for a specific nonprofit by comparing totrevenue and totassetsend across filing years from get_organization.
  • Build a sector analysis tool by filtering nonprofits with the ntee parameter across arts, education, health, and other major categories.
  • Identify large nonprofits in a region by sorting results on totassetsend from combined search_and_detail responses.
  • Verify nonprofit status and EIN for compliance workflows using get_organization with known EINs.
  • Filter 501(c)(4) social welfare organizations separately from charitable 501(c)(3)s using the c_code parameter.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does ProPublica offer an official developer API for Nonprofit Explorer?+
Yes. ProPublica publishes an official Nonprofit Explorer API at https://projects.propublica.org/nonprofits/api/v2. It provides JSON endpoints for search and organization detail lookups, and is freely accessible without authentication.
What financial fields are available per tax filing, and are they available for every organization?+
filings_with_data returns fields including totrevenue, totfuncexpns, totassetsend, totliabend, totcntrbgfts, and totprgmrevn for years where IRS data was extracted. Some organizations have filings listed in filings_without_data where financial figures were not extracted — typically smaller organizations or those that filed paper returns that were not digitized.
Does the API return executive compensation or individual grant data?+
The get_organization endpoint description references compensation and grants as part of the filing data, but the specific compensation and grant line items are part of the broader filing object rather than top-level search filters. Granular compensation breakdowns by officer name are not surfaced as discrete response fields in the current endpoints. You can fork this API on Parse and revise it to extract and expose those sub-fields explicitly.
Can I retrieve nonprofit data for organizations outside the United States?+
The API covers US-registered nonprofits that file with the IRS. Foreign organizations and non-IRS-registered entities are not included. The state filter accepts US state codes only. You can fork this API on Parse and revise it to incorporate additional international nonprofit data sources if needed.
How does pagination work in `search_organizations`, and what is the maximum result size?+
Results come back 25 per page from the source. The page parameter is 0-indexed. The limit parameter triggers auto-pagination to assemble larger result sets, but very large limits may slow response times significantly. The num_pages and total_results fields in the response indicate how many records are available for a given query.
Page content last updated . Spec covers 3 endpoints from projects.propublica.org.
Related APIs in Government PublicSee all →
grantwatch.com API
Search and browse thousands of grants from GrantWatch.com to find funding opportunities tailored to individuals, nonprofits, small businesses, and foundations. Get detailed grant information, filter by category, and discover newly posted grants to match your eligibility and funding needs.
idealist.org API
Search and retrieve volunteer opportunities, jobs, internships, and nonprofit organizations from Idealist.org to find meaningful work or discover organizations aligned with your values. View detailed information about specific listings and organizations to make informed decisions about where to contribute your time and skills.
npidb.org API
Search for healthcare providers and organizations by name to instantly retrieve their credentials, contact information, and specialty taxonomy codes from the National Provider Identifier database. Look up detailed provider profiles to verify qualifications and find the right medical professionals for your needs.
crunchbase.com API
Search and retrieve detailed information about companies, investors, and key people to discover funding opportunities, track market competitors, and analyze investment trends. Access comprehensive profiles including organization details, investor backgrounds, and complete funding round histories all in one place.
occrp.org API
Search and discover investigative journalism from OCCRP.org, including articles, investigations, and projects organized by section and region. Get the latest news updates and detailed information about specific investigations to stay informed on organized crime and corruption reporting.
justice.gov API
Search and retrieve official U.S. Department of Justice press releases. Find information on DOJ announcements, enforcement actions, settlements, and legal proceedings across all topic areas. Access full press release details including case summaries, entities involved, and filing dates.
offshoreleaks.icij.org API
Search for entities, individuals, and their financial connections across major offshore leak investigations including the Panama Papers and Pandora Papers. Explore detailed relationship graphs, browse officer records, and analyze bulk datasets to uncover offshore financial activities and networks.
prnewswire.com API
Access the latest press releases, earnings announcements, and news from PR Newswire across specific categories and organizations, with options to search by keywords or dates. Filter releases by industry, company newsrooms, and subscribe to RSS feeds for real-time updates on corporate news and financial disclosures.