Monitor public SAM.gov contract opportunities by keyword, agency, NAICS, PSC, notice type, dates, value, and active status.
Use this Actor when you need repeatable federal opportunity data for government contracting, bid monitoring, lead generation, capture research, competitor tracking, or procurement dashboards. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.
At a glance
- Federal opportunity search: monitor SAM.gov notices by keyword, agency, NAICS, PSC, notice type, and posted date.
- Contracting fields: save solicitation numbers, titles, offices, deadlines, set-asides, places of performance, and public notice URLs.
- Relevance scoring: use matched keywords and normalized scores to sort opportunities.
- Optional descriptions: include full cleaned description text when you need deeper analysis.
- Automation ready: schedule recurring searches and send matching opportunities to CRM, Slack, Sheets, or BI tools.
What can it do?
SAM.gov Contract Opportunities Monitor turns public federal opportunity searches into structured opportunity rows.
- Export SAM.gov opportunity data for solicitations, combined synopsis/solicitations, presolicitations, sources sought notices, awards, and other public notice types.
- Filter for real capture workflows by keyword, agency, NAICS, PSC, posted date, notice type, value, and active status.
- Collect deadline and buyer context such as response deadline, department, sub-agency, contracting office, set-aside, and place of performance.
- Build government-contracting alerts by scheduling the Actor and sending matching records to downstream tools.
- Use it as a SAM.gov data API workflow when you need CSV/JSON/API output without building a custom scraper.
Common workflows
- Bid monitoring: track new public opportunities in target sectors.
- Capture research: identify agencies, offices, NAICS codes, and recurring procurement patterns.
- Lead generation: route relevant notices to business development or proposal teams.
- Competitive intelligence: monitor competitor-related keywords, agencies, and categories.
- Market sizing: export opportunity rows for dashboards and trend analysis.
- AI triage: summarize descriptions and score notices by fit.
Who is it for?
- Government contractors monitoring new opportunities in their target markets.
- Business-development and capture teams routing qualified notices to proposal workflows.
- Procurement researchers and analysts building repeatable public-opportunity datasets.
What data can you collect?
Each dataset row represents one public SAM.gov contract opportunity.
| Field | Description |
|---|---|
noticeId |
SAM.gov notice identifier |
solicitationNumber |
Solicitation or reference number |
title |
Opportunity title |
typeCode |
SAM.gov notice type code |
typeLabel |
Human-readable notice type |
agency |
Department name |
subAgency |
Agency name |
office |
Contracting office when available |
postedDate |
Original posted date |
modifiedDate |
Most recent modification date |
responseDeadline |
Response deadline when available |
isActive |
Whether the notice is currently active |
isCanceled |
Whether the notice is canceled |
naics |
NAICS codes when available |
psc |
Product Service Codes when available |
setAside |
Set-aside information when available |
placeOfPerformance |
Place of performance when available |
periodOfPerformance |
Public performance period when available from notice detail data |
summary |
Cleaned short description |
descriptionText |
Optional full cleaned description |
uiUrl |
Direct public SAM.gov notice URL |
sourceUrl |
Source search URL used for the record |
relevanceScore |
Search relevance score normalized for sorting |
matchedKeywords |
Input keywords matched in the record text |
estimatedValue |
Estimated value when exposed |
enrichmentStatus |
Whether official notice-detail data was merged for the record |
enrichmentWarning |
Non-fatal detail lookup warning when the base record was still saved |
Example input
{
"keywords": ["cybersecurity", "zero trust"],
"agency": "Department of Defense",
"naics": ["541512"],
"activeOnly": true,
"maxItems": 50,
"includeDescription": false
}
Example output
{
"noticeId": "a63176dfde62490abfbc1ddce723754d",
"solicitationNumber": "W912HNA044275",
"title": "Construction and Alteration of Office Space",
"typeLabel": "Sources Sought",
"agency": "DEPT OF DEFENSE",
"subAgency": "DEPT OF THE ARMY",
"office": "W074 ENDIST SAVANNAH",
"postedDate": "2026-06-04T19:10:01+00:00",
"responseDeadline": "2026-06-10T11:00:00-04:00",
"isActive": true,
"summary": "Public SAM.gov notice summary...",
"uiUrl": "https://sam.gov/opp/a63176dfde62490abfbc1ddce723754d/view",
"relevanceScore": 100,
"matchedKeywords": ["construction"],
"estimatedValue": null
}
Tips for best results
- Use buyer language: combine capability keywords with agency names or NAICS codes.
- Keep alerts focused: narrow searches produce more useful recurring datasets.
- Use
includeDescriptionwhen ranking fit: full text is better for AI scoring and summaries. - Track notice types separately: sources sought, solicitations, and awards serve different workflows.
- Schedule daily runs: federal opportunity monitoring is most useful as a recurring workflow.
Limits and caveats
- The Actor extracts publicly visible SAM.gov opportunity data only.
- SAM.gov records can change, expire, or be canceled after scraping.
- Some records do not expose estimated value, place of performance, PSC, NAICS, or full description.
- This Actor does not submit bids, authenticate into SAM.gov, or access private procurement data.
API usage
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~sam-gov-contract-opportunities-monitor/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"keywords":["cybersecurity"],"agency":"Department of Defense","activeOnly":true,"maxItems":50}'
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/sam-gov-contract-opportunities-monitor').call({
keywords: ['cybersecurity'],
naics: ['541512'],
activeOnly: true,
maxItems: 50,
});
console.log(run.defaultDatasetId);
Python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/sam-gov-contract-opportunities-monitor').call(run_input={
'keywords': ['cybersecurity'],
'naics': ['541512'],
'activeOnly': True,
'maxItems': 50,
})
print(run['defaultDatasetId'])
MCP and AI agents
This Actor can be used through the official Apify MCP server. The focused URL below exposes this Actor only.
Claude Code setup:
claude mcp add apify-sam-gov https://mcp.apify.com?tools=fetch_cat/sam-gov-contract-opportunities-monitor
MCP client JSON setup:
{
"mcpServers": {
"apify-sam-gov": {
"url": "https://mcp.apify.com?tools=fetch_cat/sam-gov-contract-opportunities-monitor"
}
}
}
Example prompts:
- "Monitor active cybersecurity opportunities with NAICS 541512 and return the deadline and agency."
- "Find small-business set-aside notices matching cloud migration and export the results."
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.
Privacy and data handling
This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses the inputs you provide and the public records needed to produce the documented dataset to produce the output dataset and sends requests to SAM.gov public opportunity pages/APIs; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.