SAM.gov Contract Opportunities & Awards Feed — USAspending API avatar

SAM.gov Contract Opportunities & Awards Feed — USAspending API

Pricing

$4.00 / 1,000 results

Go to Apify Store
SAM.gov Contract Opportunities & Awards Feed — USAspending API

SAM.gov Contract Opportunities & Awards Feed — USAspending API

Get new US federal contract opportunities and awards since your last run, filtered by NAICS code, keyword, agency and your own watchlist. Official SAM.gov and USAspending APIs, not a scraper. Clean JSON with agency, dollar value, dates and place of performance. Export, schedule and integrate.

Pricing

$4.00 / 1,000 results

Rating

0.0

(0)

Developer

Nick

Nick

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Get new US federal contract opportunities and awards since your last run, filtered by NAICS code, keyword, agency and your own saved watchlists. Built on the official SAM.gov and USAspending APIs — public-domain government data, no scraping, no cookies, no gray areas.

What does this Actor do?

It runs two federal sources behind one schema. In awards mode it reads USAspending for contracts that have actually been awarded, with the dollar amount attached. In opportunities mode it reads SAM.gov for live solicitations you can still bid on. Both come back as the same seventeen fields, so an award and an opportunity sit in the same table and the same downstream alert.

Why this instead of a SAM.gov scraper

If you searched for a "SAM.gov scraper" or a "federal contracts scraper", this Actor does that job through the official route. It reads the authoritative SAM.gov and USAspending federal APIs instead of scraping the website, so it cannot break when the site's HTML changes and cannot be blocked, banned or rate-limited out of existence. There is no headless browser, so runs are faster and cheaper per record. It is also scheduled monitoring rather than a one-shot scrape: it windows by date with a lag-tolerant watermark, flags newSinceLastRun, and annotates records that match your watchlists — plus it returns the awards side, with real dollar amounts, that solicitation-page scrapers never see.

The awkward detail worth knowing up front: the awards window is keyed on the contract's start date, not on a publication cursor. USAspending's award search exposes a time_period filter over award dates, so "new since last run" means "awards whose start date falls after your last watermark", and the watermark is held back to tolerate reporting lag. That is a genuinely different thing from a publication feed, and it is the honest description of what the source supports.

Who is it for?

  • Government contractors who want the morning's new solicitations in their NAICS codes without logging into SAM.gov.
  • Capture and BD teams tracking which competitors and prime contractors are winning work.
  • Suppliers and subcontractors looking for primes who just won an award and now need vendors.
  • Market and policy analysts measuring federal spend by agency, industry and geography.
  • AI agent builders who need a federal-procurement tool with a stable output schema.

Use cases

  • See new opportunities in your NAICS codes the morning they post, filtered to your keywords.
  • Watchlist USAspending recipient IDs for competitors and get their wins flagged automatically.
  • Track awards above a dollar threshold in one agency to size a market before bidding.
  • Feed newly-awarded primes into a CRM as subcontracting prospects.
  • Give an agent a tool that answers "what did this agency award in this industry recently?"

What you get

One row per opportunity or award, in a single shared schema. Fields that do not apply to a given record type are null — the field is always present.

FieldTypeDescription
recordTypestringopportunity or award
noticeIdstringSAM.gov notice ID (opportunities only)
awardIdstringUSAspending award ID (awards only)
titlestringSolicitation title, or for awards the award description truncated to 80 characters, falling back to the award ID
agencystringAwarding sub-agency where available, otherwise the top-tier agency
naicsstringNAICS industry code
postedDatestringDate the opportunity was posted (opportunities only)
actionDatestringAward start date (awards only)
responseDeadlinestringBid response deadline (opportunities only)
amountnumberAward amount in USD; for opportunities, the award amount where SAM.gov publishes one
placeOfPerformanceobjectAwards: { state }. Opportunities: { city, state, postcode, country }
recipientUeistringAward recipient Unique Entity Identifier (UEI; awards only)
setAsidestringSet-aside type, e.g. small business, where either source publishes one
pscCodestringProduct and Service Code (PSC; awards only)
pscDescriptionstringProduct and Service Code description (awards only)
descriptionstringDescription text, truncated to 500 characters
linkstringLink to the SAM.gov notice (opportunities only)
matchedWatchlistItemsarrayNames of the watchlist items this record matched
newSinceLastRunbooleanWhether this record is newer than the saved watermark
retrievedAtstringISO 8601 timestamp of when this row was fetched

Sample output record

{
"recordType": "award",
"noticeId": null,
"awardId": "80NSSC26P1199",
"title": "Research and development support services",
"agency": "National Aeronautics and Space Administration",
"naics": "336411",
"postedDate": null,
"actionDate": "2026-08-06",
"responseDeadline": null,
"amount": 111000,
"placeOfPerformance": { "state": "CA" },
"recipientUei": "JCBMLGPE6Z71",
"setAside": null,
"pscCode": "D312",
"pscDescription": "IT AND TELECOM- OPTICAL SCANNING",
"description": "Research and development support services for propulsion test operations…",
"link": "https://www.usaspending.gov/award/CONT_AWD_80NSSC26P1199_8000_-NONE-_-NONE-",
"matchedWatchlistItems": [],
"newSinceLastRun": true,
"retrievedAt": "2026-08-22T14:37:17.082Z"
}

How to use it

Track awards in your industry

awards is the default mode and needs no credentials.

{
"mode": "awards",
"naicsCodes": ["541512"],
"maxResults": 100
}

