Grants.gov Scraper - Federal Grant Opportunities & Funding API avatar

Grants.gov Scraper - Federal Grant Opportunities & Funding API

Pricing

from $9.23 / 1,000 results

Go to Apify Store
Grants.gov Scraper - Federal Grant Opportunities & Funding API

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

11 days ago

Last modified

Share

Grants.gov Scraper - Federal Grant Opportunities & Funding API

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, applicantTypes and aiExtract.eligibility are 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

Apify Coverage Output Billing

Table of contents

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.

CapabilityThis actorTypical alternatives
Keyword searchYesYes
Agency / category / eligibility filtersYesYes
Status (posted, forecasted, closed, archived)YesSome
ALN / CFDA filterYesRare
Exact opportunity-number lookupYesRare
Posting-date and closing-date range filtersYesSome
Minimum award-ceiling filterYesRare
Full synopsis + eligibility textYesSome
Award ceiling, floor, estimated total funding, expected awardsYesPartial
Parent department, ALN program names, revision, last-updated dateYesNo
Grantor contact name, email and phoneYesPartial
Attachments plus agency reference linksYesRare
Unspecified amounts returned as null (not a fake 0)YesVaries
Optional AI summary and AI structured extractYesNo
Export JSON, CSV, Excel; run via API with no keyYesVaries

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

FieldTypeRequiredDefaultDescription
keywordstringno(empty)Free-text search of opportunity titles and descriptions, for example education, rural health. Leave empty to browse all matching the filters.
maxGrantsintegerno10Maximum opportunities to collect.
withDetailsbooleannotrueFetch the full record per opportunity (synopsis, eligibility, award amounts, contacts, attachments). When off, only listing-level fields are returned.
oppNumstringno(empty)Exact funding opportunity number to look up, for example PD-24-1340.
oppStatusesstring[]no["posted"]Filter by status. Any of posted, forecasted, closed, archived.
agenciesstring[]no(any)Funding agency codes, for example HHS, USDA, NSF, ED. Sub-agency codes like HHS-NIH11 also work.
eligibilitiesstring[]no(any)Who may apply, by official Grants.gov eligibility code (for example 25 = small businesses, 99 = unrestricted).
fundingCategoriesstring[]no(any)Category of funding activity, by code (for example HL = Health, EN = Energy, ED = Education).
alnstringno(empty)Assistance Listing Number (formerly CFDA), for example 47.076.
closeDateFromstringno(empty)Keep only opportunities closing on or after this date (YYYY-MM-DD or MM/DD/YYYY).
closeDateTostringno(empty)Keep only opportunities closing on or before this date. Great for finding grants closing soon.
postedDateFromstringno(empty)Keep only opportunities posted on or after this date. Great for finding newly posted grants.
postedDateTostringno(empty)Keep only opportunities posted on or before this date.
minAwardCeilingintegerno(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).
withAiSummarybooleannofalsePaid add-on. Plain-language AI summary of each grant. Charged only when a summary is produced. Requires a paid plan.
withAiExtractbooleannofalsePaid 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.

FieldTypeDescription
opportunityIdstringGrants.gov internal opportunity ID.
opportunityNumberstringOfficial funding opportunity number.
titlestringOpportunity title.
versionnumberRevision number of the opportunity record (with withDetails).
agencyCodestringFunding (sub-)agency code.
agencyNamestringFunding agency name.
topAgencyCodestringParent department code, for example HHS (with withDetails).
topAgencyNamestringParent department name, for example Department of Health and Human Services (with withDetails).
oppStatusstringStatus: posted, forecasted, closed or archived.
postedDatestringDate the opportunity was posted (YYYY-MM-DD).
closeDatestringApplication close date, or null.
archiveDatestringDate the opportunity is archived, or null.
lastUpdatedDatestringDate the opportunity record was last updated (with withDetails).
originalDueDatestringOriginal application due date, or null (with withDetails).
alnNumbersstring[]Assistance Listing Numbers associated with the opportunity.
docTypestringRecord type, for example synopsis or forecast.
urlstringGrants.gov detail page URL.
synopsisstringFull opportunity synopsis (with withDetails), or null.
awardCeilingnumberMaximum award amount, or null if the agency did not specify one.
awardFloornumberMinimum award amount, or null if the agency did not specify one.
estimatedTotalFundingnumberEstimated total program funding, or null.
expectedAwardsnumberExpected number of awards, or null.
costSharingbooleantrue if cost sharing or matching is required.
eligibilitystringFull eligibility narrative (with withDetails), or null.
applicantTypesstring[]List of eligible applicant types.
fundingInstrumentsstring[]Funding instrument types, for example Grant.
fundingActivityCategoriesstring[]Categories of funding activity, for example Health.
contactEmailstringPrimary contact email.
contactNamestringPrimary contact name.
contactPhonestringPrimary contact phone.
agencyContactDescstringAgency contact description text.
agencyContactEmailstringAgency contact email.
agencyContactEmailDescstringNotes about the agency contact email.
agencyAddressDescstringAgency address description.
additionalInfoUrlstringLink to additional information about the opportunity.
additionalInfoDescstringDescription of the additional-information link.
opportunityCategorystringOpportunity category, for example Discretionary.
alnProgramsstring[]Program names for the ALN numbers.
attachmentsobject[]Attached files with folder, fileName, mimeType, description, downloadUrl.
relatedDocumentsobject[]Agency-posted reference links with url and description (with withDetails).
aiSummarystringAI plain-language summary (add-on), else absent.
aiExtractobjectAI-extracted structured fields (add-on), else absent.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 result event applies to listing-level records and the richer details event when withDetails is 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.