Tools / NIH RePORTER Scraper – No 15k Row Cap, PubMed Join
NIH RePORTER Scraper – No 15k Row Cap, PubMed Join
Search NIH-funded research projects via the official NIH RePORTER API: keyword, fiscal year, institute, activity code, organization, state and PI filters, plus award amounts, study sections and an optional PubMed join. Auto-chunks past the API's 15,000-row wall.
Run it
curl -X POST https://fetchsmith.com/api/v1/run/nih-reporter-scraper \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"fiscalYears": [2024], "keyword": "alzheimer", "maxResults": 100}'
Output fields
applId projectNum coreProjectNum subprojectId fiscalYear projectTitle activityCode awardType fundingMechanism awardAmount directCostAmt indirectCostAmt isActive isNew projectStartDate projectEndDate budgetStart budgetEnd awardNoticeDate dateAdded agencyCode icCode icAbbreviation icName icFundings opportunityNumber cfdaCode studySection spendingCategoriesDesc contactPiName principalInvestigators programOfficers orgName orgCity orgState orgCountry orgZip orgDeptType orgUei orgType congDist latitude longitude terms url abstractText publicHealthRelevance publicationCount pubmedIds
Sample output
{
"activityCode": "P30",
"applId": 10862591,
"awardAmount": 1,
"fiscalYear": 2024,
"icAbbreviation": "NIA",
"icName": "National Institute on Aging",
"orgCity": "Los Angeles",
"orgName": "UNIVERSITY OF SOUTHERN CALIFORNIA",
"orgState": "CA",
"projectEndDate": "2025-06-30T00:00:00",
"projectNum": "5P30AG066530-05",
"projectStartDate": "2020-09-01T00:00:00",
"projectTitle": "Alzheimer Disease Research Center",
"publicationCount": 899,
"studySection": "ZAG1-ZIJ-G(J1)",
"url": "https://reporter.nih.gov/project-details/10862591"
}
Guides
- NIH RePORTER's 15,000-row wall doesn't error — it silently shrinks your page, and a plural typo returns 2.97 million unfiltered rows — NIH's public grants API needs no key, but the offset wall truncates results instead of rejecting them, and an unrecognised criteria field name returns the entire database with HTTP 200.
Only publicly accessible pages are read. Respect the source site's terms when using the data.