Foundation Grants Scraper - Grantmaker & Funder Leads avatar

Foundation Grants Scraper - Grantmaker & Funder Leads

Pricing

from $4.00 / 1,000 grant records

Go to Apify Store
Foundation Grants Scraper - Grantmaker & Funder Leads

Foundation Grants Scraper - Grantmaker & Funder Leads

Extract US foundation grants & grantmaker leads from official IRS Form 990-PF & 990 Schedule I e-file data: funder, recipient, grant amount & purpose, assets, payout, trustees & contact phone. Grant prospecting + B2B lead-gen + monitoring. No browser, no key.

Pricing

from $4.00 / 1,000 grant records

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Foundation Grants Scraper — Grantmaker & Funder Leads (Who Funds Whom)

Extract the US foundation funding flow straight from official IRS Form 990-PF (Part XV) and Form 990 (Schedule I) e-file data — every grant a private foundation or grantmaking public charity paid, with the funder, the recipient, the amount, and the stated purpose. Then profile each grantmaker — assets, total giving, payout ratio, trustees, and a contact phone — as a ready-to-use lead.

This is the data behind paywalled grant-prospecting tools (Foundation Directory, grant databases), rebuilt from the public IRS source. No login, no API key, no browser.

Why this foundation grants scraper?

Most "nonprofit 990" scrapers stop at organization firmographics (revenue, assets, officers). They don't give you the part that matters for grant prospecting and funder intelligence: the grants themselves — who gave money to whom, how much, and why. This actor parses the raw IRS e-file XML to ship the richest grant + grantmaker dataset in the category.

DataTypical 990 scrapersThis actor
Grant edges (funder → recipient, amount, purpose)✅ from 990-PF Part XV + 990 Schedule I
Recipient name, EIN & full address
Reverse lookup — "who funds this nonprofit?"recipientNameQuery
Foundation assets (FMV), total giving & payout ratiopartial
Trustees / officers with titles & compensationpartial
Foundation contact phone✅ (on the filing)
Filter by funder state, recipient state, grant amount
Lead score (0–100) per grant & per funder
Only-new monitoring for a fresh-grants feed✅ opt-in
No per-run start feevaries

Use cases

  • Grant prospecting — nonprofits and grant writers find funders that give to causes, regions, or peer organizations like theirs. Use recipientNameQuery to see exactly who funds a comparable nonprofit, then pitch the same foundations.
  • Funder / grantmaker lead generation — sell to foundations: grant-management software, mission-aligned investing, foundation accounting/audit, philanthropy advisory, donor-advised-fund services. Score funders by assetsFMV, totalGrantsPaid and payoutRatioPct and reach the trustees.
  • Philanthropy & competitive intelligence — map a foundation's giving portfolio, track where the biggest funders deploy capital, and benchmark payout ratios against the 5% private-foundation minimum.
  • Wealth & relationship mapping — foundation trustees and officers are high-net-worth decision-makers; the trustee list is a relationship-mapping seed.
  • Due diligence & verification — confirm a grantmaker exists, what it gave, and to whom, from the authoritative IRS source.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the Foundation Grants Scraper, pick a year and your filters (funder/recipient state, name, amount), and click Start.
  3. Watch grant and funder records stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Tip: for a fast first look, set maxZipParts: 1 and sortBy: "none" to sample one ~100 MB data part. For complete results, leave maxZipParts: 0 (scan the whole year).

Input

{
"years": ["2024"],
"formTypes": ["990PF"],
"outputMode": "grants",
"funderStates": ["CA"],
"minGrantAmount": 25000,
"sortBy": "amount",
"maxResults": 2000
}

Reverse lookup — find every foundation that funded a specific organization:

