Nonprofit Formation Radar: New 501(c)(3) Prospect Alerts
Pricing
from $9.00 / filter watch-month
Nonprofit Formation Radar: New 501(c)(3) Prospect Alerts
New 501c3 prospects for donor-CRM, insurance, CPA and banking teams. Set states, subsection 501(c)(3) and NTEE codes; each monthly run diffs the IRS Business Master File and returns only newly-recognized organizations as deduped rows: EIN, name, mailing address, mission, ruling month. Address-only.
Pricing
from $9.00 / filter watch-month
Rating
0.0
(0)
Developer
Paul Mikulskis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
17 days ago
Last modified
Categories
Share
Nonprofit Formation Radar turns the public IRS Exempt Organizations Business Master File into a monthly new-501(c)(3) prospecting feed for vendors that sell to newly recognized nonprofits. Name the state(s), IRS subsection (default 501(c)(3)), and NTEE mission codes you care about, put the actor on a monthly Apify Schedule, and each run returns only the organizations newly recognized in your territory and mission since you enrolled, deduplicated on EIN, as prospect rows: EIN, name, mailing address, NTEE mission, ruling month, foundation type. It also produces a one-shot new-determination cohort report for a chosen state, period, and mission. It runs inside your own Apify account, so scheduling, the API, integrations, and monitoring come with it, and there is no separate login or key. AI agents can call it over MCP.
Address-only prospect list (read this first)
The IRS Business Master File carries each organization's name and mailing address but NOT a phone number or email address. So what you get is a prospect list, not a contact list: the organizations in your territory and mission that were just recognized, each with a mailing address, and no repeats. If you need a phone number or email for one of them, you source that separately.
What does Nonprofit Formation Radar do?
When the IRS grants an IRS determination letter recognizing a new exempt organization, that organization enters the public record as a 501(c)(3) that can take tax-deductible donations. The IRS publishes every recognized organization in its Business Master File and refreshes it monthly, but sends no alert: no "notify me when a new 501c3 is recognized in my state working in youth services." Other 990 and nonprofit actors on the store search the existing universe of nonprofits; this one returns the monthly stream of newly-recognized ones.
You define a filter once and every scheduled run:
- Streams the four IRS regional extracts (eo1.csv through eo4.csv) on your schedule.
- Keeps only rows matching your subsection, active recognition status, state(s), and NTEE mission whose RULING (determination) month is on or after the month you enrolled.
- Diffs them against your filter's memory on EIN and delivers one prospect row per newly-recognized organization, plus an optional webhook POST.
Two modes:
- watch (the recurring feed): the standing monthly filter above. The first run seeds a baseline of what is already on file (uncharged) and watches forward, so you never get a wall of back-catalog.
- report (one-off): every organization recognized in a chosen state, subsection, mission, and period, as one cohort you can paste into a territory review. The public demo below is a report-mode run.
Who this is for
It is built for four vendor types that do nonprofit prospecting against new determinations, and each qualifies the same row on a different field:
- Donor-CRM implementation partners. The NTEE mission code says whether the organization is the kind your platform serves and the ruling month says how recently it was recognized, so filtering on both returns donor CRM leads in the missions you already support.
- Nonprofit D&O and general-liability brokers. A recognized 501(c)(3) has a seated board, which is where directors-and-officers exposure starts. Filter one state, take every mission, and the run returns that month's nonprofit insurance leads.
- Nonprofit-specialized CPA and bookkeeping firms. Recognition starts the 990 filing obligation and the first bookkeeping year, so nonprofit CPA prospecting usually wants a whole state rather than one mission.
- Mission-focused banks and credit unions. An operating account is opened against an EIN, and every row carries the EIN plus a mailing address for an organization the IRS recognized that month.
Why use Nonprofit Formation Radar?
- Selected by determination month. A row appears because the IRS RULING month puts the organization in your window, so new nonprofit leads reach you on the refresh that publishes that determination.
- Mission and geo targeting. Filter by state and by NTEE mission (a single letter like
P= Human Services orE= Health Care matches a whole major group; a longer prefix likeB82narrows), so the list stays narrow, not a national dump. - Deduplicated and forward-looking. You get one row per organization, deduplicated on EIN, and a filter starts watching the month you enroll it rather than replaying the back-catalog.
- Verifiable. Every row carries a per-EIN ProPublica Nonprofit Explorer link so you can confirm any record against a public source.
How to use Nonprofit Formation Radar
- Open the Input tab. Pick your States, your IRS subsection (default 501(c)(3)), and optional NTEE mission codes.
- Set a Filter name (for example
tx-humanservices-health) so the deduplication memory persists across your scheduled runs. - Set the run's max total charge to at least $9 plus any expected overage, because the $9 watch fee lands on a single run (see Pricing). Too low and the run fails closed: nothing delivered, no memory advanced, and one uncharged
billing-blockedrow telling you to raise the cap and rerun. - Run it once. The first run establishes a baseline and charges nothing; it watches forward from that month.
- Put it on a monthly Schedule. The IRS refreshes the extract monthly, so a monthly schedule keeps pace with the source.
- Each later run delivers only the organizations newly recognized since your last run.
Worked example (watch mode)
Input (also the store default):
{ "mode": "watch", "states": ["TX"], "subsection": "03", "nteeCodes": ["P", "E"], "filterName": "tx-humanservices-health" }
This watches Texas 501(c)(3) organizations in Human Services (NTEE P) and Health Care (NTEE E). The baseline row below is invented, because what a baseline holds depends on your own filter. The prospect row after it is a real record this actor returned, so its source_url opens a ProPublica page you can check; that record came from a report-mode run, which is why checked_at, filterName and billing are the only fields shown as a watch run would label them.
The first run returns a single uncharged baseline row and watches forward:
{ "event_type": "baseline", "filterName": "tx-humanservices-health", "billing": "uncharged","note": "Baseline established: 312 in-window organization(s) on file for this filter; watching forward from today. No back-catalog was charged." }
A later run, once new organizations are recognized, returns one prospect row each (the first 500 per filter-month bill at the $0.00001 platform minimum, half a cent per 500 rows):
{ "event_type": "new-org", "ein": "334706242", "name": "THE OPEN HORIZONS FOUNDATION","ico": null, "street": "5501 BALCONES DR STE A141", "city": "AUSTIN", "state": "TX", "zip": "78731-5041","subsection": "501(c)(3)", "ntee_cd": "P80", "ntee_label": "Human Services","ruling": "2026-05", "foundation_type": "Private operating foundation (other)","deductibility": "Contributions are deductible", "classification": "1000","source_url": "https://projects.propublica.org/nonprofits/organizations/334706242","checked_at": "2026-06-03T09:00:00.000Z", "filterName": "tx-humanservices-health","billing": "included-tier", "note": null }
A month with no new organization returns an uncharged digest-no-new row, so you always get a run receipt.
Report mode and the demo cohort
Report mode produces a one-shot new-determination cohort. This is the input behind the public demo below:
{ "mode": "report", "states": ["TX"], "subsection": "03", "nteeCodes": ["P", "E"], "period": "2026-05..2026-06" }
It returns every Texas 501(c)(3) in Human Services (NTEE P) and Health Care (NTEE E) whose IRS determination (RULING) month is May or June 2026, as flat prospect rows, plus a cohort summary written to the run's OUTPUT (the total, a tally by NTEE major group, by state, and by city). period accepts a single YYYY-MM or an inclusive YYYY-MM..YYYY-MM range.
Demo cohort (public, no account needed)
A report-mode run on 2026-08-09 produced the demo cohort from the input above:
306 organizations. By mission: Human Services 257, Health Care 49. By determination month: May 2026 136, June 2026 170. By city: Houston 36, Austin 24, Dallas 11, Katy 9, San Antonio 9, Fort Worth 8, Spring 8, Missouri City 6, Richmond 6, then a long tail across the state. All 306 rows carry a mailing address.
Read the full named list, no Apify account required:
- JSON: https://api.apify.com/v2/datasets/jZYJe2I8k1H5PvmaS/items?format=json&clean=true
- CSV: https://api.apify.com/v2/datasets/jZYJe2I8k1H5PvmaS/items?format=csv&clean=true
Each row shows EIN, organization name, mailing address, subsection, NTEE mission code and label, ruling month, foundation type, deductibility, a ProPublica source link, billing marker, and the timestamp of the pull.
The same filter, pulled twice
An earlier run of the narrower Texas Human Services filter is still public: https://api.apify.com/v2/datasets/7mduUnF1ehII8S6af/items?format=json&clean=true, pulled 2026-07-07.
For the identical filter and month (Texas, NTEE P, determinations ruled May 2026), that July pull held 76 organizations. The 2026-08-09 pull holds 114: 42 organizations appeared in the extract after the July pull, and 4 that were in it are no longer in the current active set, which is what a status or classification change looks like. Both datasets are public, so the comparison is reproducible.
That is one filter across one refresh, not a measured rate, but it is the case watch mode is built for: every run re-scans back three determination months (further back if a run was missed) and delivers late arrivals when they show up, deduplicated on EIN, so a filter watching since July would have picked up those 42 organizations on the August run.
Output data
Every prospect row is flat JSON keyed on EIN, mapped straight from the IRS Business Master File with no enrichment:
| Field | Meaning |
|---|---|
ein | Employer Identification Number (also the dedupe key). |
name, ico | Organization name and in-care-of name. |
street, city, state, zip | Mailing address (address-only; see the note above). |
subsection | Decoded IRS subsection label (for example 501(c)(3)). |
ntee_cd, ntee_label | NTEE mission code and its decoded major-group label (for example Human Services). |
ruling | The IRS determination month, normalized to YYYY-MM. |
foundation_type, deductibility, classification | Decoded IRS foundation type, deductibility status, and raw classification code. |
source_url | Per-EIN ProPublica Nonprofit Explorer link to re-verify the record. |
checked_at, filterName | When the run checked, and which saved filter produced the row. |
event_type | new-org for a prospect; baseline, digest-no-new, truncation-marker, billing-blocked, or unwatched for the uncharged status rows. |
billing | How the row was billed (included-tier, volume-tier, cohort-report, dry-run, or uncharged). |
Status rows (baseline, digest-no-new, truncation-marker, billing-blocked, unwatched) carry null payload columns and an explanatory note. You can download the dataset in JSON, CSV, Excel, or HTML.
Pricing
This actor is pay-per-event. Actor start is free.
- Filter watch-month, $9.00 per named filter per calendar month, charged once on the first run of the month that completes a successful stream over a fresh feed. Your account's first delivering month is free, meaning the first month that actually delivers new organizations rather than an empty baseline; prospect rows still bill during it. A baseline or re-baseline run is never charged, and the fee is deferred while the feed is stale.
- New-organization prospect, $0.00001 each for the first 500 delivered per filter-month (the Apify platform-minimum event price, half a cent per 500 rows, on top of the watch fee), then $0.02 each beyond the 500th (the volume tier). Each row is pushed before it is charged.
- Cohort report, $15.00 per successfully produced report; a stale feed or a failed run charges nothing.
How big is a month (per-state math). A mission-narrowed filter (one or two NTEE groups in one state) typically stays inside the 500 included tier, so it costs about $9 per month. A broad all-mission state filter can exceed it: measured 2026-07-06 across the trailing twelve determination months, an all-mission month averages about 1,178 new 501(c)(3) in California, 994 in Texas, 756 in Florida (nationally about 10,390 per month). Rows past the 500 included tier bill at $0.02 each, so a broad all-mission state month costs roughly $9 plus overage, at the default caps at most about $19 before the monthly ceiling switches to uncharged notice rows. To stay inside the $9 included tier, narrow with NTEE mission codes.
Two monthly guards on a broad filter. maxAlertRowsPerMonth (default 1000) caps delivered prospects per filter-month, and maxMonthlySpendUsd (default 40) caps cumulative volume-tier charges; whichever trips first switches the run to uncharged notice rows. Anything withheld is not billed until delivered and redelivers next month.
Set your per-run max total charge. Because the $9 watch fee lands on a single run, set that run's max total charge to at least $9 plus expected overage (budget about $19 for a broad all-mission state). If the cap is too low the run fails closed: it delivers nothing, advances no filter memory, and writes one uncharged billing-blocked row telling you to raise the cap and rerun. Raise the cap and the next run delivers that month's prospects.
Watch mode needs a paid Apify plan. Apify caps a single run's maximum charge at what your plan allows, and its documentation says the Free plan's cap cannot be raised beyond that plan's $5 monthly credit (Reaching platform limits). We saw that on our own Free-plan account on 2026-08-09: a run requesting a $20 maximum was granted $5. A $9 watch fee does not fit under a $5 cap, so we expect a Free-plan run to stop at the uncharged billing-blocked row rather than deliver unpaid work. That expectation comes from the documented limit and our own measurement of it, not from watching a Free-plan buyer hit it. On the Free plan, preview with dryRun: true and read the public demo cohort above; a paid plan allows a run limit above $9.
Cadence and latency, stated plainly
The IRS refreshes the Business Master File on a monthly cadence, and what counts as new is the RULING (determination) month, not a day. So the honest latency is the IRS monthly refresh after recognition, not same-week: you see a new organization in the run after the IRS publishes the month that carries its determination.
The newest month in the extract is still filling in. We measured the same month twice against the live source: on 2026-07-06, May 2026 carried 5,266 recognized 501(c)(3) organizations nationally; on 2026-08-09, after the next IRS refresh, that same month carried 8,217. So the newest determination month in an extract under-counts itself. How many refreshes it takes for a month to stop growing is something we have not measured. A late arrival is delivered on the run that first sees it and, because the dedupe is on EIN, it is delivered and billed once. Treat a one-shot report of the newest month as a snapshot of a month still in progress.
Baseline-forward behavior
Alerts begin the month you start watching a filter. The first run seeds the organizations already on file (uncharged) and watches forward, so you are never billed for the historical back-catalog. If you widen a saved filter under the same name (add states or missions), the actor re-baselines it, again with no back-catalog charge. For the recent back-catalog, use report mode.
Limitations
- Address-only. Mailing address, no phone and no email. See the note at the top.
- Monthly, not real-time. The source moves once a month, by determination month, so this is a monthly feed and not an intraday alert.
- Recognition, not incorporation. The IRS determination arrives months after an organization registers with its state, so a row marks the month a nonprofit became federally recognized, not the month it was founded. A state business-registry watcher sees the entity earlier.
- US federal recognition only. It reads the federal IRS extract, so it covers organizations the IRS has recognized; state-level charity registrations are a different record and are not included.
- Single public source. The actor reads one federal dataset. If the IRS pauses, truncates, or changes the extract, a freshness check catches it and the run delivers nothing (and does not charge the watch fee) rather than shipping a partial or stale product.
FAQ, disclaimer, and support
- Where does the data come from? The IRS Exempt Organizations Business Master File Extract (irs.gov/pub/irs-soi), a public federal record refreshed monthly. The actor reads it with no login and no key.
- Is this legal and compliant? The rows are public IRS exempt-organization records, and the actor redistributes public determination facts. It is registry information, not advice. You are responsible for ensuring your outreach complies with the rules that apply to you (for example fundraising, solicitation, and marketing regulations in your jurisdiction).
- Can I preview before I schedule? Yes. Set
dryRun: trueto stream, filter, and diff and return up to 5 preview rows taggedbilling: "dry-run". It charges no PPE event and writes no saved filter, billing, or event-history state. The preview rows still land in your dataset and OUTPUT, and the run still downloads and streams the full extract (about 343 MB, measured at 342,745,263 bytes), so ordinary Apify platform compute, storage, and egress usage applies. - What if the IRS download is very slow or stalls? The run holds a network time budget sized to finish inside the platform run timeout. If the download is severely slow or keeps stalling, the run stops fetching and delivers the uncharged stale digest instead of timing out: nothing delivered, no watch fee, and the next monthly run retries. Ordinary Apify usage still applies to the time spent before it stopped.
- Does it only cover 501c3 organizations? No. 501(c)(3) is the default, but the subsection input also accepts 501(c)(4) social welfare organizations, 501(c)(6) business leagues, 501(c)(19) veterans organizations, or every subsection at once. The filter, the dedupe memory, and the report work the same way for each.
- AI agents and MCP. The actor exposes its modes (watch, report, unwatch, list-events) through Apify's MCP integration, so an agent can enroll a filter and pull new determinations directly.
- Request a change. Use the Issues tab to report a problem or request a state, mission, or field.