📄 Grants.gov Data Extractor
Pricing
from $9.00 / 1,000 results
📄 Grants.gov Data Extractor
Crawl the Grants.gov search interface to extract structured grant notices. Isolate untouched federal funding records with built-in stateful snapshot tracking.
Pricing
from $9.00 / 1,000 results
Rating
0.0
(0)
Developer
太郎 山田
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Grants.gov Funding Digest | Opportunity Watch & Signal Digest
Never miss a critical federal funding announcement again. This Grants.gov monitor acts as an automated signal digest, continuously tracking the government's primary grant database so your team doesn't have to. Ideal for compliance officers, legal analysts, and enterprise business development teams, this web scraper empowers you to extract structured data from Grants.gov based on highly specific criteria. By setting up scheduled daily or weekly runs, you effectively automate your opportunity watch. The crawler navigates the Grants.gov search interface just like a human would, filtering the latest results by specific agencies, funding instruments, or custom category keywords. It instantly extracts highly accurate, structured details such as the agency name, post date, docket number, document type, and the direct URL to the official posting. One of the most powerful features of this actor is its stateful tracking ability. By assigning a snapshot key, the system remembers historical scrape results and isolates completely untouched notices, marking them clearly with an isNew=true flag. This eliminates duplicate reviews and ensures your workflow remains efficient. Additionally, you can input custom watch terms to automatically flag compliance, legal, or technical keywords directly within the scraped data, transforming a raw feed into a highly actionable intelligence stream.
Store Quickstart
- Pick a template from the Store — start with DOE Energy Grants Quickstart (key-free).
- The first run fetches open opportunities from the configured lookback window and marks all as new.
- Re-run with the same
snapshotKey— only truly new opportunities (not seen in the previous run) are flaggedisNew=true. - Add
watchTerms(topic keywords or org names) to getwatch_term_hitsignal tags in each digest.
Key Features
- 🏛️ Government-sourced — Pulls directly from official agency feeds — no third-party aggregators
- ⏱️ Timely digests — Daily/weekly rollups of new filings, rulings, or actions
- 🔍 Keyword watchlists — Flag items matching your compliance/legal watch terms
- 📊 Structured metadata — Agency, date, docket, document type, link — all dataset-ready
- 📡 Webhook alerts — Push to legal/compliance teams the moment new items match watchlist
Use Cases
| Who | Why |
|---|---|
| Developers | Automate recurring data fetches without building custom scrapers |
| Data teams | Pipe structured output into analytics warehouses |
| Ops teams | Monitor changes via webhook alerts |
| Product managers | Track competitor/market signals without engineering time |
Input
| Field | Type | Default | Description |
|---|---|---|---|
| feeds | array | required | One entry per watch target. Each feed produces one digest row. At minimum, set id, name, and at least one filter (agenci |
| watchTerms | string | — | Terms to flag in opportunity titles and synopses. Any opportunity matching a watch term receives a watch_term_hit signal |
| lookbackDays | integer | 14 | Include opportunities opened within this many days. Keep short (14–30) for recurring runs; widen for initial discovery. |
| maxOpportunitiesPerFeed | integer | 50 | Upper bound on opportunities fetched per feed per run. |
| minAwardCeiling | number | 0 | Skip opportunities with award ceiling below this value. Applied globally unless overridden per feed. Set 0 to include al |
| closingSoonDays | integer | 14 | Opportunities closing within this many days receive a closing_soon signal tag. |
| highValueThreshold | number | 1000000 | Opportunities with awardCeiling >= this value receive a high_value signal tag. |
| delivery | string | "dataset" | dataset stores results in the Apify dataset. webhook posts the digest JSON to webhookUrl. |
Input Example
{"lookbackDays": 14,"maxOpportunitiesPerFeed": 50,"minAwardCeiling": 0,"closingSoonDays": 14,"highValueThreshold": 1000000,"delivery": "dataset","datasetMode": "all","snapshotKey": "grants-funding-digest-state","grantsGovApiUrl": "https://api.grants.gov/v1/api/search2","requestTimeoutSeconds": 30,"notifyOnNoNew": true,"dryRun": false}
Output
| Field | Type | Description |
|---|---|---|
meta | object | |
errors | array | |
digests | array | |
digests[].feedId | string | |
digests[].feedName | string | |
digests[].source | string | |
digests[].checkedAt | timestamp | |
digests[].status | string | |
digests[].newOpportunityCount | number | |
digests[].totalOpportunityCount | number | |
digests[].closingSoonCount | number | |
digests[].highValueCount | number | |
digests[].changedSinceLastRun | boolean | |
digests[].actionNeeded | boolean | |
digests[].recommendedAction | string | |
digests[].topAgencies | array | |
digests[].watchTermHits | array | |
digests[].signalTags | array | |
digests[].opportunities | array | |
digests[].error | null |
Output Example
{"meta": {"generatedAt": "2026-04-15T09:00:00.000Z","now": "2026-04-15T09:00:00.000Z","lookbackDays": 14,"feedCount": 2,"totalOpportunities": 7,"newOpportunities": 5,"closingSoonCount": 2,"watchTermHitCount": 2,"actionNeededCount": 1,"snapshot": {"key": "grants-digest-sample","loadedFrom": "local","savedTo": "local"},"warnings": [],"executiveSummary": {"overallStatus": "action_needed","brief": "1 feed(s) have watch-term hits or closing-soon signals requiring review.","topAgencies": [{"name": "Department of Energy","opportunityCount": 4,"isWatchTermHit": false},{"name": "National Institutes of Health","opportunityCount": 3,"isWatchTermHit": true}],"watchTermHits": [{"term": "cancer","opportunityId": "grants-456789","title": "Cancer Research Precision Medicine Initiative","agencyName": "National Institutes of Health","awardCeiling": 3000000,"closeDate": "2026-04-25T00:00:00.000Z"
API Usage
Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.
cURL
curl -X POST "https://api.apify.com/v2/acts/taroyamada~grants-gov-funding-digest/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{ "lookbackDays": 14, "maxOpportunitiesPerFeed": 50, "minAwardCeiling": 0, "closingSoonDays": 14, "highValueThreshold": 1000000, "delivery": "dataset", "datasetMode": "all", "snapshotKey": "grants-funding-digest-state", "grantsGovApiUrl": "https://api.grants.gov/v1/api/search2", "requestTimeoutSeconds": 30, "notifyOnNoNew": true, "dryRun": false }'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("taroyamada/grants-gov-funding-digest").call(run_input={"lookbackDays": 14,"maxOpportunitiesPerFeed": 50,"minAwardCeiling": 0,"closingSoonDays": 14,"highValueThreshold": 1000000,"delivery": "dataset","datasetMode": "all","snapshotKey": "grants-funding-digest-state","grantsGovApiUrl": "https://api.grants.gov/v1/api/search2","requestTimeoutSeconds": 30,"notifyOnNoNew": true,"dryRun": false})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('taroyamada/grants-gov-funding-digest').call({"lookbackDays": 14,"maxOpportunitiesPerFeed": 50,"minAwardCeiling": 0,"closingSoonDays": 14,"highValueThreshold": 1000000,"delivery": "dataset","datasetMode": "all","snapshotKey": "grants-funding-digest-state","grantsGovApiUrl": "https://api.grants.gov/v1/api/search2","requestTimeoutSeconds": 30,"notifyOnNoNew": true,"dryRun": false});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Tips & Limitations
- Run daily for active watchlists; weekly for passive monitoring.
- Webhook delivery works well for compliance team Slack channels — include docket URL for 1-click access.
- Use
watchKeywordsgenerously — false positives are cheap to triage, false negatives miss filings. - Pair with
regulatory-change-monitorfor cross-agency coverage. - Archive Dataset rows weekly for long-term compliance evidence retention.
FAQ
How far back does history go?
This actor monitors forward-only — new items since first run. For historical data, use the agency's own search tool.
What timezones are used?
All timestamps are UTC. Use your downstream pipeline to convert to agency-local time if needed.
Does it translate non-English content?
No — original language is preserved. Use downstream translation services if needed.
Is the data official?
Yes — sourced directly from official government websites and feeds. Not a third-party aggregator.
Can I use this for legal research?
For alerting and monitoring, yes. For litigation research, cross-verify with primary sources (agency websites) — this actor is a monitoring tool, not a legal database.
Related Actors
Government & Regulatory cluster — explore related Apify tools:
- EPA Enforcement Digest | ECHO Compliance Risk Monitor — Monitor EPA ECHO all-media facility search, corporate compliance screener, and enforcement case feeds with one summary-first digest row per watched company, facility, or case feed.
- FDA Warning Letters Digest | Summary-First Feed — Monitor public FDA warning letters with one summary-first digest row per configured feed.
- Federal Register Digest | Agency Rule & Notice Monitor — Monitor Federal Register documents — rules, proposed rules, and notices — per configured agency feed.
- Government Contract Award Monitor | Award & Competitor Watch — Monitor public-sector contract award notices for new wins, notable awardees, incumbent recompetes, and competitor signals — one digest row per configured feed without brittle broad crawling.
- NHTSA Vehicle Recall Digest | Recalls + Complaints Watch — Monitor official NHTSA vehicle recall and complaint endpoints for watched model-family, VIN, and manufacturer feeds.
- Product Safety Recall Digest | CPSC + openFDA Alerts — Monitor CPSC saferproducts.
- Regulatory Change Monitor API — Monitor official regulator update feeds, government bulletin pages, and public compliance notices with one action-oriented digest row per monitored source.
- OFAC Sanctions Change Digest | SDN List Monitor — Monitor the OFAC SDN (Specially Designated Nationals) sanctions list for additions and removals.
- Tariff Trade Change Digest | Federal Register + HTS Monitor — Monitor U.
- Treasury Fiscal Data Digest | Debt, Rates & Budget Monitor — Monitor the U.
- USPTO Patent Monitor API | JSON + Webhook — Search and monitor US patent filings with multi-source fallback.
- Campaign Finance & Lobbying Digest | FEC + LDA Watch — Monitor official FEC OpenFEC committee reports and LDA.
Cost
Pay Per Event:
actor-start: $0.01 (flat fee per run)dataset-item: $0.003 per output item
Example: 1,000 items = $0.01 + (1,000 × $0.003) = $3.01
No subscription required — you only pay for what you use.
⭐ Was this helpful?
If this actor saved you time, please leave a ★ rating on Apify Store. It takes 10 seconds, helps other developers discover it, and keeps updates free.
Bug report or feature request? Open an issue on the Issues tab of this actor.