SAM.gov Contract Opportunities Watch
Pricing
from $4.00 / 1,000 opportunities
SAM.gov Contract Opportunities Watch
Scheduled monitor for US federal contract opportunities on SAM.gov. Returns only opportunities that are new or changed since your last run, filtered to your NAICS, keywords, and set-aside criteria.
Pricing
from $4.00 / 1,000 opportunities
Rating
0.0
(0)
Developer
Soco Supply
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
A scheduled Apify Actor for small government contractors who want a cheap daily feed of federal contract opportunities filtered to their niche (NAICS, PSC, keywords, set-aside, state). Each run returns only opportunities that are new or changed since the previous run. State is kept in a named key-value store (sam-opportunities-watch-state).
Who it is for
- Small businesses watching one or a few NAICS codes
- Teams that do not want to re-read thousands of SAM.gov rows every morning
- Integrations that need structured JSON with stable
noticeIdkeys and change detection
Input example
{"dataSource": "search","naicsCodes": ["541511"],"keywords": ["cloud", "DevSecOps"],"setAsideTypes": ["SBA"],"placeOfPerformanceStates": ["CA", "VA"],"postedFrom": 3,"responseDeadlineWithinDays": 30,"maxResults": 50,"emitAll": false,"apiKey": ""}
Recommended: request a free SAM.gov API key and set apiKey in input — the official Get Opportunities Public API v2 is the most reliable source.
With dataSource: "auto", the actor uses API v2 when apiKey is set, otherwise the Contract Opportunities file extract when Data Services is healthy, otherwise the public search + detail fallback (rate-limited: 2 concurrent detail requests, ≥300 ms between details, descriptive User-Agent). maxResults only marks opportunities as seen after they are emitted.
Output example
One record from local testing (fields only; no contact data):
{"noticeId": "506e7a2712a94719a180fe94689d4f02","title": "N6852027R1003: Naval Air Systems Command (NAVAIR) Depot Maintenance System (NDMS) IT Program/Project Functional Requirements and Software Lifecycle Support (ITPSS) Request for Proposal (RFP)","solicitationNumber": "N6852027R1003","department": "DEPT OF DEFENSE","subTier": "DEPT OF THE NAVY","office": "","postedDate": "2026-10-07T20:14:45.680+00:00","responseDeadline": "2026-11-09T14:00:00-05:00","type": "Special Notice","baseType": "s","setAside": "","naicsCode": "541511","classificationCode": "","placeOfPerformance": { "city": "", "state": "", "country": "" },"active": true,"award": { "amount": null, "date": null, "awardeeName": null },"uiLink": "https://sam.gov/opp/506e7a2712a94719a180fe94689d4f02/view","changeType": "new"}
Point-of-contact names, emails, and phone numbers are never included in output.
Pricing
$4.00 per 1,000 opportunities returned, plus $0.003 per run. Platform usage is included. You pay only for rows the Actor delivers after your filters and change detection, not for the full SAM.gov catalog.
Sample run vs. monitoring
The example input in Console returns up to 10 current matching records so you can see the output right away ("Emit all matches" on, max results 10). For a scheduled monitor, turn "Emit all matches" off and clear the max-results limit: each run then returns only records that are new or changed since the previous run, so you pay only for what's new.
Schedule daily
In Apify Console: open the task → Schedule → e.g. 0 7 * * * (7:00 AM UTC) or your timezone. Use the same input each time; the key-value store remembers prior snapshots. For a full refresh, set emitAll: true once or clear the sam-opportunities-watch-state store.
Local cron example:
$0 7 * * * cd /path/to/sam-opportunities-watch && APIFY_LOCAL_STORAGE_DIR=./storage node src/main.js
Data source attribution
Opportunity data comes from SAM.gov (U.S. General Services Administration / IAE):
Use consistent with federal open-data terms; verify current SAM.gov policies before production use.
Local run
npm installAPIFY_LOCAL_STORAGE_DIR=./storage node src/main.js
Place input in storage/key_value_stores/default/INPUT.json or use npx apify-cli run -p from this directory.