NSF Research Grants Scraper
parseforge/nsf-awards-scraper
EducationDeveloper toolsOther
Scrapes NSF research grants by keyword, state, program, or date range. Returns each award as a flat row with title, abstract, amount, institution, and dates.
- Total users
- 2
- Monthly active
- 1
- Total runs
- 206
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
NSF Research Grants Scraper
Scrape NSF research grants by keyword, state, program, or date range, up to a million per run. Every award comes with its title, abstract, amount, institution, and dates. No API key. Export to CSV, JSON, Excel, or XML.
NSF's public award search is built for browsing one page at a time, not for pulling thousands of records. This Actor reads the NSF awards database directly, filters by keyword, awardee state, program name, or start date, and returns each matching grant as one flat row. It is the fastest way to turn NSF research grants into a dataset you can analyze.
| Who uses it | What they scrape NSF for |
|---|---|
| University research administrators | Monitor which NSF programs are funding peer institutions |
| Grant consultants | Find active NSF awards in a client's field to model winning proposals |
| Market researchers | Track federal R&D spending by topic, state, or institution |
| Data journalists | Analyze NSF funding patterns across regions and disciplines |
| Startup founders | Identify NSF-funded research that could become commercial technology |
What it does
This Actor collects NSF research grants by keyword, state, program, or date range, and returns each award as a flat row with its title, abstract, amount, institution, and dates.
- π Keyword search: find awards by any term in the title or abstract, like 'machine learning' or 'climate change'.
- πΊοΈ State filter: limit results to awardee institutions in a specific state, like CA or NY.
- π Date range: pull only awards that started between two dates.
- ποΈ Program filter: target a specific NSF program name, like 'CISE Core Programs'.
- π Flat output: every award is one row, ready for Excel, SQL, or a BI tool.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with NSF data
π Track federal R&D spending.
A market analyst runs the Actor weekly with a keyword like 'quantum' and a date range, then charts award amounts by state to spot funding shifts.
π― Find model grants for a proposal.
A grant consultant searches by program name and keyword, pulls the 50 most recent awards, and studies their abstracts to mirror successful language.
ποΈ Benchmark your university.
A research administrator filters by awardee state and institution, then compares award counts and amounts against peer schools.
π° Investigate funding patterns.
A data journalist scrapes all awards in a topic over five years, then joins with institution data to reveal concentration or gaps.
π Scout commercializable research.
A startup founder searches for 'prototype' and 'SBIR' in a technical field, then reviews abstracts to find licensable NSF-funded inventions.
Why choose this scraper
| What you get | |
|---|---|
| No API key | The NSF awards database is public; this Actor reads it directly |
| Up to 1M rows | Collect a full year of awards in one run |
| Fixed schema | Every award has the same fields, so joins and pivots work |
| CSV, JSON, Excel, XML | Export in the format your stack already uses |
How it compares
No other Store actor targets NSF the same way, so the honest comparison is with the alternatives teams actually weigh.
| NSF Research Grants Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When NSF changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor from a keyword, awardee state, program name, and start date range, alone or together, and filters run as each award is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10,
"keyword": "artificial intelligence"
}
A larger pull:
{
"maxItems": 200,
"keyword": "artificial intelligence"
}
Pricing
Pay-per-result: $0.0075 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.75 |
| 1,000 results | $7.50 |
| 10,000 results | $75.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the NSF Research Grants Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to NSF through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/nsf-awards-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your filters. A keyword that is too specific, a state with no awards in that topic, or a date range with no starts will return nothing. Try broadening the keyword or removing one filter.
Why did the run stop before maxItems?
The Actor stops when NSF has no more matching awards. If you expected more, loosen your filters or check that the keyword is spelled correctly.
Why are some fields empty in my output?
NSF does not always populate every field for every award. An empty abstract or missing end date is normal for some records.
Why is the run slow?
Large maxItems values mean many page requests. Reduce maxItems or narrow your filters to speed up the run.
Why did I get an error about the date format?
Use MM/DD/YYYY with leading zeros, like 01/05/2023. Other formats may be rejected by the NSF search.
FAQ
| Question | Answer |
|---|---|
| Does this Actor need an NSF API key? | No. It reads the public NSF awards search pages directly, so there is no registration or key. |
| What fields does each award row include? | Each row includes the award title, abstract, award amount, institution, state, program, and start and end dates, plus the award ID and URL. |
| Can I filter by award amount? | The current input schema does not have an amount filter. You can filter by keyword, state, program, and start date, then sort or filter amounts in your own tool. |
| How many awards can I get in one run? | Set maxItems up to 1,000,000. The Actor stops when it reaches that number or when no more awards match your filters. |
| What date format should I use for startDateStart and startDateEnd? | Use MM/DD/YYYY, for example 01/01/2023. Both fields are optional; leave them blank to include all dates. |
| Can I search by institution name? | There is no direct institution field in the input, but you can often find an institution by using a keyword that appears in its name or by filtering on awardee state. |
| Does the Actor handle pagination automatically? | Yes. It follows the NSF search result pages until it reaches maxItems or the end of results. |
| What export formats are supported? | CSV, JSON, Excel, and XML. Choose the format in the Actor's output settings. |
| Is the data live or cached? | The Actor reads the NSF site at run time, so you get the current public data on every run. |
| Can I schedule this Actor to run weekly? | Yes. Use Apify's scheduler to run it on a cron, and store results in a dataset or push them to a webhook. |
Related actors
Browse the full ParseForge collection for more scrapers.
π Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
β οΈ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by National Science Foundation. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | How many awards to collect per run. | 10 |
| keyword | string | Search awards by keyword (e.g. 'machine learning', 'climate change', 'quantum computing'). | artificial intelligence |
| awardeeState | string | Filter by state (2-letter code, e.g. CA, NY, TX). | not set |
| fundProgram | string | Filter by NSF program name. | not set |
| startDateStart | string | Filter awards starting after this date (MM/DD/YYYY). | not set |
| startDateEnd | string | Filter awards starting before this date (MM/DD/YYYY). | not set |
Pricing
from $7.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.007 to $0.0075 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~nsf-awards-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
