OrbTop

Grants.gov Federal Grant Crawler

BUSINESSLEAD GENERATIONOTHER

Grants.gov Federal Grant Opportunity Crawler

Crawl federal grant opportunities from Grants.gov — the U.S. government's single source of truth for federal funding announcements. Returns the ~1,000 posted opportunities, ~700 forecasted, ~8,000 closed, and ~72,000 archived records, each with agency, CFDA numbers, funding amounts, eligibility rules, close dates, and grantor contact info.

Grants.gov Crawler Features

  • Queries all four opportunity status buckets: posted (active), forecasted, closed, and archived
  • Filter by sub-agency code, CFDA / Assistance Listing number, funding category, funding instrument, eligibility type, keyword, or opportunity number
  • Restrict to opportunities posted within the last 3 to 56 days when you only want what's new
  • Two-phase enrichment — grabs the listing summary then pulls the full synopsis (description, funding amounts, eligible applicants, grantor contacts) on a second call
  • Listing-only mode if you want titles and dates fast and don't need the full synopsis
  • Returns 30+ structured fields per opportunity, including total program funding, award ceiling, award floor, and cost-sharing flag
  • No authentication, no proxies, no browser — pure JSON API
  • Pay-per-event pricing at roughly $1 per 1,000 records plus a $0.10 start fee

Who Uses Federal Grant Data?

  • Nonprofits and 501(c)(3)s — Build a pipeline of grants matching your program area and eligibility class
  • Universities and research offices — Track NIH, NSF, DOE, and USDA funding opportunities by CFDA number and surface new research grants the day they post
  • Municipalities and tribal governments — Monitor opportunities gated to state, county, city, or federally recognized tribal governments
  • Grant writers and consultants — Pull filtered lists for client proposals, with award ceilings and close dates so you know which ones are worth the effort
  • Journalists and transparency researchers — Track federal funding flows by agency and category without manually clicking through search pages
  • Database providers and grant-match platforms — Backfill and incrementally refresh grant listings with structured, consistent records

How Grants.gov Crawler Works

  1. You configure filters: status bucket, agency, CFDA, funding category, instrument, eligibility, keyword, posted-date window, and sort order.
  2. The crawler POSTs to the Grants.gov search2 endpoint, paginating at 100 records per page with a 150ms courtesy delay.
  3. For each listing hit, it optionally POSTs to fetchOpportunity to pull the full synopsis — description, funding amounts, grantor contact info, eligibility details.
  4. Each record is flattened into a clean output object and written to the Apify dataset.

Input

Active grants posted in the last 14 days

{
  "oppStatuses": "posted",
  "dateRange": "14",
  "fetchDetails": true,
  "maxItems": 100
}

Department of Energy research grants

{
  "oppStatuses": "posted|forecasted",
  "keyword": "SBIR STTR",
  "fundingInstruments": ["G", "CA"],
  "fetchDetails": true,
  "maxItems": 50
}

Education opportunities eligible for state and local governments

{
  "oppStatuses": "posted",
  "fundingCategories": ["ED"],
  "eligibilities": ["00", "01", "02"],
  "fetchDetails": true,
  "maxItems": 100
}

Single opportunity by number (no detail fetch)

{
  "oppStatuses": "posted|forecasted|closed|archived",
  "oppNum": "P25AS00474",
  "fetchDetails": false,
  "maxItems": 1
}

Listing-only scan for fast keyword triage

{
  "oppStatuses": "posted",
  "keyword": "cybersecurity",
  "fetchDetails": false,
  "maxItems": 200
}

Input Parameters

Field Type Default Description
keyword string "" Full-text search across opportunity titles and descriptions.
oppStatuses string "posted" Pipe-separated status list: posted, forecasted, closed, archived. Mix freely, e.g. "posted|closed".
agencies string "" Pipe-separated sub-agency codes (e.g. USDA-AMS|DOD-AFRL). Sub-agency level only — top-level codes like USDA do not cascade because every record is tagged with a sub-agency.
cfda string "" Pipe-separated CFDA / Assistance Listing numbers (e.g. 15.931|10.170).
fundingCategories string[] all Category codes: AG, ED, HL, ENV, ISS, HO, ELT, etc.
fundingInstruments string[] all G (Grant), CA (Cooperative Agreement), PC (Procurement Contract), O (Other).
eligibilities string[] all Applicant eligibility codes — state govts (00), counties (01), 501(c)(3) nonprofits (12), small businesses (23), etc.
oppNum string "" Specific opportunity number (e.g. P25AS00474). Filters to a single record.
dateRange string "" Posted-within-last-N-days: 3, 7, 14, 21, 28, 35, 42, 49, 56.
sortBy string relevance openDate|desc, closeDate|asc, title|asc, agencyCode|asc.
fetchDetails boolean true Fetch full synopsis (description, funding amounts, eligibility, contacts) per record. Roughly doubles crawl time but returns complete records.
maxItems integer 100 Maximum number of opportunities to return.

Grants.gov Crawler Output Fields

