Get an alert when a SAM.gov solicitation you're bidding on is amended (Python, no API key)
Description and use
A Python script automatically downloads the daily SAM.gov CSV, tracks notice IDs for watched solicitations, and prints alerts for new or modified notices each morning, enabling bid writers to react promptly to amendments.
Problem
Bid writers need to know immediately when a solicitation they are working on is amended, but the public SAM.gov data is only available as a large CSV and amendments appear as new notice IDs.
Outcome
The script enables bid writers to receive daily alerts about amendments without needing an API key, reducing the risk of missing critical changes.
Workflow
- Download the daily CSV from https://sam.gov/api/prod/fileextractservices/v1/api/download/Contract%20Opportunities/datagov/ContractOpportunitiesFullCSV.csv?privacy=Public
- Save the file locally to avoid I/O errors
- Parse the CSV, normalizing solicitation numbers
- For each watched solicitation, build a map of current notice IDs to selected fields
- Load previously saved state from sam_watch.json
- Compare current and previous notice sets: new IDs, changed fields, or removed IDs
- Print alerts for new or modified notices
- Save the current state back to sam_watch.json for next run
Evidence
SAM.gov publishes every active contract opportunity as a public CSV extract, regenerated once a day (around 03:30 UTC recently)
an amendment shows up as a new notice ID under the same solicitation number (the Sol# column)
It was about 210 MB on 22 Oct.
- Record date: 2026-11-01T20:43:52.575Z