SAM.gov Contract Opportunities Monitor

Monitor US federal contract opportunities from SAM.gov with filters, normalized fields, and relevance scoring.

Data fields

FieldTypeDescription
noticeIdstringValue exported as noticeId.
solicitationNumberstring | nullValue exported as solicitationNumber.
titlestringValue exported as title.
typeCodestring | nullValue exported as typeCode.
typeLabelstring | nullValue exported as typeLabel.
agencystring | nullValue exported as agency.
subAgencystring | nullValue exported as subAgency.
officestring | nullValue exported as office.

Input preview

keywordsKeywords *
postedFromPosted from
postedToPosted to
noticeTypesNotice types
agencyAgency or office contains
naicsNAICS codes

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

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 includeDescription when 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.

Common questions

Questions and answers reused from the canonical actor README.

Can this monitor active SAM.gov opportunities?

Yes. Set activeOnly=true and schedule the Actor to run daily or weekly.

Can it include full opportunity descriptions?

Yes. Set includeDescription=true when you need longer text for review, AI scoring, or exports.

Can I export to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, JSON, Excel, XML, RSS, HTML, or accessed through the API.