{
  "opportunity_id": 357994,
  "opportunity_number": "P25AS00474",
  "opportunity_title": "FY2025 NAGPRA Repatriation Grants",
  "agency_code": "DOI-NPS",
  "agency_name": "National Park Service",
  "top_agency_code": "DOI",
  "top_agency_name": "Department of the Interior",
  "funding_instrument_type": "Grant",
  "category_of_funding_activity": "Other",
  "funding_activity_category_explanation": "NAGPRA Repatriation",
  "cfda_numbers": ["15.922"],
  "eligible_applicants": [
    "Native American tribal governments (Federally recognized)",
    "Nonprofits having a 501(c)(3) status with the IRS",
    "Private institutions of higher education",
    "Public and State controlled institutions of higher education",
    "State governments"
  ],
  "additional_information_on_eligibility": "Eligible: Indian Tribes, Native Hawaiian Organizations, and museums within the United States that have complied with NAGPRA.",
  "post_date": "2025-01-03",
  "close_date": "2026-05-08",
  "archive_date": "2026-09-30",
  "estimated_total_program_funding": 3407000,
  "award_ceiling": 25000,
  "award_floor": 1000,
  "expected_number_of_awards": null,
  "description": "The Native American Graves Protection and Repatriation Act of 1990 authorizes the Secretary of the Interior to make grants to museums, Indian Tribes, and Native Hawaiian organizations...",
  "cost_sharing_or_matching": false,
  "grantor_contact_email": "nagpra_grants@nps.gov",
  "grantor_contact_name": "National Park Service",
  "grantor_contact_phone": "303-495-027",
  "grantor_contact_description": "Jim Modrick nagpra_grants@nps.gov",
  "opportunity_status": "posted",
  "doc_type": "synopsis",
  "created_date": "2025-03-28",
  "last_updated_date": "2025-01-13",
  "url": "https://www.grants.gov/search-results-detail/357994"
}
Field Type Description
opportunity_id integer Unique Grants.gov identifier.
opportunity_number string Agency-assigned opportunity number (e.g. P25AS00474).
opportunity_title string Opportunity title.
agency_code string Sub-agency code (e.g. DOI-NPS, USDA-AMS).
agency_name string Sub-agency name.
top_agency_code string Top-level agency code (e.g. DOI, DOD, USDA).
top_agency_name string Top-level agency name.
funding_instrument_type string Semicolon-joined instrument list (Grant, Cooperative Agreement, Procurement Contract, Other).
category_of_funding_activity string Semicolon-joined funding-activity categories.
funding_activity_category_explanation string Explanation of "Other" category when applicable.
cfda_numbers string[] CFDA / Assistance Listing numbers.
eligible_applicants string[] Expanded applicant eligibility descriptions.
additional_information_on_eligibility string Free-text eligibility details (HTML stripped).
post_date string Posted date (YYYY-MM-DD).
close_date string Application close / response date.
archive_date string Archive date.
estimated_total_program_funding number Total program funding in US dollars, or null.
award_ceiling number Maximum per-award amount in US dollars, or null.
award_floor number Minimum per-award amount in US dollars, or null.
expected_number_of_awards integer Expected number of awards, or null when not published.
description string Full synopsis description (HTML stripped). Populated when fetchDetails: true.
cost_sharing_or_matching boolean Whether cost sharing or matching is required.
grantor_contact_email string Grantor point-of-contact email.
grantor_contact_name string Grantor point-of-contact name.
grantor_contact_phone string Grantor point-of-contact phone.
grantor_contact_description string Free-text grantor contact description.
opportunity_status string posted, forecasted, closed, or archived.
doc_type string Document type (synopsis, forecast, modification).
created_date string Record creation date.
last_updated_date string Last update date.
url string Direct link to the opportunity on grants.gov.

Fields that only come from the detail endpoint (description, funding amounts, eligibility, grantor contact) will be empty or null when fetchDetails: false.

FAQ

How do I scrape Grants.gov?

Grants.gov Crawler hits the official JSON API directly. You pick a status bucket, optionally layer in filters (agency, CFDA, category, eligibility, keyword, date window), and let it paginate. No HTML parsing, no browser, no guessing at selectors that break every other Tuesday.

How much does Grants.gov Crawler cost to run?

Grants.gov Crawler uses standard pay-per-event pricing: $0.10 per run start plus $0.001 per record. A 1,000-record crawl costs $1.10.

Can I filter by agency?

Grants.gov Crawler accepts sub-agency codes in pipe-separated form (e.g. USDA-AMS|DOD-AFRL|DOI-NPS). Top-level codes like USDA don't cascade because every opportunity is tagged with a sub-agency code, not a root code — that's how Grants.gov works, not a crawler quirk.

What data does Grants.gov Crawler return?

Grants.gov Crawler returns 30+ fields per opportunity, including the opportunity number, title, awarding agency, CFDA numbers, funding instrument, total program funding, award ceiling and floor, eligibility descriptions, grantor contact info, and close dates. With fetchDetails: true you get the full synopsis description; without it you get the lean listing summary.

Do I need an API key?

Grants.gov Crawler does not require an API key. The Grants.gov v1 search and fetch endpoints are fully public — no authentication, no rate limits, no DEMO_KEY theatrics.

Does Grants.gov Crawler need proxies?

Grants.gov Crawler doesn't need proxies. It's a public government API with no anti-bot measures, which is as rare as it sounds.

Need More Features?

Need custom fields, filters, or a different target site? File an issue or get in touch.

Why Use Grants.gov Crawler?

  • Affordable — $0.001 per record plus a $0.10 start fee
  • Complete — Returns both the listing summary and full synopsis in one run, so you don't have to glue two data sources together later
  • Fast and clean — Pure API, no browser, no proxies, no captchas — a 1,000-record detailed run completes in under an hour