SAM.gov New-Opportunity Monitor
Pricing
Pay per event
SAM.gov New-Opportunity Monitor
Watch SAM.gov Contract Opportunities for new federal notices matching your keywords. Built-in cross-run dedup means scheduled re-runs push nothing and cost ~nothing when nothing changed. Pay only per new opportunity detected.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Delta Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Watches SAM.gov Contract Opportunities for genuinely new notices matching your keyword searches — with built-in cross-run deduplication. Schedule it daily (or hourly) and get alerted only when something new appears. Quiet runs push nothing and cost ~nothing.
Why this instead of a scraper
One-shot SAM.gov scrapers re-bill you for every notice on every scheduled run,
and leave the "what's actually new?" diffing to you. This Actor keeps a snapshot
of every notice it has already seen (per stateKey), so:
- Only genuinely new notices are ever output — repeat runs with nothing new return an empty dataset.
- You pay per new opportunity, not per notice scanned. A quiet daily run costs only the Actor start ($0.001).
- No API key, no login, no proxy. It uses SAM.gov's own unauthenticated frontend search API — the same one that powers sam.gov's search box.
Inputs
| Field | Description |
|---|---|
searches | One entry per keyword search (max 20). Each has keyword (required, full-text across titles/descriptions), activeOnly (default true), maxResults (10–1000, default 100), and optional noticeTypes (codes: o Solicitation, k Combined Synopsis/Solicitation, p Presolicitation, r Sources Sought, s Special Notice, a Award Notice). |
stateKey | Namespace for the saved snapshot. Use a different key per schedule so monitors never share baselines. |
reportInitialAsNew | On the very first run there is no baseline, so everything is reported as new. Turn off to silently build the baseline instead. |
httpTimeoutSeconds | Per-request timeout (default 45). |
Searches run newest-first (SAM.gov modifiedDate descending) and diff by
notice ID. Amendments to notices you've already seen do not re-report —
only notices never seen before are output.
Output
One dataset row per new notice: noticeId, title, solicitationNumber,
noticeType / noticeTypeCode, agency, office, excerpt, publishDate,
modifiedDate, responseDate (due date), isActive, isCanceled, samUrl
(direct link), keyword (which search surfaced it), detectedAt.
A per-search run receipt (fetched/new counts, errors) is saved in the
samgov-monitor-state key-value store under <stateKey>-last-receipt, so every
run is auditable.
Pricing
Pay-per-event: $0.001 per Actor start + $0.0025 per new opportunity (discounted tiers for higher plans). Scanned-but-old notices never bill. Typical run costs a fraction of a cent in compute — the margin math is in your favor on quiet runs and very much in your favor on busy ones.
Honest limitations
- SAM.gov's search API sorts by modified date, not publish date: a notice amended today sorts as "newest" even if originally published months ago. The dedup is by notice ID, so you still only ever see each notice once.
- Server-side NAICS / set-aside filters on this API are unreliable (they silently fail open), so notice-type filtering is applied client-side after fetching the newest results. Keyword search itself is fully server-side.
- Attachment downloads are out of scope —
samUrltakes you to the notice. - This Actor only covers the Contract Opportunities index (
opp), not wage determinations, assistance listings, or exclusions.
Example
{"searches": [{"keyword": "cybersecurity", "activeOnly": true, "maxResults": 25},{"keyword": "janitorial services", "activeOnly": true, "maxResults": 25,"noticeTypes": ["o", "k", "p", "r"]}],"stateKey": "my-govcon-watch","reportInitialAsNew": true}
Built and maintained by Delta Tools — monitoring-grade Actors for the Apify Store: fresh-listing alerts and opportunity monitoring, engineered around what users actually ask for.