NIH Grants Scraper — RePORTER Funding & PI Data
Pricing
Pay per event
NIH Grants Scraper — RePORTER Funding & PI Data
Search NIH RePORTER and export funded grants — project title, abstract, award amount, fiscal year, recipient institution, principal investigator and NIH institute/center — as clean JSON, CSV or Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Quick answer: The NIH Grants Scraper searches NIH RePORTER and exports funded grants — project title, abstract, award amount, fiscal year, recipient institution, principal investigator and NIH institute/center — into JSON, CSV or Excel. RePORTER's full corpus is about 2.9 million project records and its API caps how deep any one query can page, so we require a real filter (fiscal year, text, institution, PI or agency) before a run starts, page within NIH's own ceilings, and unpack its bracket-packed
<Term A><Term B>topic strings into a real JSON array. Pricing is pay-per-result — $6.20 per 1 000 grants, no subscription, no card required to try it.
🎯 What this scrapes
NIH RePORTER is the federal government's public record of every grant it funds — but its unfiltered corpus is 2.9 million project records, its search API caps how deep any single query can page, and it packs research topics into a single string like <Term A><Term B> instead of a usable list. This Actor requires a real filter (fiscal year, text, institution, PI or agency), pages within the platform's own limits, and flattens every project — title, abstract, award amount, institution, PI and agency — into one clean row.
🔥 What we handle for you
- 🏛️ Required-filter guardrail — we block an unfiltered run before it starts so you never accidentally pay for a crawl of NIH's entire 2.9M-project history.
- 🔁 Retries with exponential backoff on
429/5xxand transient network errors — up to 5 attempts per page. - 📄 Pagination that respects NIH's own ceilings — page size and offset limits handled for you, with a clear status message if a search is too broad to page all the way through.
- 🧹 Terms and PI lists flattened — NIH's bracket-packed
<Term A><Term B>strings become a real JSON array, and every principal investigator is a structured record. - 🧊 Clean, typed dataset rows — Pydantic-validated, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for grant records that hit your dataset. No data, no charge.
💡 Use cases
- Track who got NIH funding in your therapeutic area before a partnership or licensing conversation.
- Build a competitive-intelligence feed of a rival institution's or PI's active grants.
- Size a research niche's funding trend across fiscal years for a market or investment thesis.
- Feed a grant-writing or business-development CRM with fresh award data instead of a stale export.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
fiscalYears | array | no | [2024] | Only grants active/awarded in these fiscal years, e.g. [2024, 2025]. |
textSearch | string | no | 'cancer immunotherapy' | Match this text against project title, abstract and indexed research terms. |
orgNames | array | no | '—' | Recipient institution names to match, e.g. 'Harvard University'. |
piNames | array | no | '—' | Principal investigator names to match, e.g. 'Smith'. |
agencies | array | no | '—' | NIH institute/center abbreviation codes to match, e.g. 'NCI', 'NIAID'. |
minAwardAmount | integer | no | '—' | Only grants awarded at least this much, in US dollars. |
maxAwardAmount | integer | no | '—' | Only grants awarded at most this much, in US dollars. |
maxResults | integer | no | 100 | Stop after this many grant records. Each record is one billed result row. |
proxyConfiguration | object | no | {'useApifyProxy': False} | NIH RePORTER is a public federal API and does not need a proxy. Leave this off unless your account requires egress… |
Example input
{"fiscalYears": [2024],"textSearch": "cancer immunotherapy","maxResults": 3,"proxyConfiguration": {"useApifyProxy": false}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
appl_id | integer | NIH RePORTER application ID. |
project_num | string | Full project number for this fiscal year. |
core_project_num | string | Project number without the year suffix. |
project_title | string | Project title. |
abstract_text | string | Project abstract as submitted to NIH. |
fiscal_year | integer | Fiscal year of this award record. |
award_amount | number | Total award amount, USD. |
direct_cost_amt | number | Direct cost portion, USD. |
indirect_cost_amt | number | Indirect cost portion, USD. |
org_name | string | Recipient institution name. |
org_city | string | Recipient institution city. |
org_state | string | Recipient institution US state code. |
org_country | string | Recipient institution country. |
agency_code | string | Funding NIH institute/center abbreviation. |
agency_name | string | Funding NIH institute/center full name. |
contact_pi_name | string | Contact principal investigator, as printed. |
investigators | array | All listed principal investigators. |
project_start_date | string | Project period start. |
project_end_date | string | Project period end. |
is_active | boolean | Whether the project is currently active. |
spending_categories_desc | string | Human-readable NIH spending/topic categories. |
terms | array | Indexed research terms for this project. |
project_detail_url | string | NIH RePORTER project detail page. |
Example output
{}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.20 | One-off warm-up charge per run |
result | $0.006 | Per dataset item |
Example: 1 000 results at the rates above ≈ $6.20. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
- Returns NIH RePORTER's published record only — no reviewer scores, summary statements or non-NIH federal funders.
- A single search can page roughly 15,000 records deep; broader topics need multiple narrower runs (e.g. one per fiscal year).
❓ FAQ
Do I need an API key?
No. NIH RePORTER's search API is public and keyless — you just need a filter narrow enough to page through.
Why do I have to set a filter?
NIH RePORTER's unfiltered corpus is 2.9 million project records. Requiring at least one of fiscal year, text, institution, PI or agency keeps a run scoped and affordable.
Is there a limit on how many results I can page through?
NIH RePORTER itself caps pagination at roughly 15,000 records per search, regardless of the total match count. Narrow your filters (e.g. add a fiscal year) to search a large topic in slices.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.