SAM.gov Contract Opportunities Monitor & Alerts avatar

SAM.gov Contract Opportunities Monitor & Alerts

Pricing

Pay per event

Go to Apify Store
SAM.gov Contract Opportunities Monitor & Alerts

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

Sillage Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

  1. Choose your filters: NAICS codes (5415 matches every code that starts with 5415), keywords, states, posted within the last N days. All filters are optional.
  2. 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.
  3. 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:

PostedTypeAgencyStateNAICSDeadlineContact
2026-10-15Combined Synopsis/SolicitationDEPT OF DEFENSEMD5416112027-08-01andrew.c.heisler.civ@army.mil
2026-10-14Sources SoughtCOMMERCE, DEPARTMENT OFMD5415132026-11-04pamela.a.miller@census.gov
2026-10-13SolicitationDEPT OF DEFENSEMD5415192026-10-22disa.scott.ditco.mbx.ps84-other-transaction-authority@mail.mil
2026-10-13Sources SoughtHEALTH AND HUMAN SERVICES, DEPARTMENT OFMD5413302026-10-22ryssa.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

SettingWhat it does
NAICS codes2 to 6 digits, one per line. A short code matches every code that starts with it.
KeywordsA notice matches if its title or description contains any keyword (not case sensitive).
Place of performance states2-letter codes (TX, VA, DC).
Posted within the last N days1 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 typesSolicitation, Combined Synopsis/Solicitation, Presolicitation, Sources Sought, Special Notice, Award Notice and more.
Set-asideSmall business, 8(a), HUBZone, service-disabled veteran, women-owned and other programs.
Only new noticesDeliver only notices never delivered under this watch name.
Watch name (memory)The memory key. Same name, same memory.
Reset memoryForget what was delivered under this watch name.
Include full descriptionAdd the full notice text to each row.
Max notices per run1 to 5,000, newest first. A cost guard.

Filters combine with AND. Values inside one filter combine with OR.

More tools from our team

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.