# Grants.gov Federal Funding Opportunities Scraper (`recordsdata/grants-gov-opportunities-scraper`) Actor

Search Grants.gov, the official US government database of federal grant opportunities. Get title, agency, dates, and funding category for every match, plus optional full details: award ceiling/floor, total funding, eligibility, and agency contact.

- **URL**: https://apify.com/recordsdata/grants-gov-opportunities-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.89 / 1,000 opportunity records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

<p align="center">
  <img src="https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3" alt="RecordsData" width="100%" />
</p>

## Grants.gov Federal Funding Opportunities Scraper

### What does Grants.gov Federal Funding Opportunities Scraper do?

**Grants.gov Federal Funding Opportunities Scraper** searches [Grants.gov](https://www.grants.gov/search-grants), the official US government portal listing every federal grant opportunity across all agencies. Search by keyword and status, and get title, agency, and key dates for every match - plus, optionally, the full opportunity detail: award ceiling/floor, total estimated funding, number of awards, eligibility criteria, and agency contact information.

No login, no anti-bot workarounds - this is a fully open US federal government API. Runs on the Apify platform with API access, scheduling, monitoring and CSV/Excel/JSON export.

### Why use Grants.gov Federal Funding Opportunities Scraper?

- **Grant-seeking & fundraising** - nonprofits, universities, and small businesses can monitor new funding opportunities matching their mission.
- **Grant-writing consultancies** - build a pipeline of client-relevant opportunities with full funding and eligibility details in one pull.
- **Policy & funding research** - track which agencies and categories are funding what, and at what scale.
- **Competitive intelligence** - see award sizes and applicant eligibility before deciding whether to pursue a specific opportunity.

### How Grants.gov Opportunities Scraper compares to alternatives

Measured against the other Grants.gov actors on the Apify Store (September 2026):

| | This actor | Alternative A | Alternative B |
|---|---|---|---|
| Price per 1,000 opportunities | $7.50 | $9.60 | $10.00 |
| Full-detail enrichment (ceiling, floor, eligibility) | Optional separate event | Not offered | Bundled per call |
| Search filters | Keyword, agency, category, status | Basic keyword | API passthrough |
| Source | Official Grants.gov search API | Same | Same |

Priced below the $9.60 to $10.00 per 1,000 cluster the alternatives charge, with detail enrichment you can switch off.

### How to use Grants.gov Federal Funding Opportunities Scraper

1. Go to the **Input tab** and enter a **keyword**, choose which **opportunity statuses** to include (posted, forecasted, closed, archived).
2. Toggle **include full details** on if you want award amounts, eligibility text, and agency contact per opportunity (billed as a separate event).
3. Click **Run**. Download results as JSON, CSV, or Excel from the dataset viewer.

### Input

- **Keyword** *(optional)* - search term, e.g. "health" or "rural broadband".
- **Opportunity status** - which statuses to include (defaults to "posted", i.e. open now).
- **Max results** - cap on how many opportunities to return (10 on free plan).
- **Include full details** *(optional)* - fetches full description, award ceiling/floor, total funding, eligibility, and agency contact per opportunity.

Example input:

```json
{
    "keyword": "rural",
    "oppStatuses": ["posted"],
    "maxItems": 200,
    "includeFullDetails": true
}
```

### Output

```json
{
    "recordType": "opportunity-detail-record",
    "opportunityId": 361754,
    "description": "The Office of Population Affairs (OPA) announces the anticipated availability of funds...",
    "awardCeiling": "22,000,000",
    "awardFloor": "200,000",
    "estimatedFunding": "257,000,000",
    "numberOfAwards": "90",
    "eligibilityDesc": "Any public or private nonprofit entity is eligible to apply.",
    "agencyContactEmail": "Eric.West@hhs.gov"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data table

| Field | Description |
| --- | --- |
| `title` / `opportunityNumber` / `agency` | Opportunity identity and issuing agency |
| `openDate` / `closeDate` / `oppStatus` | Timeline and current status |
| `cfdaList` | Assistance Listing (CFDA) numbers |
| `description` | Full opportunity description (detail records only) |
| `awardCeiling` / `awardFloor` / `estimatedFunding` / `numberOfAwards` | Funding scale (detail records only) |
| `eligibilityDesc` | Who can apply (detail records only) |
| `agencyContactName` / `agencyContactEmail` / `agencyContactPhone` | Agency contact (detail records only) |

### Pricing / Cost estimation

This actor uses **Pay Per Event** pricing. The **opportunity record** is the primary event; **full details** are only billed when that toggle is on.

### Tips or Advanced options

- **Filter by status** - "posted" only shows opportunities currently accepting applications; add "forecasted" to see what's coming.
- **Turn on full details selectively** - if you only need to triage by title/agency/deadline first, leave details off and re-run with specific opportunities later.
- **Combine with scheduling** - run on a recurring schedule to catch newly posted opportunities in your keyword area.

### FAQ, disclaimers, and support

**Is this legal?** Grants.gov is the US government's own official, public listing of every federal grant opportunity - no login, no paywall, explicitly built for public and third-party reuse.

**Why do some opportunities have no award ceiling?** Not every agency publishes a hard cap - the actor returns exactly what Grants.gov provides for that opportunity.

Found a bug or need a specific agency's data explained? Open an issue in the Issues tab or contact us for a **custom scraper** tailored to your funding-research pipeline.

# Actor input Schema

## `keyword` (type: `string`):

Search term, e.g. "health" or "rural broadband".

## `oppStatuses` (type: `array`):

Which opportunity statuses to include.

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

Maximum number of matching opportunities to return.

## `includeFullDetails` (type: `boolean`):

Also fetch full description, award ceiling/floor, total funding, eligibility text and agency contact for each opportunity. Billed as a separate event.

## Actor input object example

```json
{
  "oppStatuses": [
    "posted"
  ],
  "maxItems": 200,
  "includeFullDetails": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/grants-gov-opportunities-scraper").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/grants-gov-opportunities-scraper").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 '{}' |
apify call recordsdata/grants-gov-opportunities-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/grants-gov-opportunities-scraper"
        }
    }
}
```

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/NYNZAyvXbv2IcQmno/builds/gpZ7g1u6y95JfS9kA/openapi.json
