SAM.gov Contract Opportunities Monitor & Alerts
Pricing
Pay per event
SAM.gov Contract Opportunities Monitor & Alerts
Monitor US federal contract opportunities from the official SAM.gov daily file. Filter by NAICS, keyword, state, set-aside and deadline, and get only the notices you have not seen before, with contact emails and links. No API key, no quota. 0.003 USD per notice plus 0.005 USD per run.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Sillage Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
SAM.gov contract opportunities monitor: filter US federal bids by NAICS code, keyword, state and set-aside, and get only the notices you have not seen yet, with the contact email and a direct link. It reads the official public daily extract of SAM.gov, so there is no API key, no daily quota and no scraping of the website. You pay 0.003 USD per notice delivered plus 0.005 USD per run, with no subscription.
Not affiliated with SAM.gov or the U.S. General Services Administration. The data comes from the official public daily extract of Contract Opportunities, and every row says which file and which date it came from.
Try it in one click: the default input lists IT services notices (NAICS 5415) posted in the last 7 days, 20 notices. For a daily alert, turn on "Only new notices", keep the same watch name and add a schedule.
What can you use it for?
- Win more federal bids. Get every new solicitation in your NAICS codes each morning, before your competitors read them.
- Build a lead list for subcontractors and suppliers. Each notice comes with the contracting officer name, email and phone, plus the agency and office.
- Track one state. Filter by place of performance state (TX, VA, DC) and read the department and office on every row.
- Find set-aside work. Keep only small business, 8(a), HUBZone, service-disabled veteran or women-owned set-asides.
- Feed a CRM, a spreadsheet or an AI agent. Download CSV, JSON or Excel, or call the Apify API and plug the results into Zapier, Make or n8n.
How to monitor SAM.gov contract opportunities
- Choose your filters: NAICS codes (
5415matches every code that starts with 5415), keywords, states, posted within the last N days. All filters are optional. - Click Start. The first run delivers every match (up to your max notices), newest first. Switch "Only new notices" on and keep your watch name: it is the memory key.
- Add a daily schedule in Apify (Schedules). From the second run on, you receive only the notices that were never delivered under that watch name. Read the dataset, or use a webhook on "Run succeeded".
Example output (real rows from our runs)
Search used: keywords cybersecurity and zero trust, states VA, MD and DC, posted in the last 14 days, 3 notice types. 11 notices came back. Four of them:
| Posted | Type | Agency | State | NAICS | Deadline | Contact |
|---|---|---|---|---|---|---|
| 2026-10-15 | Combined Synopsis/Solicitation | DEPT OF DEFENSE | MD | 541611 | 2027-08-01 | andrew.c.heisler.civ@army.mil |
| 2026-10-14 | Sources Sought | COMMERCE, DEPARTMENT OF | MD | 541513 | 2026-11-04 | pamela.a.miller@census.gov |
| 2026-10-13 | Solicitation | DEPT OF DEFENSE | MD | 541519 | 2026-10-22 | disa.scott.ditco.mbx.ps84-other-transaction-authority@mail.mil |
| 2026-10-13 | Sources Sought | HEALTH AND HUMAN SERVICES, DEPARTMENT OF | MD | 541330 | 2026-10-22 | ryssa.nix@nih.gov |
One full row (a real notice from that run; empty fields come back as null):
{"noticeId": "fbec2a813c1d4358a6c78a9559749e13","title": "Enterprise RFID Technology, Installation, and Azure WIMS Integration","solicitationNumber": "CENS-REQ-27-WIMS","department": "COMMERCE, DEPARTMENT OF","subTier": "US CENSUS BUREAU","office": "DEPT OF COMMERCE CENSUS","postedDate": "2026-10-14 11:23:43","type": "Sources Sought","baseType": "Sources Sought","setAsideCode": "NONE","setAside": "No Set aside used","responseDeadline": "2026-11-04T12:00:00-05:00","archiveDate": "2026-11-19","naicsCode": "541513","classificationCode": "DA10","popCity": "Suitland","popState": "MD","popZip": "20746","popCountry": "USA","awardNumber": null,"awardee": null,"contactName": "pamela a miller","contactEmail": "pamela.a.miller@census.gov","contactPhone": "3017633547","secondaryContactName": "Kristina Hartman","secondaryContactEmail": "kristina.d.hartman@census.gov","uiLink": "https://sam.gov/workspace/contract/opp/fbec2a813c1d4358a6c78a9559749e13/view","watchName": "test-kw-state","isNew": true,"firstSeenAt": "2026-10-16T12:50:02+00:00","source": {"file": "ContractOpportunitiesFullCSV.csv","url": "https://s3.amazonaws.com/falextracts/Contract Opportunities/datagov/ContractOpportunitiesFullCSV.csv","fileModified": "2026-10-16T03:30:28+00:00","publisher": "SAM.gov public Contract Opportunities extract (U.S. General Services Administration)"}}
The same run also returns description (the full notice text) when "Include full description" is on. Award notices carry awardNumber, awardDate, awardAmount and awardee.
Memory in action (real runs): the first run with watch name test-onlynew-1610 delivered 93 notices. The same input again delivered 0 and reported "93 matched, 93 already delivered earlier".
How much does it cost to monitor SAM.gov opportunities?
You pay per notice delivered (0.003 USD, so 3 USD for 1,000 notices) plus 0.005 USD each time the Actor starts. Notices that match but were already delivered earlier are not charged, and you can cap spending with "Max notices per run" and with the maximum cost setting of your run.
- Daily watch on IT services (NAICS 5415). About 13 new notices a day (93 matched in 7 days in our test). 13 x 0.003 + 0.005 = about 0.044 USD a day, roughly 1.30 USD a month.
- One-off export of 1,000 notices for a market study: 1,000 x 0.003 + 0.005 = 3.005 USD.
FAQ
Do I need a SAM.gov account or an API key? No. The Actor reads the public daily extract that SAM.gov publishes for download. You do not need a SAM.gov login, a data.gov key or a proxy.
Is there a daily quota or a rate limit? No quota on our side. Each run downloads the whole daily file (about 200 MB, about 71,000 active notices) and filters it, so a run takes about 10 seconds for small results and about 30 seconds for 5,000 notices.
How fresh is the data?
SAM.gov refreshes the file every night. A run reads the latest file and each row carries source.fileModified, the time of that file. New notices posted during the day appear the next morning.
Is it legal to use this data? The Actor uses only the extract that SAM.gov publishes "to promote data sharing", never the website or the API, and it cites the source in every row. The notices are public procurement records. Contact names and emails are the ones the agencies publish for each notice: use them for the business purpose of the notice and follow the laws that apply to your outreach (for example CAN-SPAM). Not affiliated with SAM.gov or the U.S. General Services Administration.
How do I get only the new notices? Turn on "Only new notices" and keep the same watch name. The Actor remembers the notices it delivered and skips them next time. A different watch name starts a fresh memory, and "Reset memory" clears one.
I do not see a notice I expected. Why? Three common reasons. The place of performance state is empty on about 3 notices out of 4, so a state filter only finds notices that name one. A notice posted today is in tomorrow's file. And a short NAICS code matches only codes that start with it (5415 matches 541511 but not 518210).
Can I export to CSV or Excel, or use a webhook, Zapier or Make? Yes. The dataset downloads as CSV, JSON, Excel, XML or HTML. Add a webhook on "Run succeeded" or use the Apify integrations for Zapier, Make, n8n or Google Sheets.
Does it include the full description and the award data? Yes. The full notice text is included by default (turn it off for lighter rows). Award notices include the award number, date, amount and awardee, as published in the file.
What happens if SAM.gov is down or the file moves? The Actor reads SAM.gov's official file list on every run and falls back to the known address. If the file cannot be downloaded, the run fails with a clear message and no notice is charged.
Input settings
| Setting | What it does |
|---|---|
| NAICS codes | 2 to 6 digits, one per line. A short code matches every code that starts with it. |
| Keywords | A notice matches if its title or description contains any keyword (not case sensitive). |
| Place of performance states | 2-letter codes (TX, VA, DC). |
| Posted within the last N days | 1 to 3650. Ignored when "Posted after" is set. |
| Posted after (date) | YYYY-MM-DD, on or after this day. |
| Response deadline on or after (date) | YYYY-MM-DD. Drops expired notices; notices with no deadline are kept. |
| Notice types | Solicitation, Combined Synopsis/Solicitation, Presolicitation, Sources Sought, Special Notice, Award Notice and more. |
| Set-aside | Small business, 8(a), HUBZone, service-disabled veteran, women-owned and other programs. |
| Only new notices | Deliver only notices never delivered under this watch name. |
| Watch name (memory) | The memory key. Same name, same memory. |
| Reset memory | Forget what was delivered under this watch name. |
| Include full description | Add the full notice text to each row. |
| Max notices per run | 1 to 5,000, newest first. A cost guard. |
Filters combine with AND. Values inside one filter combine with OR.
More tools from our team
- Brand AI Answers: see how ChatGPT answers about your brand and your competitors.
- Flight Price Tracker: fare drop alerts with memory between runs.
- TikTok Creator Ranker: rank TikTok creators by real reach before you pay them.
Support
We answer every question within 6 hours.
Found this useful? Leave a quick review on the Reviews tab: it takes 10 seconds and helps us keep improving it.