NSF Research Awards Scraper
Pricing
Pay per event
NSF Research Awards Scraper
Extract NSF award and grant records from Research.gov with PI, institution, funding, dates, program, and raw award data.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract public National Science Foundation award and grant records from Research.gov into clean Apify datasets for research intelligence, grant monitoring, prospecting, and academic market analysis.
What does NSF Research Awards Scraper do?
This actor searches the public NSF / Research.gov Award API and exports normalized award records.
It captures award titles, abstracts, principal investigators, recipient institutions, obligated funding, dates, program data, and source URLs.
Use it when you need repeatable NSF grant data without manually clicking through Award Search pages.
Who is it for?
π« University research offices tracking recent awards by topic, state, institution, or program.
πΌ Grant consultants building prospect lists of funded PIs and active research teams.
π§ͺ R&D and academic sales teams monitoring funded labs and emerging research areas.
π Market intelligence teams analyzing NSF funding trends by geography or program.
Why use it?
The actor turns public award search results into structured rows that can be exported as JSON, CSV, Excel, XML, or RSS from Apify.
It uses the public API directly, so runs are lightweight and do not need browser automation.
Raw API records can be preserved for audit trails and downstream custom mapping.
What data can you extract?
The dataset includes award IDs, titles, abstracts, agency, awardee institution, city, state, country, UEI, principal investigators, PI emails when available, funding amounts, dates, program names, directorate/division codes, performance location, and source links.
Optional rawAward keeps the original Research.gov response object.
How much does it cost to scrape NSF research awards?
Pricing is pay-per-event: a $0.005 run-start charge plus a per-award record charge.
The formula-derived BRONZE price is $0.000023219 per saved award, with lower unit prices on higher Apify tiers (SILVER $0.000018111, GOLD $0.000013932, PLATINUM/DIAMOND $0.00001). The input prefill is intentionally small enough for a cheap first test, and larger exports scale linearly by saved award record.
A 100-award validation run used about $0.00056 of platform resources before Apify billing margin, so the actor remains profitable at the published PPE rates.
How to use
-
Enter a keyword such as artificial intelligence, climate, quantum, CAREER, or SBIR.
-
Optionally add award date range, awardee state, performance state, funding program, agency, or program officer filters.
-
Set maxItems to the number of award records you want.
-
Run the actor and export the dataset in your preferred format.
Input options
keyword: free-text NSF award search.
dateStart/dateEnd: Research.gov award date bounds in MM/DD/YYYY format.
awardeeStateCode: two-letter state for recipient institution.
performanceStateCode: two-letter state for where the work is performed.
fundProgramName: program text such as Computer, Biology, CAREER, or SBIR.
agency: normally NSF.
programOfficerName: optional NSF program officer name.
maxItems: maximum awards to save.
includeRaw: include the original API record.
Output example
Each result is one NSF award record with normalized fields and a source URL.
Example fields: awardId, title, abstractText, awardeeName, primaryPiName, principalInvestigators, fundsObligatedAmount, awardDate, startDate, expirationDate, fundProgramName, directorate, division, performanceStateCode, sourceUrl, scrapedAt, rawAward.
Tips for better results
Use specific topic phrases when broad terms return too many awards.
Combine keyword with dateStart and dateEnd for recent-award monitoring.
Use awardeeStateCode for institution prospecting by state.
Use fundProgramName for program-focused workflows such as CAREER or SBIR-style research.
Integrations
Send the dataset to Google Sheets to maintain a living prospect list.
Use Apify webhooks to trigger CRM enrichment after each scheduled monitoring run.
Export JSON into a data warehouse for grant trend dashboards.
Connect with automation-lab actors for website/contact enrichment after identifying institutions and PIs.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/nsf-research-awards-scraper').call({ keyword: 'quantum computing', maxItems: 100 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("automation-lab/nsf-research-awards-scraper").call(run_input={"keyword": "climate", "maxItems": 100})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items[0])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab/nsf-research-awards-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"artificial intelligence","maxItems":100}'
Use with MCP
Claude Desktop, Claude Code, Cursor, and VS Code can call this actor through Apify MCP with the actor tool URL https://mcp.apify.com?tools=automation-lab/nsf-research-awards-scraper.
For Claude Code, add the remote MCP server with this command:
$claude mcp add --transport http apify-nsf-research-awards "https://mcp.apify.com?tools=automation-lab/nsf-research-awards-scraper"
For Claude Desktop, Cursor, or VS Code, add this JSON server configuration and keep your Apify token in the environment used by the app:
{"mcpServers": {"apify-nsf-research-awards": {"url": "https://mcp.apify.com?tools=automation-lab/nsf-research-awards-scraper","headers": {"Authorization": "Bearer ${APIFY_TOKEN}"}}}}
Example prompt: "Find 100 recent NSF artificial intelligence awards in California and summarize the top funded institutions."
Another prompt: "Export NSF CAREER awards from 2024 and identify principal investigators with university affiliations."
Scheduling and monitoring
Schedule weekly or monthly runs to monitor newly funded NSF awards by keyword or program.
Keep maxItems aligned with the expected result volume for your search.
Use date filters to avoid reprocessing the same historical awards.
Data quality notes
Research.gov field availability can vary by record.
The actor normalizes missing fields defensively and keeps rawAward when requested.
PI emails and phone fields are public API fields when present, but not guaranteed for every award.
Legality and responsible use
This actor uses publicly available Research.gov award data.
Always follow applicable laws, Apify terms, and your organization's data governance policies.
Avoid using contact information for spam or prohibited outreach.
FAQ
Q: Do I need an NSF API key? A: No, the public Research.gov Award API is accessible without a paid key for this workflow.
Q: Why are some PI emails missing? A: The public API does not include every contact field for every award.
Q: Why did a broad keyword stop at maxItems? A: maxItems is a user-set run limit; increase it for larger exports.
Q: Can I filter by state? A: Yes, use awardeeStateCode or performanceStateCode.
Related scrapers
Explore other automation-lab actors for government data, grant intelligence, contact enrichment, and organization research workflows.
Related actor links should use the automation-lab namespace after publication.
Field reference
-
awardIdβ normalized NSF award field for downstream analysis. -
titleβ normalized NSF award field for downstream analysis. -
abstractTextβ normalized NSF award field for downstream analysis. -
agencyβ normalized NSF award field for downstream analysis. -
awardeeNameβ normalized NSF award field for downstream analysis. -
awardeeCityβ normalized NSF award field for downstream analysis. -
awardeeStateCodeβ normalized NSF award field for downstream analysis. -
awardeeCountryCodeβ normalized NSF award field for downstream analysis. -
awardeeUeiNumberβ normalized NSF award field for downstream analysis. -
primaryPiNameβ normalized NSF award field for downstream analysis. -
principalInvestigatorsβ normalized NSF award field for downstream analysis. -
piEmailsβ normalized NSF award field for downstream analysis. -
programOfficerNameβ normalized NSF award field for downstream analysis. -
programOfficerEmailβ normalized NSF award field for downstream analysis. -
fundsObligatedAmountβ normalized NSF award field for downstream analysis. -
estimatedTotalAmountβ normalized NSF award field for downstream analysis. -
awardDateβ normalized NSF award field for downstream analysis. -
startDateβ normalized NSF award field for downstream analysis. -
expirationDateβ normalized NSF award field for downstream analysis. -
activeAwardβ normalized NSF award field for downstream analysis. -
historicalAwardβ normalized NSF award field for downstream analysis. -
fundProgramNameβ normalized NSF award field for downstream analysis. -
primaryProgramβ normalized NSF award field for downstream analysis. -
programElementCodeβ normalized NSF award field for downstream analysis. -
programReferenceCodeβ normalized NSF award field for downstream analysis. -
directorateβ normalized NSF award field for downstream analysis. -
divisionβ normalized NSF award field for downstream analysis. -
organizationNameβ normalized NSF award field for downstream analysis. -
performanceCityβ normalized NSF award field for downstream analysis. -
performanceStateCodeβ normalized NSF award field for downstream analysis. -
performanceCountryCodeβ normalized NSF award field for downstream analysis. -
performanceLocationβ normalized NSF award field for downstream analysis. -
sourceUrlβ normalized NSF award field for downstream analysis. -
queryKeywordβ normalized NSF award field for downstream analysis. -
scrapedAtβ normalized NSF award field for downstream analysis. -
rawAwardβ normalized NSF award field for downstream analysis.
Troubleshooting
-
If the API rejects a filter, remove the newest structured filter and rerun with keyword/date filters first.
-
If your dataset is empty, broaden the keyword or remove state/program constraints.
-
If you need exact API auditability, keep includeRaw enabled.
Changelog
- 0.1 β Initial private build for NSF award search exports.