Watch named competitors

Each watchlist item is a saved search. All criteria inside one item must match (AND); a record matching any item (OR) gets that item's name added to matchedWatchlistItems. Set watchlistOnly: true to emit only matches.

{
"mode": "awards",
"naicsCodes": ["541512"],
"watchlist": [{ "name": "cloud-rivals", "keyword": "cloud" }],
"watchlistOnly": true,
"maxResults": 100
}

Follow live solicitations

opportunities mode reads SAM.gov, which requires an API key configured on the Actor as the SAM_API_KEY environment variable. Free keys are issued from your own SAM.gov account settings.

{
"mode": "opportunities",
"naicsCodes": ["541512"],
"keywords": ["software"],
"maxResults": 100
}

Input parameters

InputTypeDescription
modestringawards = USAspending contract awards, no key needed. opportunities = live SAM.gov solicitations, requires SAM_API_KEY. Default: awards
naicsCodesarrayNAICS industry codes to filter by, e.g. ["541512"]
keywordsarrayKeywords matched against titles and descriptions. Empty means no keyword filter
agenciesarrayAgency names to filter by. Awards use the awarding sub-agency; opportunities use the SAM.gov department filter. Empty means all agencies
postedSincestringISO 8601 start time. Defaults to the previous successful run's watermark
watchlistarraySaved searches: { name, recipientId?, naics?, keyword? }. NAICS matching is by prefix
watchlistOnlybooleanEmit only records matching at least one watchlist item. Default: false
maxResultsintegerMaximum records per run (1–1000). Default: 100

ueiOrDuns is still accepted as a backward-compatible alias for recipientId. In awards mode, either field matches the recipient's USAspending internal recipient_id or its exact UEI.

How monitoring works (first run and scheduling)

The first run establishes the start-date watermark and returns the current window of records. To monitor later windows, schedule this Actor as a saved Task so runs share the same storage — the watermark lives in the task's key-value store. A fresh unsaved run starts a fresh baseline.

The watermark advances only after records and RUN_SUMMARY have been saved. A failed upstream request leaves it unchanged, so a transient outage does not silently skip a window.

Honest limitations

  • awards mode covers contracts, not every federal award type. USAspending's award search requires award-type codes; this Actor requests A–D, which is the contract set relevant to government contracting. Grants and loans are not included — see the grants Actor below.
  • Award titles are derived, because USAspending publishes no title field. The first 80 characters of the award description are used, falling back to the award ID when there is no description.
  • The awards window keys on contract start date, not a publication timestamp, as explained above. Expect reporting lag between an award being signed and appearing.
  • opportunities mode requires a SAM.gov API key. Without it that mode returns an UNCONFIGURED diagnostic rather than rows.

Reliability

Per-source diagnostics are written to the RUN_SUMMARY key-value record — never into your paid results. Failures carry structured reason codes. Every record carries retrievedAt, and opportunities carry a link back to the official SAM.gov notice, so you can check any row against the source yourself.

Maintained against the upstream APIs. If a source changes its schema or an endpoint moves, report it through the Issues tab and it gets fixed.

Integrations

Connect this Actor to Make, Zapier, n8n, Slack, Google Sheets, Airtable or any HTTP endpoint through Apify integrations. A scheduled run can push new awards straight into a CRM or fire a webhook so a downstream job starts the moment the data lands. Datasets export as JSON, CSV, Excel, XML, RSS or HTML.

API usage

curl -X POST "https://api.apify.com/v2/acts/oneshotventure~sam-feed/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "awards", "naicsCodes": ["541512"], "maxResults": 100}'

Python, JavaScript, PHP and CLI clients are documented under Apify API clients.

Use with AI agents (MCP)

This Actor is callable from any MCP-compatible client — Claude, Cursor, VS Code or your own agent — through the Apify MCP server. The input schema is fully described and every record uses one stable, flat JSON shape, so an agent can call it and read the result without a parsing step. Because it reads official government APIs rather than a rendered page, the answer an agent gets is the same one the source publishes.

Frequently asked questions

Is there a free SAM.gov API?

Yes — SAM.gov publishes an opportunities API and issues free keys from your account settings. USAspending's API needs no key at all. This Actor is the scheduling, normalization and change-feed layer over both.

How do I get a SAM.gov API key?

Sign in to SAM.gov, open your account details and request a public API key. It is then configured on this Actor as the SAM_API_KEY environment variable to enable opportunities mode. awards mode works without any key.

How do I track federal contract awards by NAICS code?

Run in awards mode with your codes in naicsCodes and schedule it as a saved Task. Each run returns awards in the new window with newSinceLastRun set.

What is the difference between an opportunity and an award?

An opportunity is a solicitation that is still open — you can bid on it, and it has a responseDeadline. An award is a contract that has already been signed, and it carries the dollar amount. Different modes, same output schema.

Can I monitor which companies win contracts in my sector?

Yes, via watchlist items with a recipientId, naics prefix or keyword. Matching records are annotated with the item's name in matchedWatchlistItems, and watchlistOnly: true restricts the dataset to just those.

Does this include federal grants?

No. This Actor covers contracts. For federal funding opportunities use Grants.gov Monitor.

Why did my first run return a large batch?

The first run has no watermark, so it establishes a baseline over the current window. Schedule it as a saved Task and later runs return only the new records.

Disclaimer

Unofficial independent tool. Not affiliated with or endorsed by the GSA, SAM.gov, USAspending, or any US government agency. Data is retrieved from their official public sources.