Check the Setup
- Python 3.10 or newer
- A notebook environment such as Jupyter or Google Colab
- An internet connection
Federal grant opportunity postings for building funding inboxes and agency opportunity monitors.
Report a ProblemFrom Source to Product Signal
Grants.gov search2 returns opportunity summaries without authentication. Start with one keyword and posted status. A posting is not an award, and eligibility, close dates, and attachments must be read on the opportunity itself.
Install the packages, then run the notebook cell.
python -m pip install pandas requests
import pandas as pd
import requests
response = requests.post(
"https://api.grants.gov/v1/api/search2",
json={
"keyword": "climate",
"oppStatuses": "posted",
"rows": 20,
"startRecordNum": 0,
},
timeout=30,
)
response.raise_for_status()
payload = response.json()
opportunities = pd.DataFrame(payload.get("data", {}).get("oppHits", payload.get("oppHits", [])))
opportunities["retrieved_at_utc"] = pd.Timestamp.now(tz="UTC")
print(opportunities.head())Test a Useful Signal
Test whether search2 can power a bounded federal-funding inbox.
Grants.gov is a government source. Last verified 2026-09-27. Temporal coverage: posted, forecasted, and closed federal opportunities.