ProPublica Nonprofit Explorer Scraper — 990 Data by EIN
Pricing
from $4.00 / 1,000 nonprofit records
ProPublica Nonprofit Explorer Scraper — 990 Data by EIN
Look up US nonprofits by EIN or name in ProPublica Nonprofit Explorer and export Form 990 revenue, expenses, assets and filing PDFs. USD 5 per 1,000.
Pricing
from $4.00 / 1,000 nonprofit records
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
ProPublica Nonprofit Explorer Scraper looks up US nonprofits by EIN or name and returns one record per organization with IRS Form 990 financials (revenue, expenses, assets, liabilities), a filing history with PDF links, NTEE and 501(c) codes, and the Nonprofit Explorer profile link. It is built for grant researchers, due-diligence teams, fundraisers and journalists who need nonprofit financial data in bulk, and it costs USD 5.00 per 1,000 nonprofit records on the FREE tier (USD 4.00 per 1,000 on GOLD).
The data comes from ProPublica's public Nonprofit Explorer API, an index of IRS exempt-organization records and Form 990 filings. No login is needed.
What data does the ProPublica Nonprofit Explorer scraper return?
Each dataset row is one nonprofit, identified by EIN. Missing values are null, never invented.
| Field | What it contains |
|---|---|
ein, formattedEin | Employer Identification Number, for example 14-2007220 |
name, alternateName | Legal name and secondary name |
address, city, state, zipCode | Location (street and ZIP are filled in EIN lookups, see limits) |
subsectionCode, nteeCode | IRS subsection (3 = 501(c)(3)) and NTEE category code |
organizationStatus, classification, rulingDate, deductibility, accountingPeriod | IRS registry codes and ruling date (EIN lookups) |
latestFilingYear, latestFilingType | Newest filing year and form (990, 990-EZ, 990-PF) |
latestRevenue, latestExpenses, latestAssets, latestLiabilities | Figures from the newest filing that has extracted financial data |
filings | Up to 25 filings: tax period, year, form, revenue, expenses, assets, liabilities, officer-compensation share, PDF link |
filingCount | Number of filings the source lists |
proPublicaUrl | Nonprofit Explorer profile page |
guidestarUrl, nccsUrl | guidestarUrl is the organization's public GuideStar profile link, built from the EIN (for example https://www.guidestar.org/profile/14-2007220); nccsUrl is null because NCCS has no public per-organization page to link |
sourceSearchQuery, sourceSearchUrl, scrapedAt, warnings | Provenance and per-record notes |
An OUTPUT record in the key-value store lists records collected, charged events, requests and errors.
How do I look up a nonprofit's Form 990 by EIN?
Put the EINs in Exact EINs (7 to 9 digits, with or without the hyphen), leave Nonprofit search phrases empty (in Console, remove the pre-filled nonprofit), and set Maximum nonprofit records to the number of EINs:
{"eins": ["14-2007220", "13-1837418"],"searchQueries": [],"maxResults": 2,"includeFilings": true,"maxFilingsPerOrganization": 5}
When EINs are given and searchQueries is left out or empty, no search runs, so only the organizations you asked for are returned and charged. A phrase you add yourself runs after the EIN lookups. EIN lookups return the full registry fields (street address, ZIP, ruling date, deductibility) plus the filing history.
How do I search nonprofits by name, state or category?
Enter phrases in Nonprofit search phrases and narrow with a two-letter state, an NTEE major group (1 arts, 2 education, 3 environment, 4 health, 5 human services, 6 international, 7 public benefit, 8 religion, 9 membership, 10 unknown) or an IRS subsection code:
{"searchQueries": ["food bank"],"state": "NY","nteeCode": 5,"subsectionCode": 3,"maxResults": 50,"maxPages": 2,"responseFormat": "detailed"}
The source returns 25 organizations per search page, so maxPages: 2 reads up to 50 matches per phrase. Duplicate EINs across phrases are returned once. Set includeFilings: false for faster profile-only discovery, or responseFormat: "concise" to drop the filings array while keeping the latest figures.
When should I use this Actor, and when not?
Use it when you need nonprofit financials as data: screening grantees, building a prospect list of foundations or charities in a state, checking a list of EINs against their latest 990 revenue, or giving an AI agent a nonprofit lookup tool.
Use something else when:
- You need federal grants and contracts awarded to an organization: USAspending Federal Awards Scraper.
- You need SEC filings for a company rather than a nonprofit: SEC EDGAR Scraper.
- You need GuideStar (Candid) profiles, ratings, donor or board data, or full 990 line items such as officer names. This Actor returns summary figures and filing PDF links only.
Use it from an AI assistant
ProPublica Nonprofit Explorer Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add it with https://mcp.apify.com/?tools=muhammadafzal/guidestar-propublica-nonprofit-scraper, then ask, for example: "Find 501(c)(3) food banks in New York and rank them by their latest reported revenue."
Run it with the API
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/guidestar-propublica-nonprofit-scraper').call({eins: ['14-2007220'],searchQueries: [],maxResults: 1,includeFilings: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]?.name, items[0]?.latestRevenue);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("muhammadafzal/guidestar-propublica-nonprofit-scraper").call(run_input={"searchQueries": ["food bank"], "state": "TX", "maxResults": 10})for org in client.dataset(run.default_dataset_id).iterate_items():print(org["formattedEin"], org["name"], org["city"], org["latestRevenue"])
What does the output look like?
An EIN lookup (built from the source's 2026-10-26 data for EIN 14-2007220) and a search result from a 2026-10-26 run, shortened:
[{"ein": "142007220","formattedEin": "14-2007220","name": "Pro Publica Inc","address": "155 AVENUE OF THE AMERICAS FL 13","city": "New York","state": "NY","zipCode": "10013-1549","subsectionCode": 3,"nteeCode": "A20","rulingDate": "2008-02-01","latestFilingYear": 2024,"latestFilingType": "Form 990","latestRevenue": 57970562,"latestExpenses": 44080009,"latestAssets": 85514123,"latestLiabilities": 10080757,"filings": [{ "taxPeriod": 202312, "taxYear": 2023, "formType": "Form 990", "revenue": 57970562, "expenses": 44080009, "assetsEnd": 85514123, "liabilitiesEnd": 10080757, "pdfUrl": "https://projects.propublica.org/nonprofits/download-filing?path=IRS%2F142007220_202312_990_2025020323066717.pdf" }],"filingCount": 18,"guidestarUrl": "https://www.guidestar.org/profile/14-2007220","proPublicaUrl": "https://projects.propublica.org/nonprofits/organizations/142007220","warnings": ["Financial metrics use the newest filing with extracted data (2023), while latestFilingYear is 2024."]},{"ein": "352635030","formattedEin": "35-2635030","name": "Ceota Nonprofit","address": null,"city": "Decatur","state": "AL","zipCode": null,"subsectionCode": 3,"nteeCode": "A54","latestFilingYear": 2024,"latestRevenue": 1597665,"latestAssets": 1591963,"filingCount": 2,"proPublicaUrl": "https://projects.propublica.org/nonprofits/organizations/352635030","sourceSearchQuery": "nonprofit","scrapedAt": "2026-10-26T07:55:01.456Z"}]
Pricing: how much does nonprofit 990 data cost?
ProPublica Nonprofit Explorer Scraper uses pay-per-event pricing. Platform usage is included in the event prices.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| Nonprofit record (one dataset row) | USD 0.005001 | USD 0.004875 | USD 0.00475 | USD 0.004 | USD 0.004 |
| Actor start (per started GB of allocated memory) | USD 0.006251 | USD 0.006094 | USD 0.005938 | USD 0.005 | USD 0.005 |
Worked totals on the FREE tier with one start event (runs use at most 1 GB):
- One EIN lookup: 1 × USD 0.005001 + USD 0.006251 = USD 0.0113
- Default run, 25 records: 25 × USD 0.005001 + USD 0.006251 = USD 0.1313
A search with no matches charges only the start fee. Set a maximum cost per run in Apify Console to cap spending; the Actor stops when the charge limit is reached.
What are the limits?
- 500 records per run, 20 search phrases, 40 search pages per phrase (25 organizations each).
- Search results carry fewer registry fields. Records found through
searchQueriesleaveaddress,zipCode,organizationStatus,classification,rulingDate,deductibilityandaccountingPeriodasnull, even with filings enabled. Look those organizations up again by EIN for the full set. - NCCS links are empty. NCCS has no public per-organization page, so
nccsUrlisnull.guidestarUrlis built from the EIN and opens the organization's GuideStar profile. - Financial figures lag. The newest filing often has no extracted figures yet; a warning on the record says which year the financials come from.
- Pacing. Requests are spaced by
requestDelayMs(default 250 ms) and retried up to 3 times. A run of 25 records with filings took about 13 seconds.
FAQ
Does it return GuideStar or Candid data?
No. It reads ProPublica's Nonprofit Explorer only. It does not log in to Candid or use paid GuideStar endpoints; the only GuideStar item is guidestarUrl, a link to the organization's public GuideStar profile.
Where does the 990 data come from?
From IRS exempt-organization records and electronically filed Form 990s, as indexed by ProPublica's Nonprofit Explorer. Each record links to its Nonprofit Explorer page and, where available, the filing PDF.
Can I look up a nonprofit by EIN?
Yes. Use Exact EINs with no search phrases and maxResults equal to the number of EINs, as shown above.
Does it include executive compensation?
Only as compensationPercent on each filing, the officer-compensation percentage the source reports. Named officer salaries are in the linked 990 PDFs, not in the dataset.
How far back do filings go?
As far as the source has them, usually from the early 2010s. maxFilingsPerOrganization caps how many are returned (default 5, maximum 25); filingCount shows the total.
Can I verify 501(c)(3) status with it?
It returns the IRS subsection and deductibility codes the source publishes, which is useful for screening. For an official determination, check the IRS Tax Exempt Organization Search.
Related Actors
Public data from the same developer:
- FDA Drug Approvals Scraper for Drugs@FDA approval history
- FRED Data Scraper and IMF World Economic Outlook Scraper for economic series
- IDFPR License Lookup for Illinois professional licenses
- USAspending Federal Awards Scraper for federal grants and contracts
Legal and compliance
This Actor reads public nonprofit tax data and is not affiliated with ProPublica, Candid (GuideStar), the IRS or NCCS. It does not bypass access controls. Respect the source's terms and rate limits, follow privacy and anti-spam law if you use the data for outreach, and verify material grant, tax or compliance decisions against primary records.
Last verified: 2026-10-27