NIH RePORTER Grant Search Scraper
Pricing
Pay per event
NIH RePORTER Grant Search Scraper
Search NIH RePORTER grants and export awards, PIs, organizations, institutes, abstracts, dates, and raw records from the official API.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Export grant and project records from the official NIH RePORTER API.
The actor turns NIH RePORTER searches into clean dataset rows with project numbers, titles, award amounts, recipient organizations, principal investigators, institutes, project dates, abstracts, and optional raw API records.
What does NIH RePORTER Grant Search Scraper do?
NIH RePORTER Grant Search Scraper searches api.reporter.nih.gov and saves matching grant projects to an Apify dataset.
It is built for repeatable research workflows where you need more than a one-off website search.
- ๐ Search by terms such as disease area, therapy, method, or technology
- ๐ Filter by fiscal year
- ๐๏ธ Filter by NIH institute / center codes
- ๐งโ๐ฌ Filter by principal investigator
- ๐ซ Filter by recipient organization
- ๐ Export abstracts and funding metadata
- โ๏ธ Use raw NIH criteria JSON for advanced searches
Who is it for?
This scraper is useful for teams that monitor public biomedical funding.
- University research offices tracking awards in a department
- Biotech business-development teams looking for collaboration leads
- Grant consultants building opportunity maps
- Competitive-intelligence analysts monitoring funded science
- Nonprofits following disease-area funding
- Data teams enriching grant dashboards
Why use this actor?
NIH RePORTER is public, but manual searches are hard to repeat at scale.
This actor provides:
- Structured dataset exports
- Pagination handling
- Flattened fields for spreadsheets and BI tools
- Optional raw records for data engineering
- Apify API, scheduling, webhooks, and integrations
- Pay-per-event billing tied to returned rows
Data you can extract
| Field | Description |
|---|---|
projectNumber | NIH project identifier |
projectTitle | Project title |
fiscalYear | Fiscal year |
awardAmount | Award amount when available |
organizationName | Recipient organization |
organizationCity | Recipient city |
organizationState | Recipient state |
organizationCountry | Recipient country |
organizationUei | Recipient UEI |
contactPiName | Contact PI or first PI |
principalInvestigators | All PI names returned by NIH |
agencyCode | NIH institute / center code |
agencyName | NIH institute / center name |
activityCode | Grant activity code when available |
applicationType | Application type when available |
projectStartDate | Project start date |
projectEndDate | Project end date |
abstractText | Abstract text |
reporterUrl | Link back to NIH RePORTER |
rawResult | Optional raw NIH API object |
How much does it cost to scrape NIH RePORTER grants?
The actor uses pay-per-event pricing.
- A small start event is charged once per run.
- A result event is charged for each saved grant row.
- You control spend with
maxResults. - The default input saves a modest sample so first runs stay cheap.
How to use
- Open the actor on Apify.
- Enter search terms such as
cancer immunotherapy. - Choose one or more fiscal years.
- Optionally add NIH institute codes, organizations, PIs, or activity codes.
- Set
maxResults. - Run the actor.
- Export the dataset as JSON, CSV, Excel, XML, or RSS.
Input options
Search terms
Use terms for the main NIH RePORTER keyword search.
Examples:
cancer immunotherapyAlzheimer biomarkersCRISPR deliveryopioid prevention
Fiscal years
Use fiscalYears to limit records to one or more NIH fiscal years.
Example:
[2024, 2023]
NIH agency / IC codes
Use agencyIcCodes for institute or center filters.
Examples:
NCINIAIDNHLBIDK
Organization names
Use organizationNames to focus on recipient institutions.
Examples:
JOHNS HOPKINS UNIVERSITYDANA-FARBER CANCER INSTUNIVERSITY OF CALIFORNIA
PI names
Use piNames to find awards tied to specific investigators.
Project numbers
Use projectNumbers for exact lookup workflows.
Activity codes
Use activityCodes to focus on mechanisms such as R01, U01, F32, or P30.
Raw criteria
Use rawCriteria when you know NIH RePORTER v2 criteria keys that are not exposed as first-class inputs.
Structured fields are merged with raw criteria and override matching keys.
Example input
{"terms": "cancer immunotherapy","fiscalYears": [2024],"agencyIcCodes": ["NCI"],"maxResults": 100,"pageSize": 100,"includeRawResult": false}
Example output
{"projectNumber": "5F32DK132864-03","projectTitle": "Elucidating novel molecular mechanisms of irisin-mediated effects via integrin","fiscalYear": 2024,"awardAmount": 56728,"organizationName": "DANA-FARBER CANCER INST","organizationCity": "BOSTON","organizationState": "MA","organizationCountry": "UNITED STATES","contactPiName": "Mu A","principalInvestigators": ["Mu A"],"agencyCode": "DK","agencyName": "National Institute of Diabetes and Digestive and Kidney Diseases","projectStartDate": "2022-05-01","projectEndDate": "2024-12-31","reporterUrl": "https://reporter.nih.gov/project-details/5F32DK132864-03"}
Tips for better searches
- Start broad, then add filters.
- Use fiscal years to reduce result volume.
- Use activity codes when you only need a grant mechanism.
- Use organization filters for account-based prospecting.
- Enable raw records only when you need full NIH API detail.
Integrations
The dataset can feed many workflows:
- ๐ Export to Google Sheets or Excel for grant landscape review
- ๐งฉ Send rows to Airtable or Notion through Apify integrations
- ๐ Schedule weekly monitoring and send webhooks to Slack
- ๐ง Feed grant abstracts into LLM classification pipelines
- ๐งช Enrich CRM accounts with NIH funding signals
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/nih-reporter-grant-search-scraper').call({terms: 'cancer immunotherapy',fiscalYears: [2024],maxResults: 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/nih-reporter-grant-search-scraper').call(run_input={'terms': 'cancer immunotherapy','fiscalYears': [2024],'maxResults': 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~nih-reporter-grant-search-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"terms":"cancer immunotherapy","fiscalYears":[2024],"maxResults":100}'
MCP usage
Use this actor from Apify MCP in Claude Code, Claude Desktop, or other MCP clients.
Claude Code setup:
$claude mcp add apify https://mcp.apify.com/?tools=automation-lab/nih-reporter-grant-search-scraper
Claude Desktop JSON config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=automation-lab/nih-reporter-grant-search-scraper"}}}
Example prompts:
- "Find 100 NIH RePORTER cancer immunotherapy grants from 2024 and summarize top recipient organizations."
- "Export NIH grants for Alzheimer biomarkers and group them by institute."
- "Look up R01 grants mentioning CRISPR delivery and list contact PIs."
Scheduling and monitoring
You can schedule the actor to run weekly or monthly.
Typical monitoring ideas:
- New awards in a disease area
- New grants to target organizations
- New awards for a PI list
- Changes in funding by institute
Legality and data source
This actor uses the official public NIH RePORTER API.
Users are responsible for complying with Apify terms, NIH API expectations, and applicable laws. The actor does not bypass logins, paywalls, or private systems.
FAQ
Does this scraper use the official NIH RePORTER API?
Yes. It sends HTTPS requests to the public NIH RePORTER v2 projects search API.
Can I export raw NIH records?
Yes. Enable includeRawResult to attach the raw API object to each dataset row.
Troubleshooting
Why did I get fewer rows than expected?
Your filters may be narrow, or the NIH API may have fewer matching records than maxResults. Try broader terms or remove organization/PI filters.
Why is activityCode empty?
Some NIH API result shapes do not include every requested field for every record. Use includeRawResult to inspect the original NIH object.
Related scrapers
Explore other automation-lab actors for research and lead workflows:
- https://apify.com/automation-lab/website-contact-finder
- https://apify.com/automation-lab/company-website-scraper
- https://apify.com/automation-lab/google-news-scraper
Changelog
Initial version supports NIH RePORTER project search through the official API, flattened grant rows, structured filters, pagination, and optional raw records.