NIH Research Grants Search
Pricing
Pay per usage
NIH Research Grants Search
Search NIH-funded research grants. Filter by topic, PI name, organization, fiscal year, and amount. Returns titles, abstracts, investigators, funding, and detail URLs. No API key needed.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

ryan clinton
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does NIH Research Grants Search do?
NIH Research Grants Search queries the NIH Reporter API to find and extract detailed information about research grants funded by the National Institutes of Health. The actor returns structured data on grant projects including award amounts, principal investigators, institutions, project abstracts, funding agencies, and activity codes.
The NIH funds over $40 billion in biomedical research annually across thousands of institutions. This actor gives you programmatic access to that funding data -- search by keywords, researcher name, institution, fiscal year, or minimum award amount, and get clean structured output ready for analysis.
Why use NIH Research Grants Search on Apify?
- No API complexity -- The NIH Reporter API uses a POST-based search with nested JSON criteria objects. This actor translates a simple input form into the correct API format automatically.
- Sorted by award amount -- Results are sorted by award amount (largest first), so you immediately see the highest-funded grants.
- Automatic pagination -- Fetches up to 10,000 results across multiple API pages (500 per page) with built-in 300 ms rate limiting.
- Rich output -- Each grant includes principal investigators, institution details, direct/indirect costs, funding agency breakdown, activity codes, project dates, and optional full abstracts.
- Schedule for monitoring -- Run weekly to track newly funded grants in your research area or from competing institutions.
- No API key required -- The NIH Reporter API is free and does not require authentication.
Key features
- Keyword search -- Search across grant titles, abstracts, and scientific terms (e.g., "CRISPR", "machine learning cancer", "Alzheimer biomarker").
- PI search -- Find grants by principal investigator name.
- Institution filter -- Filter by organization name (e.g., "Stanford University", "MIT", "Johns Hopkins").
- Fiscal year filter -- Narrow results to specific fiscal years.
- Minimum award amount -- Focus on large grants by setting a dollar threshold.
- Active grants toggle -- Filter to only currently active grants.
- Optional abstracts -- Include or exclude full project abstract text to control output size.
How to use NIH Research Grants Search
- Navigate to the NIH Research Grants Search actor on the Apify Store.
- Click Try for free to open the actor in Apify Console.
- Enter search keywords (e.g., "artificial intelligence"), a PI name, or an institution name.
- Optionally set fiscal years, minimum award amount, and active-only filter.
- Click Start and wait for the run to complete.
- Download your results from the Dataset tab in JSON, CSV, or Excel format.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchText | string | No | -- | Search across grant titles, abstracts, and terms (e.g., "CRISPR", "machine learning cancer") |
piName | string | No | -- | Principal investigator name (e.g., "Zhang", "Smith, John") |
orgName | string | No | -- | Institution name (e.g., "Stanford University", "MIT") |
fiscalYears | string | No | -- | Comma-separated fiscal years (e.g., "2024,2025,2026"). Leave empty for all. |
minAmount | integer | No | -- | Minimum award amount in US dollars |
activeOnly | boolean | No | false | Only return currently active grants |
includeAbstracts | boolean | No | true | Include full project abstract text in output |
maxResults | integer | No | 100 | Maximum number of grants to return (1--10,000) |
Input examples
AI research grants in 2025:
{"searchText": "artificial intelligence","fiscalYears": "2025","maxResults": 500}
Large grants from a specific institution:
{"orgName": "Stanford University","minAmount": 1000000,"activeOnly": true,"maxResults": 200}
Grants by a specific researcher:
{"piName": "Zhang","fiscalYears": "2024,2025","includeAbstracts": true,"maxResults": 100}
Cancer research funding overview:
{"searchText": "cancer immunotherapy","minAmount": 500000,"activeOnly": true,"maxResults": 1000}
Input tips
- Use specific keywords for targeted results. "CRISPR gene therapy" is more precise than just "CRISPR".
- PI name search is flexible. You can search by last name only ("Zhang") or full name ("Zhang, Feng").
- Fiscal years are comma-separated. Use "2024,2025" to search two years at once.
- Disable abstracts for smaller output. Abstracts can be very long and significantly increase dataset size.
- Combine filters for precision -- e.g., a PI name at a specific institution with a minimum award amount.
Output example
{"applicationId": 10589234,"projectNumber": "5R01CA278123-02","projectTitle": "Machine Learning Approaches for Early Cancer Detection","abstractText": "This project aims to develop novel machine learning models...","contactPiName": "ZHANG, FENG","principalInvestigators": ["ZHANG, FENG", "SMITH, JENNIFER A."],"organization": "MASSACHUSETTS INSTITUTE OF TECHNOLOGY","orgCity": "CAMBRIDGE","orgState": "MA","orgCountry": "UNITED STATES","agencyCode": "NCI","agencyName": "National Cancer Institute","fundingAgencies": ["NCI"],"awardAmount": 1250000,"directCost": 850000,"indirectCost": 400000,"fiscalYear": 2025,"activityCode": "R01","awardType": "5","projectStartDate": "2024-04-01T00:00:00Z","projectEndDate": "2029-03-31T00:00:00Z","isActive": true,"isNew": false,"covidResponse": null,"terms": "Cancer; Machine Learning; Artificial Intelligence; Early Detection...","congressionalDistrict": "MA-07","detailUrl": "https://reporter.nih.gov/project-details/10589234","extractedAt": "2025-06-15T10:30:45.123Z"}
Output fields
| Field | Type | Description |
|---|---|---|
applicationId | number | NIH application ID (unique per grant application) |
projectNumber | string | Full NIH project number (e.g., "5R01CA278123-02") |
projectTitle | string | Title of the research project |
abstractText | string|null | Full project abstract (null if abstracts disabled) |
contactPiName | string | Contact principal investigator name |
principalInvestigators | string[] | All PI names on the grant |
organization | string | Grantee institution name |
orgCity | string | Institution city |
orgState | string | Institution state code |
orgCountry | string | Institution country |
agencyCode | string | Administering NIH institute code (e.g., "NCI", "NINDS", "NIAID") |
agencyName | string | Full name of the administering NIH institute |
fundingAgencies | string[] | All funding agency abbreviations |
awardAmount | number | Total award amount in US dollars for this fiscal year |
directCost | number|null | Direct cost portion of the award |
indirectCost | number|null | Indirect (facilities & administration) cost portion |
fiscalYear | number | Federal fiscal year of the award |
activityCode | string | Grant mechanism type (e.g., "R01", "R21", "U01", "P01") |
awardType | string | Award type code |
projectStartDate | string|null | Project start date (ISO format) |
projectEndDate | string|null | Project end date (ISO format) |
isActive | boolean | Whether the grant is currently active |
isNew | boolean | Whether this is a new grant (vs. continuation) |
covidResponse | string|null | COVID-19 response designation, if applicable |
terms | string|null | Scientific terms and keywords associated with the grant |
congressionalDistrict | string|null | Congressional district of the institution |
detailUrl | string|null | Direct URL to the grant detail page on NIH Reporter |
extractedAt | string | ISO 8601 timestamp of extraction |
Use cases
- Research intelligence -- Track funding trends in your field. Identify which topics are receiving the most NIH investment.
- Competitive analysis -- See what grants your institution's competitors are receiving, their award amounts, and research topics.
- Collaboration discovery -- Find PIs working on related topics at other institutions for potential collaboration.
- Grant writing -- Analyze successful grants in your area to understand funding levels, activity codes, and research directions.
- Policy analysis -- Track how NIH funding is distributed across states, congressional districts, and research topics.
- Academic journalism -- Investigate how federal research dollars are allocated across institutions and topics.
- Industry R&D monitoring -- Track NIH-funded research that could lead to commercial products or licensing opportunities.
Programmatic access (API)
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("ryanclinton/nih-research-grants").call(run_input={"searchText": "artificial intelligence","fiscalYears": "2025","minAmount": 500000,"maxResults": 500,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"${item['awardAmount']:,.0f} - {item['projectTitle']}")print(f" PI: {item['contactPiName']} at {item['organization']}")print(f" Agency: {item['agencyName']} ({item['activityCode']})")
JavaScript:
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_API_TOKEN" });const run = await client.actor("ryanclinton/nih-research-grants").call({searchText: "artificial intelligence",fiscalYears: "2025",minAmount: 500000,maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const item of items) {console.log(`$${item.awardAmount.toLocaleString()} - ${item.projectTitle}`);console.log(` PI: ${item.contactPiName} at ${item.organization}`);}
cURL:
# Start a runcurl "https://api.apify.com/v2/acts/ryanclinton~nih-research-grants/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"searchText": "artificial intelligence","fiscalYears": "2025","minAmount": 500000,"maxResults": 500}'# Fetch results (after run completes)curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json" \-H "Authorization: Bearer YOUR_API_TOKEN"
How it works -- technical details
Input (searchText, piName, orgName, fiscalYears, minAmount)│▼┌─────────────────────────────────────────────┐│ 1. Criteria Builder ││ • searchText → advanced_text_search obj ││ {operator: "and", search_field: "terms"} ││ • piName → pi_names: [{any_name: name}] ││ • orgName → org_names: [name] ││ • fiscalYears → comma-split to int array ││ • minAmount → award_amount_range.min_amount││ • activeOnly → is_active: true │└──────────────────┬──────────────────────────┘│▼┌─────────────────────────────────────────────┐│ 2. Paginated POST Fetcher ││ • POST api.reporter.nih.gov/v2/projects/ ││ search ││ • Body: {criteria, offset, limit, ││ sort_field: "award_amount", ││ sort_order: "desc"} ││ • 500 results per page (API max) ││ • Increment offset by limit each page ││ • 300 ms delay between requests ││ • Stop at maxResults or end of results │└──────────────────┬──────────────────────────┘│▼┌─────────────────────────────────────────────┐│ 3. Transform ││ • PIs: extract full_name from each PI obj ││ • Org: flatten organization nested object ││ • Agencies: map to abbreviation strings ││ • Costs: direct + indirect breakdown ││ • Abstract: include or exclude per input ││ • Detail URL: link to NIH Reporter page │└──────────────────┬──────────────────────────┘│▼┌─────────────────────────────────────────────┐│ 4. Output & Summary ││ • Each grant → Apify dataset ││ • Summary: total funding, avg award, ││ unique orgs, agencies, active count │└─────────────────────────────────────────────┘
API details
The NIH Reporter API uses a POST endpoint at https://api.reporter.nih.gov/v2/projects/search. The request body contains:
| Field | Description |
|---|---|
criteria | Nested search criteria object (keyword search, PI names, org names, fiscal years, award range, active status) |
offset | Pagination offset (starts at 0) |
limit | Results per page (max 500) |
sort_field | Sort by award_amount |
sort_order | desc (largest awards first) |
Criteria mapping
| Input | API criteria field | Format |
|---|---|---|
searchText | advanced_text_search | {operator: "and", search_field: "terms", search_text: "..."} |
piName | pi_names | [{any_name: "..."}] |
orgName | org_names | ["..."] |
fiscalYears | fiscal_years | [2024, 2025] (parsed from comma-separated string) |
minAmount | award_amount_range | {min_amount: 500000} |
activeOnly | is_active | true |
Common activity codes
| Code | Meaning |
|---|---|
| R01 | Research Project Grant (standard investigator-initiated) |
| R21 | Exploratory/Developmental Grant (smaller, higher risk) |
| R43/R44 | Small Business Innovation Research (SBIR) |
| U01 | Cooperative Agreement (NIH involvement in research) |
| P01 | Program Project Grant (multi-project) |
| K01/K08/K23 | Career Development Awards |
| T32 | Training Grants |
| F31/F32 | Fellowship Awards |
How much does it cost to use?
| Scenario | Grants | Pages | Time | Est. cost |
|---|---|---|---|---|
| Quick search | 100 | 1 | ~10 sec | ~$0.001 |
| Medium search | 500 | 1 | ~15 sec | ~$0.005 |
| Large dataset | 5,000 | 10 | ~1 min | ~$0.01 |
| Maximum extraction | 10,000 | 20 | ~2 min | ~$0.02 |
The NIH Reporter API is completely free with no API key required. Apify's free tier includes $5 of monthly platform usage.
Limitations
- 10,000 result maximum -- The actor caps at 10,000 results per run. Use fiscal year filters to split larger datasets across multiple runs.
- NIH grants only -- This actor searches NIH-funded grants only. It does not include NSF, DOD, DOE, or other federal agency grants.
- Keyword search uses AND logic -- The advanced text search combines terms with AND. "machine learning cancer" finds grants containing both terms. Use more specific phrases for targeted results.
- Fiscal year data availability -- Some fiscal years may have incomplete data, especially the current year where not all grants have been awarded yet.
- Abstract length -- Grant abstracts can be very long. With abstracts enabled, dataset files can be large. Disable
includeAbstractsfor compact output. - No full-text search of documents -- The search covers titles, abstracts, and indexed terms, but not the full text of grant applications or progress reports.
- Award amounts are per fiscal year -- The
awardAmountfield represents funding for the specified fiscal year, not the total grant amount across all years. - Uppercase names -- PI and organization names are stored in uppercase format.
Responsible use
- NIH grant data is public information funded by US taxpayers. Use it responsibly for research, analysis, and transparency purposes.
- Follow the NIH Reporter Terms of Use when using the data.
- Do not overload the NIH Reporter API with excessive requests. The actor's built-in 300 ms delay between pages handles rate limiting automatically.
- When publishing analysis of NIH funding data, cite NIH Reporter as the data source.
FAQ
Do I need an API key? No. The NIH Reporter API is free and does not require authentication.
How current is the data? NIH Reporter data is updated regularly as grants are awarded and renewed throughout the fiscal year. New awards typically appear within a few weeks of being funded.
What is the difference between direct and indirect costs? Direct costs fund the actual research (personnel, equipment, supplies). Indirect costs (also called F&A -- facilities and administration) cover institutional overhead like building maintenance, utilities, and administration.
What do the activity codes mean? Activity codes indicate the grant mechanism type. R01 is the standard investigator-initiated research grant, R21 is for exploratory research, U01 is a cooperative agreement with NIH involvement, and K-series awards are career development grants. See the full list at NIH activity codes.
Can I search by NIH institute?
Not directly through the input, but the output includes agencyCode and agencyName fields (e.g., "NCI" for National Cancer Institute, "NIAID" for National Institute of Allergy and Infectious Diseases). You can filter results after extraction.
Integrations and related actors
The output dataset can be exported in JSON, CSV, or Excel format, or accessed programmatically via the Apify API. Use webhooks to trigger automated workflows when a run completes.
| Related Actor | Description | Use with |
|---|---|---|
| PubMed Biomedical Literature Search | Search biomedical research papers | Find publications from NIH-funded researchers |
| Clinical Trial Tracker | Search ClinicalTrials.gov | Cross-reference grants with clinical trials they fund |
| OpenAlex Research Paper Search | Search academic papers | Track publications resulting from NIH grants |
| Semantic Scholar Paper Search | AI-powered paper search | Find cited and citing papers from grant-funded research |
| Grants.gov Federal Grant Search | Search all federal grants | Find grants from agencies beyond NIH |
| ORCID Researcher Search | Look up researcher profiles | Connect PIs to their full publication records |
Connect with any Apify integration including Google Sheets, Zapier, Make (Integromat), Amazon S3, and custom API endpoints to build automated research funding monitoring workflows.