{
"years": ["2024"],
"formTypes": ["990PF", "990"],
"recipientNameQuery": "stanford university",
"outputMode": "grants",
"maxResults": 1000
}
  • years — IRS processing years (each is a separate official dataset). Empty = latest available.
  • formTypes990PF (private foundations, Part XV grants paid) and/or 990 (public-charity grantmakers, Schedule I).
  • outputModegrants (funding-flow edges), funders (grantmaker profiles), or both.
  • funderEins — targeted lookup of specific foundations by EIN (fast).
  • funderNameQuery / funderStates / funderCities — filter the grantmaker.
  • recipientNameQuery / recipientStates — filter the recipient (the reverse-lookup engine).
  • minGrantAmount / maxGrantAmount / minFunderAssets — size filters.
  • withFunderPhoneOnly / includeTrustees / minLeadScore — quality controls.
  • sortByamount (largest first, scans the full year) or none (fastest, file order).
  • maxZipParts — limit how many ~100 MB data parts to download for a quick sample (0 = all).
  • monitorMode / monitorKey — emit only records not seen on previous runs of the same key.

Output

Grant record (recordType: "grant"):

{
"recordType": "grant",
"grantType": "paid",
"formType": "990-PF",
"taxYear": "2022",
"funderName": "Fischer Owen Orthopedic Fund",
"funderEin": "61-6168361",
"funderCity": "Pittsburgh",
"funderState": "PA",
"funderPhone": "(412) 442-3927",
"funderType": "Private Foundation",
"recipientName": "Norton Healthcare System",
"recipientEin": null,
"recipientCity": "Louisville",
"recipientState": "KY",
"recipientZip": "40232-5070",
"recipientAddress": "224 East Broadway, Louisville, KY 40232-5070",
"recipientStatus": "PC",
"amount": 376672,
"purpose": "GENERAL SUPPORT",
"funderProfileUrl": "https://projects.propublica.org/nonprofits/organizations/616168361",
"leadScore": 76
}

Funder record (recordType: "funder"):

{
"recordType": "funder",
"foundationType": "Public Charity",
"name": "Digital Green Foundation",
"ein": "26-2418959",
"phone": "(301) 706-2648",
"state": "CA",
"assetsFMV": 22334356,
"totalGrantsPaid": 3108509,
"grantsCount": 5,
"payoutRatioPct": 13.9,
"topGrant": { "recipientName": "Precision Development", "amount": 588147 },
"trustees": [{ "name": "Kentaro Toyama", "title": "Chair", "compensation": 0 }],
"trusteeCount": 19,
"profileUrl": "https://projects.propublica.org/nonprofits/organizations/262418959",
"leadScore": 80
}

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/foundation-grants-scraper').call({
years: ['2024'],
formTypes: ['990PF'],
funderStates: ['NY'],
minGrantAmount: 50000,
outputMode: 'both',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} grant & funder records`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new funder leads straight into your CRM.
  • Slack — get notified when a monitored search finds new grants.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find foundations in California that gave grants over $100k for education" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete nonprofit, grant & funding intelligence stack:

Tips

  • Complete vs. fast: maxZipParts: 0 (default) scans the whole year for complete results; maxZipParts: 1 + sortBy: "none" samples quickly and cheaply.
  • Find a funder's full portfolio: set funderEins (or funderNameQuery) and outputMode: "both" to get the foundation profile plus every grant it paid.
  • Reverse prospecting: recipientNameQuery (optionally with a recipient state) lists every foundation that funded a given organization — the fastest way to build a target funder list.
  • Bigger funders only: minFunderAssets and minGrantAmount focus the run on high-capacity grantmakers and meaningful gifts.
  • Fresh feed: combine Schedules with monitorMode to receive only newly published grants each run.

FAQ

Where does the data come from? The official IRS Form 990 e-file public datasets (apps.irs.gov) — Form 990-PF Part XV (grants and contributions paid by private foundations) and Form 990 Schedule I (grants by public charities). It's the authoritative US source for foundation giving.

Why are some recipient EINs blank? Private foundations (990-PF) generally are not required to report the recipient's EIN, so that field is often empty for 990-PF grants. Public-charity grants (990 Schedule I) usually include the recipient EIN.

How current is the data? IRS releases e-filed returns on a rolling basis; a foundation's fiscal-year filing is typically processed 1–2 years later. Pick the most recent years for the freshest grants, or run several years for history.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

Is this legal? This actor uses only publicly available IRS data. You are responsible for using the data in compliance with applicable laws.

A field is null — why? Some filings genuinely omit a phone, purpose, or recipient address. Fields are null only when the data doesn't exist in the filing, not because the scraper skipped them.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.