The Mine Works
NIH RePORTER API: Search Grant Funding, Award Amounts, and Principal Investigators
← All posts
tutorial June 23, 2026 · 2 min read

NIH RePORTER API: Search Grant Funding, Award Amounts, and Principal Investigators

Search NIH grant awards by topic, agency, institution, or state. Returns project title, abstract, award amount, and PI data for research funding intelligence. No API key required.

Try the scraper

The actor referenced in this article. Pay only for results delivered.

View the scraper →

The NIH funds over $40 billion in research each year across 27 institutes and centers. Every active grant is recorded in NIH RePORTER with project details, award amounts, and principal investigator data. Our NIH RePORTER Scraper makes that database searchable without navigating the export interface.

What you get per grant

  • project_num — NIH project number
  • title — project title
  • abstract — full project abstract
  • agency — funding agency (e.g. NCI, NIAID, NHLBI)
  • award_amount — total award amount in USD
  • fiscal_year — fiscal year of the award
  • pi_names — list of principal investigator names
  • pi_profile_ids — NIH profile IDs for each PI
  • organization — institution name
  • city and state — institution location
  • start_date and end_date — project dates
  • activity_code — grant mechanism (R01, R21, K99, etc.)
  • scraped_at — ISO timestamp

Python example

import requests, time

run = requests.post(
    "https://api.apify.com/v2/acts/themineworks~nih-reporter-grants/runs",
    headers={"Authorization": f"Bearer {APIFY_TOKEN}"},
    json={
        "query": "CRISPR gene editing cancer",
        "agency": "NCI",
        "maxResults": 100
    }
)

run_id = run.json()["data"]["id"]

while True:
    r = requests.get(
        f"https://api.apify.com/v2/actor-runs/{run_id}",
        headers={"Authorization": f"Bearer {APIFY_TOKEN}"}
    ).json()
    if r["data"]["status"] in ("SUCCEEDED", "FAILED"):
        break
    time.sleep(5)

grants = requests.get(
    f"https://api.apify.com/v2/actor-runs/{run_id}/dataset/items",
    headers={"Authorization": f"Bearer {APIFY_TOKEN}"}
).json()

total = sum(g.get("award_amount", 0) for g in grants)
print(f"{len(grants)} grants, total ${total:,.0f}")
for g in grants[:5]:
    print(g["title"], f"${g['award_amount']:,.0f}")

Map funding by institution

import pandas as pd

df = pd.DataFrame(grants)
df["award_amount"] = pd.to_numeric(df["award_amount"], errors="coerce")

by_org = df.groupby("organization")["award_amount"].agg(["sum", "count"])
by_org.columns = ["total_funding", "grant_count"]
by_org = by_org.sort_values("total_funding", ascending=False)
print(by_org.head(20))

Parameters

ParameterDefaultNotes
queryKeyword search across title and abstract
agencyNIH agency code (e.g. "NCI", "NIAID")
activityCodeGrant mechanism (e.g. "R01", "K99")
stateInstitution state code
fiscalYearlatestFiscal year of award
maxResults100Maximum grants to return

Use cases

Academic business development. Identify PIs at universities who have recently received NIH funding in your technology area. Approach them as potential research collaborators or licensing partners.

Research landscape mapping. Before launching a new research program, pull all active NIH grants in the space to understand who is funded, at what scale, and by which agencies.

Grant writing support. Pull funded abstracts for R01s in your area to understand how funded investigators frame their specific aims and what language resonates with study sections.

Startup competitive intelligence. SBIR and STTR grants fund early-stage companies. Search for grants awarded to companies rather than universities to map the venture-fundable startups receiving NIH validation.

Life sciences sales. Target institutions and PIs with active NIH funding in your product’s application area — active funding means active spending on lab consumables, instruments, and software.

Pricing

$0.003 per grant record. Empty queries are not charged.

Available on Apify.

Related Actor

Explore the scraper referenced in this article — see inputs, outputs, and pricing, then run it on Apify.