Grants.gov Scraper - Federal Grant Opportunities & Funding API
Pricing
from $9.23 / 1,000 results
Grants.gov Scraper - Federal Grant Opportunities & Funding API
Scrape US federal grant opportunities and funding data from the official Grants.gov API - no API key needed. Get titles, agencies, deadlines, award amounts, ALN/CFDA numbers, eligibility, synopsis, attachments and grantor contacts. Filter by keyword, agency, category, status, date and award size.
Pricing
from $9.23 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 days ago
Last modified
Categories
Share
Grants.gov Scraper - Federal Grant Opportunities & Funding API
Scrape US federal grant opportunities and funding data straight from the official Grants.gov search API - no API key, no login, no browser. Search over 1,000 open opportunities from every federal grant-making agency by keyword, agency, funding category, eligibility, ALN/CFDA number, status, posting or closing date, and minimum award size, then export application-ready records to JSON, CSV or Excel.
Here is one real result, with every field the actor returns:
{"opportunityId": "357303","opportunityNumber": "PAR-25-268","title": "Investigator Initiated Clinical Trials of Complementary and Integrative Interventions Delivered Remotely or via mHealth (R01 Clinical Trial Required)","version": 1,"agencyCode": "HHS-NIH11","agencyName": "National Institutes of Health","topAgencyCode": "HHS","topAgencyName": "Department of Health and Human Services","oppStatus": "posted","postedDate": "2024-11-21","closeDate": "2026-11-17","archiveDate": "2026-12-23","lastUpdatedDate": "2025-03-31","originalDueDate": "2026-11-17","alnNumbers": ["93.213"],"docType": "synopsis","url": "https://www.grants.gov/search-results-detail/357303","synopsis": "This Notice of Funding Opportunity (NOFO) encourages applications for investigator-initiated fully remotely delivered and conducted clinical trials ... [trimmed]","awardCeiling": null,"awardFloor": null,"estimatedTotalFunding": null,"expectedAwards": null,"costSharing": false,"eligibility": "Other Eligible Applicants include the following: Alaska Native and Native Hawaiian Serving Institutions; ... [trimmed]","applicantTypes": ["State governments", "County governments", "City or township governments", "Small businesses", "Private institutions of higher education", "... 10 more"],"fundingInstruments": ["Grant"],"fundingActivityCategories": ["Health"],"contactEmail": "grantsinfo@nih.gov","contactName": "National Institutes of Health","contactPhone": "301-402-2541","agencyContactDesc": "NIH Grants Information grantsinfo@nih.gov","agencyContactEmail": "grantsinfo@nih.gov","agencyContactEmailDesc": "See Section VII. Agency Contacts within the full opportunity announcement for all other inquires.","agencyAddressDesc": "See Section VII. Agency Contacts within the full opportunity announcement for all other inquires.","additionalInfoUrl": "http://grants.nih.gov/grants/guide/pa-files/PAR-25-268.html","additionalInfoDesc": "https://grants.nih.gov/grants/guide/pa-files/PAR-25-268.html","opportunityCategory": "Discretionary","alnPrograms": ["Research and Training in Complementary and Integrative Health"],"attachments": [{"folder": "PAR-25-268","fileName": "PAR-25-268-Full-Announcement.html","mimeType": "text/html","description": "PAR-25-268 Full Announcement Text","downloadUrl": "https://www.grants.gov/grantsws/rest/opportunity/att/download/344426"}],"relatedDocuments": [],"aiSummary": "The National Institutes of Health is offering funding for clinical trials that test complementary and integrative health interventions delivered entirely remotely, using mobile health technologies. There is no specified award amount, and applications are due by November 17, 2026.","aiExtract": {"agency": "National Institutes of Health","funding": null,"deadline": "2026-11-17","category": "Health","eligibility": "Other Eligible Applicants include the following: ... [trimmed]"},"observedAt": "2026-08-14T06:33:54.805Z","error": null}
synopsis,eligibility,applicantTypesandaiExtract.eligibilityare long on this record and are trimmed above for readability. Every value shown is the real, unedited data from the run.
The most complete Grants.gov scraper available. It returns every field the federal opportunity record exposes (synopsis, eligibility, award ceiling and floor, estimated total funding, expected awards, cost sharing, funding categories, ALN/CFDA programs, attachments, reference links and grantor contacts), lets you filter by keyword, status, agency, eligibility, category, ALN, posting/closing date and minimum award size, and adds an optional AI summary and AI structured extract, so you get application-ready federal grant data.
Who uses it
- Nonprofits and grant writers tracking new Notice of Funding Opportunity (NOFO) postings and deadlines.
- University and research offices monitoring NIH, NSF, DOE and other research grant opportunities by category and eligibility.
- Small businesses and startups finding SBIR/STTR and other federal funding they qualify for.
- Consultants and grant databases building and refreshing a structured federal funding dataset via API.
- Compliance and market-research teams analyzing federal funding flows by agency, ALN/CFDA and award size.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- How it compares
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the live Grants.gov catalog with your keyword and filters (status, agency, eligibility, funding category, ALN, posting/closing date, minimum award ceiling), paginates through the matching opportunities, and writes one normalized record per opportunity to the run's dataset. With withDetails on, it fetches the full record for each opportunity including the synopsis, eligibility text, award ceiling and floor, estimated total funding, expected awards, cost sharing, funding categories, attachments, reference links, parent department and agency contact details. Missing source values are returned as null, never invented (an unspecified award amount is null, not 0).
Two optional AI add-ons run only on paid Apify plans and only charge when they produce output: aiSummary writes a plain-language overview, and aiExtract returns structured fields for agency, funding, deadline, category and eligibility.
How it compares
A strict superset of other Grants.gov scrapers: every filter they accept, every field they return, plus more.
| Capability | This actor | Typical alternatives |
|---|---|---|
| Keyword search | Yes | Yes |
| Agency / category / eligibility filters | Yes | Yes |
| Status (posted, forecasted, closed, archived) | Yes | Some |
| ALN / CFDA filter | Yes | Rare |
| Exact opportunity-number lookup | Yes | Rare |
| Posting-date and closing-date range filters | Yes | Some |
| Minimum award-ceiling filter | Yes | Rare |
| Full synopsis + eligibility text | Yes | Some |
| Award ceiling, floor, estimated total funding, expected awards | Yes | Partial |
| Parent department, ALN program names, revision, last-updated date | Yes | No |
| Grantor contact name, email and phone | Yes | Partial |
| Attachments plus agency reference links | Yes | Rare |
Unspecified amounts returned as null (not a fake 0) | Yes | Varies |
| Optional AI summary and AI structured extract | Yes | No |
| Export JSON, CSV, Excel; run via API with no key | Yes | Varies |
Quickstart
Open the actor, paste this into the input, and press Run. It returns currently posted opportunities with full details and both AI add-ons.
{"oppStatuses": ["posted"],"maxGrants": 10,"withDetails": true,"withAiSummary": true,"withAiExtract": true}
Add a keyword (for example clean energy), an agencies filter (for example ["NSF"]), or look up one exact opportunity with oppNum.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | no | (empty) | Free-text search of opportunity titles and descriptions, for example education, rural health. Leave empty to browse all matching the filters. |
maxGrants | integer | no | 10 | Maximum opportunities to collect. |
withDetails | boolean | no | true | Fetch the full record per opportunity (synopsis, eligibility, award amounts, contacts, attachments). When off, only listing-level fields are returned. |
oppNum | string | no | (empty) | Exact funding opportunity number to look up, for example PD-24-1340. |
oppStatuses | string[] | no | ["posted"] | Filter by status. Any of posted, forecasted, closed, archived. |
agencies | string[] | no | (any) | Funding agency codes, for example HHS, USDA, NSF, ED. Sub-agency codes like HHS-NIH11 also work. |
eligibilities | string[] | no | (any) | Who may apply, by official Grants.gov eligibility code (for example 25 = small businesses, 99 = unrestricted). |
fundingCategories | string[] | no | (any) | Category of funding activity, by code (for example HL = Health, EN = Energy, ED = Education). |
aln | string | no | (empty) | Assistance Listing Number (formerly CFDA), for example 47.076. |
closeDateFrom | string | no | (empty) | Keep only opportunities closing on or after this date (YYYY-MM-DD or MM/DD/YYYY). |
closeDateTo | string | no | (empty) | Keep only opportunities closing on or before this date. Great for finding grants closing soon. |
postedDateFrom | string | no | (empty) | Keep only opportunities posted on or after this date. Great for finding newly posted grants. |
postedDateTo | string | no | (empty) | Keep only opportunities posted on or before this date. |
minAwardCeiling | integer | no | (empty) | Keep only opportunities whose maximum award is at least this many USD, for example 1000000. Fetches full details to read the award amount (billed as detailed results). |
withAiSummary | boolean | no | false | Paid add-on. Plain-language AI summary of each grant. Charged only when a summary is produced. Requires a paid plan. |
withAiExtract | boolean | no | false | Paid add-on. AI-extracted structured fields (agency, funding, deadline, category, eligibility). Charged only on success. Requires a paid plan. |
Output reference
One dataset item per opportunity. Types: string, number, boolean, string[], object[], object, or null when the source value is absent. Detail fields require withDetails.
| Field | Type | Description |
|---|---|---|
opportunityId | string | Grants.gov internal opportunity ID. |
opportunityNumber | string | Official funding opportunity number. |
title | string | Opportunity title. |
version | number | Revision number of the opportunity record (with withDetails). |
agencyCode | string | Funding (sub-)agency code. |
agencyName | string | Funding agency name. |
topAgencyCode | string | Parent department code, for example HHS (with withDetails). |
topAgencyName | string | Parent department name, for example Department of Health and Human Services (with withDetails). |
oppStatus | string | Status: posted, forecasted, closed or archived. |
postedDate | string | Date the opportunity was posted (YYYY-MM-DD). |
closeDate | string | Application close date, or null. |
archiveDate | string | Date the opportunity is archived, or null. |
lastUpdatedDate | string | Date the opportunity record was last updated (with withDetails). |
originalDueDate | string | Original application due date, or null (with withDetails). |
alnNumbers | string[] | Assistance Listing Numbers associated with the opportunity. |
docType | string | Record type, for example synopsis or forecast. |
url | string | Grants.gov detail page URL. |
synopsis | string | Full opportunity synopsis (with withDetails), or null. |
awardCeiling | number | Maximum award amount, or null if the agency did not specify one. |
awardFloor | number | Minimum award amount, or null if the agency did not specify one. |
estimatedTotalFunding | number | Estimated total program funding, or null. |
expectedAwards | number | Expected number of awards, or null. |
costSharing | boolean | true if cost sharing or matching is required. |
eligibility | string | Full eligibility narrative (with withDetails), or null. |
applicantTypes | string[] | List of eligible applicant types. |
fundingInstruments | string[] | Funding instrument types, for example Grant. |
fundingActivityCategories | string[] | Categories of funding activity, for example Health. |
contactEmail | string | Primary contact email. |
contactName | string | Primary contact name. |
contactPhone | string | Primary contact phone. |
agencyContactDesc | string | Agency contact description text. |
agencyContactEmail | string | Agency contact email. |
agencyContactEmailDesc | string | Notes about the agency contact email. |
agencyAddressDesc | string | Agency address description. |
additionalInfoUrl | string | Link to additional information about the opportunity. |
additionalInfoDesc | string | Description of the additional-information link. |
opportunityCategory | string | Opportunity category, for example Discretionary. |
alnPrograms | string[] | Program names for the ALN numbers. |
attachments | object[] | Attached files with folder, fileName, mimeType, description, downloadUrl. |
relatedDocuments | object[] | Agency-posted reference links with url and description (with withDetails). |
aiSummary | string | AI plain-language summary (add-on), else absent. |
aiExtract | object | AI-extracted structured fields (add-on), else absent. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"oppStatuses":["posted"],"withDetails":true,"withAiSummary":true,"withAiExtract":true,"maxGrants":3}):
{"opportunityId": "357303","opportunityNumber": "PAR-25-268","title": "Investigator Initiated Clinical Trials of Complementary and Integrative Interventions Delivered Remotely or via mHealth (R01 Clinical Trial Required)","agencyCode": "HHS-NIH11","agencyName": "National Institutes of Health","oppStatus": "posted","postedDate": "2024-11-21","closeDate": "2026-11-17","alnNumbers": ["93.213"],"url": "https://www.grants.gov/search-results-detail/357303","awardCeiling": null,"awardFloor": null,"costSharing": false,"fundingInstruments": ["Grant"],"fundingActivityCategories": ["Health"],"contactEmail": "grantsinfo@nih.gov","contactPhone": "301-402-2541","opportunityCategory": "Discretionary","alnPrograms": ["Research and Training in Complementary and Integrative Health"],"aiSummary": "The National Institutes of Health is offering funding for clinical trials that test complementary and integrative health interventions delivered entirely remotely ... applications are due by November 17, 2026.","aiExtract": {"agency": "National Institutes of Health", "funding": null, "deadline": "2026-11-17", "category": "Health", "eligibility": "... [trimmed]"},"observedAt": "2026-08-14T06:33:54.805Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~grants-gov-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"keyword":"clean energy","agencies":["DOE"],"maxGrants":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~grants-gov-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"oppStatuses":["posted"],"fundingCategories":["HL"],"maxGrants":100}'
Apify CLI:
apify call scrapers_lat/grants-gov-scraper \--input '{"oppNum":"PAR-25-268","withDetails":true}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per opportunity returned. The
resultevent applies to listing-level records and the richerdetailsevent whenwithDetailsis on. See the pricing tab for current per-result prices. - Add-ons. The AI summary and AI structured extract are priced separately and charge only when they produce output.
- No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 opportunities per run. Upgrade for higher
maxGrants.
FAQ and troubleshooting
A run returned 0 opportunities. Why?
The keyword and filters matched nothing in the current catalog. Broaden the keyword, add forecasted or closed to oppStatuses, or remove an agency or category filter. Zero-result runs are not charged.
How do I find only currently open grants?
Keep oppStatuses at ["posted"] (the default). Add forecasted to also see upcoming opportunities.
Why are synopsis and award amounts null?
withDetails was off, so only listing-level fields are returned. Turn on withDetails to fetch the full record. Award ceiling and floor are null when the agency did not specify an amount (they are never faked as 0).
Can I look up one exact opportunity?
Yes. Set oppNum to the funding opportunity number, for example PAR-25-268.
Why did the AI fields not appear?
The AI add-ons require a paid Apify plan and are off by default. Enable withAiSummary or withAiExtract on a paid plan. They charge only when output is produced.
Is this an official Grants.gov tool? No. This actor is independent and not affiliated with Grants.gov or any federal agency. It reads only publicly available grant opportunity data.
Related scrapers
- SAM.gov Opportunities Scraper: US federal contract opportunities.
- USAspending Federal Award Scraper: US federal prime awards.
- Federal Register Document Scraper: US Federal Register documents.
- ProPublica Nonprofits Scraper: US nonprofit filings and financials.
- EU CORDIS Projects Scraper: EU research funding projects.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Grants.gov or any federal agency. Accesses only publicly available grant opportunity data.
