# NIH & NSF Research Grant Awards Feed (new awards, daily) (`moment-data/research-grant-awards-feed`) Actor

New NIH and NSF research grant awards in one feed: institution, amount, title, abstract, funding institute, award type and dates. Filter by keyword, institution, state or amount. 'New since last run' mode for lab-supply, CRO and research-sales lead alerts.

- **URL**: https://apify.com/moment-data/research-grant-awards-feed.md
- **Developed by:** [Luke Miller](https://apify.com/moment-data) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## NIH & NSF Research Grant Awards Feed: New Research Funding by Institution, Daily

Get **new US research grant awards from NIH (RePORTER) and the National Science Foundation** in one clean feed: institution, award amount, project title and abstract, funding institute/directorate, award type and project dates. Filter by **keyword, institution, state or amount**, and schedule it with **"new since last run"** mode to receive only awards you have not seen.

Uses the official, free NIH RePORTER and NSF Award Search APIs: no API key, no login.

### Who it's for

- **Lab-supply, instrument, reagent and software vendors**: newly funded labs buy equipment. Get a weekly list of new awards that mention your technology ("mass spectrometry", "cryo-EM", "single-cell") at institutions in your sales territory.
- **CROs, core facilities and research-services firms**: spot new NIH projects in your therapeutic area early.
- **University research offices, foundations and consultants**: competitive intelligence on who gets funded for what.
- **Journalists, analysts and policy researchers** tracking federal research funding by state, institution or topic.

### What you get

Each record is one award:

- **What**: title, abstract (trimmed), NIH spending categories or NSF directorate/division, program, award type (NIH activity code + mechanism, NSF grant type), new vs continuation (NIH).
- **Who (institution only)**: institution, city, state, country, UEI.
- **Money and dates**: obligated amount (USD), NSF estimated total, NIH direct/indirect cost, award date, date added, project start/end, fiscal year.
- **Link** to the official NIH RePORTER or NSF award page.

Principal investigator, program officer and contact names, emails and phone numbers are **never output**; follow the official link if you need them.

### Quick start

1. Click **Try for free** and run the default input `{}`: the 30 newest awards from the last 30 days (15 NIH + 15 NSF) in a few seconds.
2. Narrow it down, for example new CRISPR awards in Massachusetts and California:

```json
{ "keywords": ["CRISPR", "gene editing"], "states": ["MA", "CA"], "maxItems": 100 }
```

3. For alerts, set `"mode": "sinceLastRun"` and **schedule** the Actor daily or weekly.

#### More recipes

- Big NSF awards: `{ "sources": ["nsf"], "minAmount": 500000, "lookbackDays": 60 }`
- Only brand-new NIH projects at one university system: `{ "sources": ["nih"], "onlyNewAwards": true, "institutionKeywords": ["University of Texas"] }`
- AI research funding: `{ "keywords": ["machine learning", "artificial intelligence", "deep learning"] }`

### Input

| Field | Default | Description |
|---|---|---|
| `mode` | `window` | `window` = stateless lookback; `sinceLastRun` = only awards not delivered before (per `stateKey`) |
| `sources` | `["nih","nsf"]` | one or both |
| `lookbackDays` | 30 | award / added-date window (1-365) |
| `keywords` | none | any of these in title, abstract or terms |
| `institutionKeywords` | none | institution name contains |
| `states` | all | 2-letter US state codes |
| `minAmount` | none | minimum USD amount |
| `onlyNewAwards` | false | drop NIH continuation years |
| `maxItems` | 30 | max awards per run, newest first |
| `stateKey` | `default` | separate saved state per saved search |

### Output (example, real records from Oct 2026, abstracts trimmed)

```json
[
  {
    "awardId": "NSF-2629489",
    "source": "NSF",
    "agency": "NSF",
    "fundingInstitute": "Directorate for Social, Behavioral and Economic Sciences / Division of Behavioral and Cognitive Sciences",
    "projectNumber": "2629489",
    "title": "Origins of Ceremonial Architecture and Sedentary Life",
    "abstract": "Around the world, large building projects and public rituals predated and contributed to the development of complex societies, such as states. Of particular interest are regions where states developed without the externa…",
    "institution": "University of Arkansas",
    "institutionCity": "Fayetteville",
    "institutionState": "AR",
    "institutionCountry": "UNITED STATES",
    "institutionUei": "MECEHTM8DB17",
    "awardDate": "2026-10-28",
    "addedDate": "2026-10-28",
    "startDate": "2026-12-01",
    "endDate": "2027-08-31",
    "amount": 56322,
    "totalEstimatedAmount": 109829,
    "directCost": null,
    "indirectCost": null,
    "fiscalYear": null,
    "awardType": "Standard Grant",
    "isNewAward": null,
    "program": "Archaeology",
    "categories": [
      "SBE",
      "BCS"
    ],
    "url": "https://www.nsf.gov/awardsearch/showAward?AWD_ID=2629489"
  },
  {
    "awardId": "NIH-11550900",
    "source": "NIH",
    "agency": "NICHD",
    "fundingInstitute": "Eunice Kennedy Shriver National Institute of Child Health and Human Development",
    "projectNumber": "7R21HD116120-02",
    "title": "Insights into EHMT1 Variants in the Neurodevelopmental Disorder Kleefstra Syndrome through Structural Dynamics and Functional Analysis",
    "abstract": "Euchromatic histone methyltransferase 1 (EHMT1, also known as GLP) is a key histone methylation writer intricately associated with Kleefstra Syndrome (KS), a multifaceted neurodevelopmental disorder characterized by inte…",
    "institution": "Mayo Clinic Arizona",
    "institutionCity": "Scottsdale",
    "institutionState": "AZ",
    "institutionCountry": "UNITED STATES",
    "institutionUei": "ULMJJBL7ZXX3",
    "awardDate": "2026-10-23",
    "addedDate": "2026-10-24",
    "startDate": "2026-06-01",
    "endDate": "2027-05-31",
    "amount": 194527,
    "totalEstimatedAmount": null,
    "directCost": 124750,
    "indirectCost": 69777,
    "fiscalYear": 2024,
    "awardType": "R21 - Non-SBIR/STTR",
    "isNewAward": true,
    "program": null,
    "categories": [],
    "url": "https://reporter.nih.gov/project-details/11550900"
  }
]
```

A run summary is saved to the `OUTPUT` record: window, total matches per source, filters dropped.

### Data sources, timing and fair use

- **NIH RePORTER API v2** (reporter.nih.gov): NIH and other HHS/VA research awards, filtered by the date the record was added to RePORTER. RePORTER loads new awards weekly, so the default window is 30 days.
- **NSF Award Search API** (api.nsf.gov): NSF awards by award date, usually posted within days.
- Both are US federal government works (public domain). This Actor is not affiliated with or endorsed by NIH or NSF.
- Requests are few and spaced (NIH: at most 1 request per second, as NIH asks), with retries and back-off.
- Amounts: NIH `amount` is the total award amount for the budget year (may be null for VA intramural awards); NSF `amount` is the amount obligated so far and `totalEstimatedAmount` the expected total.

### Pricing

Pay per event (Apify takes care of billing; you only pay for what is delivered):

| Event | Price | Charged |
|---|---|---|
| `apify-actor-start` | $0.005 | once per run |
| `award-record` | $0.003 | per award delivered |

A default test run (30 awards) costs about $0.095. A weekly keyword alert (~20 awards/week) costs about $0.065/week. `maxItems` and Apify's *max cost per run* cap your spend; the Actor stops delivering when your budget is reached, so you are never charged for more than you set. No separate platform-usage charges: compute is included in the event prices.

### FAQ

**Why are there no investigator names?** By design this is an institution-level feed (no personal data). The official link on each record has the full public record.

**Why do NIH awards arrive in weekly batches?** NIH RePORTER publishes new awards weekly; NSF posts daily. In October (start of the federal fiscal year) volumes are lower than in summer.

**Does it include other agencies (DoD, DOE, NASA)?** Not yet. For all federal contracts see our Federal Contract Awards Feed; for open funding opportunities see our Grants Opportunities Feed.

**Can I backfill?** Yes, up to 365 days with `lookbackDays` and a higher `maxItems`.

# Actor input Schema

## `mode` (type: `string`):

window (default): awards in the lookback window, no saved state. sinceLastRun: only awards not delivered before for this State key; use this for daily or weekly schedules.

## `sources` (type: `array`):

nih: NIH RePORTER (NIH institutes plus other HHS/VA research funders listed there), by date added (weekly loads). nsf: National Science Foundation awards, by award date.

## `lookbackDays` (type: `integer`):

Window of award / added dates. RePORTER loads weekly, so keep at least 14 days. Also the first-run window in sinceLastRun mode.

## `keywords` (type: `array`):

Any of these words or phrases in the title, abstract or NIH terms, e.g. 'CRISPR', 'mass spectrometry', 'machine learning'.

## `institutionKeywords` (type: `array`):

Only awards whose institution name contains one of these, e.g. 'Harvard', 'University of Texas', 'Mayo'.

## `states` (type: `array`):

2-letter state codes of the institution, e.g. MA, CA, TX.

## `minAmount` (type: `integer`):

Keep awards whose obligated amount (or NSF estimated total) is at least this many US dollars.

## `onlyNewAwards` (type: `boolean`):

Drop NIH continuation (non-competing renewal) years; keep new projects. NSF records are unaffected.

## `maxItems` (type: `integer`):

Maximum awards delivered (and charged) per run, split fairly between sources. Newest first.

## `stateKey` (type: `string`):

Only for sinceLastRun: separate saved state per saved search, e.g. 'crispr-ma'.

## Actor input object example

```json
{
  "mode": "window",
  "sources": [
    "nih",
    "nsf"
  ],
  "lookbackDays": 30,
  "keywords": [],
  "institutionKeywords": [],
  "states": [],
  "onlyNewAwards": false,
  "maxItems": 30,
  "stateKey": "default"
}
```

# Actor output Schema

## `awards` (type: `string`):

One record per NIH or NSF award.

## `summary` (type: `string`):

Window, matches per source, filters dropped.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("moment-data/research-grant-awards-feed").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": [] }

# Run the Actor and wait for it to finish
run = client.actor("moment-data/research-grant-awards-feed").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": []
}' |
apify call moment-data/research-grant-awards-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,moment-data/research-grant-awards-feed"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/v6xOle7PZR6AiyV8D/builds/Fm8A2mlasIjFz5l4g/openapi.json
