# Grant Grinder - U.S. Government Grants API (`monolithdread/grant-grinder`) Actor

Search, match, monitor, and prepare for current U.S. federal grant opportunities using normalized official-source data.

- **URL**: https://apify.com/monolithdread/grant-grinder.md
- **Developed by:** [Jordan Culver](https://apify.com/monolithdread) (community)
- **Categories:** Developer tools, Agents, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 grant records

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Grant Grinder - U.S. Government Grants API

Search, match, monitor, and prepare for current U.S. federal grant opportunities through normalized, source-attributed data.

### Operations

- **Search grants** with full-text search, agency, applicant, category, instrument, amount, posting-date, deadline, status, Assistance Listing, sorting, and pagination controls.
- **Match an organization profile** to live opportunities and receive explainable match reasons and cautions.
- **Read catalog changes** observed during daily official-source refreshes.
- **Get a complete grant** with description, eligibility, awards, contacts, documents, application information, and official links.
- **Build an application checklist** from the normalized notice, deadline, registration, budget, cost-share, and document fields.

Every result preserves the official government destination. Match scores and generated checklists are organizational aids, not eligibility determinations. The linked official notice controls final eligibility, dates, amendments, and submission requirements.

### Output

Each run writes individual result items to the default dataset and stores the complete response, including metadata and pagination, in the `OUTPUT` key-value-store record.

### Pricing

This Actor uses pay-per-event pricing. Search/detail/change records use the `grant-record` event, profile matches use `profile-match`, and a generated checklist uses `application-checklist`. The run screen shows the maximum cost before execution, and Apify enforces the spending limit.

### Data freshness

Grant Grinder refreshes from the Grants.gov current-opportunity API and daily enhanced database extract every day. The change feed retains 90 days of observed additions, material updates, and removals.

### Privacy

The Actor sends your search or matching criteria to the private Grant Grinder API only to complete the requested operation. Wiplash.ai does not use it for behavioral advertising or model training. Apify run storage follows the retention controls on your Apify account.

Grant Grinder is produced by [Wiplash.ai](https://wiplash.ai) through [Wiplash Labs](https://labs.wiplash.ai/grants/). It is not a government service.

# Actor input Schema

## `operation` (type: `string`):

Choose whether to search the catalog, match a profile, read changes, retrieve one record, or build a checklist.

## `q` (type: `string`):

Mission, population, place, program, or other keywords.

## `status` (type: `string`):

Limit results to currently open or forecasted opportunities.

## `agency` (type: `string`):

Match an awarding agency name or code.

## `fundingCategory` (type: `string`):

Match an official Grants.gov funding category.

## `fundingInstrument` (type: `string`):

Match a grant, cooperative agreement, or other funding instrument.

## `eligibleApplicant` (type: `string`):

Match an official eligible-applicant classification.

## `assistanceListing` (type: `string`):

Match an Assistance Listing number or title.

## `minAward` (type: `number`):

Require an opportunity whose published maximum award is at least this amount in U.S. dollars.

## `maxAward` (type: `number`):

Require an opportunity whose published minimum award does not exceed this amount in U.S. dollars.

## `closesBefore` (type: `string`):

ISO date, such as 2026-12-31.

## `closesAfter` (type: `string`):

ISO date, such as 2026-08-11.

## `postedBefore` (type: `string`):

Include notices posted on or before this ISO date.

## `postedAfter` (type: `string`):

Include notices posted on or after this ISO date.

## `hasFundingAmount` (type: `boolean`):

Exclude opportunities that do not publish an award or program funding amount.

## `includeExpired` (type: `boolean`):

Include expired opportunities when searching the retained catalog.

## `sort` (type: `string`):

Choose how results are ordered.

## `maxResults` (type: `integer`):

Stop after writing this many result records to the dataset.

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

Words or phrases describing the mission, people, places, or work to match.

## `applicantTypes` (type: `array`):

Applicant classifications that describe the organization seeking funding.

## `fundingCategories` (type: `array`):

Official funding categories that are relevant to the organization.

## `agencies` (type: `array`):

Awarding agencies the organization prefers to match.

## `maxDaysToClose` (type: `integer`):

Only match opportunities closing within this many days.

## `since` (type: `string`):

ISO timestamp. Defaults to 24 hours ago.

## `changeTypes` (type: `array`):

Limit the change feed to additions, material updates, or removals.

## `grantKey` (type: `string`):

The normalized Grant Grinder key or official opportunity number for detail and checklist operations.

## Actor input object example

```json
{
  "operation": "search",
  "hasFundingAmount": false,
  "includeExpired": false,
  "sort": "relevance-desc",
  "maxResults": 100
}
```

# Actor output Schema

## `results` (type: `string`):

Grant records, profile matches, change events, detail, or checklist output.

## `response` (type: `string`):

The complete normalized response including metadata and pagination.

# 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("monolithdread/grant-grinder").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("monolithdread/grant-grinder").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 monolithdread/grant-grinder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,monolithdread/grant-grinder"
        }
    }
}

```

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/6ut63d1LZfy5HL3aw/builds/78ObxxpxpSDwgVRVg/openapi.json
