Federal Contract Opportunities Feed (SAM.gov public data) avatar

Federal Contract Opportunities Feed (SAM.gov public data)

Pricing

Pay per event

Go to Apify Store
Federal Contract Opportunities Feed (SAM.gov public data)

Federal Contract Opportunities Feed (SAM.gov public data)

Daily feed of open U.S. federal contract opportunities from GSA's public SAM.gov extract. Filter by keyword, NAICS, PSC, set-aside, agency, state and deadline. No API key needed. Only-new-since-last-run delta mode.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Puneet

Puneet

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Never miss a U.S. federal bid again. Get every new federal contract opportunity that fits your business, as clean structured data, every morning. No SAM.gov API key, no 10-requests-a-day limit, no copy-pasting from search pages.

This Actor reads the public daily Contract Opportunities extract that the U.S. General Services Administration (GSA) publishes for SAM.gov. It filters the extract to your NAICS codes, keywords, set-asides, agencies and states, and returns only what is new since your last run.

Who it's for

  • Small businesses and 8(a) / HUBZone / SDVOSB / WOSB firms that want a daily list of set-aside bids they qualify for.
  • Capture and BD teams that pipe new solicitations into a CRM, Slack, Airtable or Google Sheets.
  • Proposal consultants that watch opportunities for several clients, using one saved task per client.
  • Market researchers tracking what agencies are buying, and award notices with amounts.

Why this one

This ActorTypical alternatives
API key neededNo (optional: bring your own)Usually yes, and personal keys are capped at about 10 requests/day
CoverageAll active notices in the official daily extract (70,000+ rows)Limited by key quota / page scraping
Only new since last runBuilt in (per filter set, stored in your own account)Rare
Personal dataContracting officers' names, emails and phones removedOften included
Price$1.50 per 1,000 notices + $0.01 per runPaid alert services cost $49–$149/month

What you get (sample output)

One dataset item per notice:

{
"noticeId": "f50d635e4b9d4404916c47df2357fc66",
"title": "Admin Management, Data Management, Software Development (Quality Assurance Inspection Software for EMS)",
"solicitationNumber": "36C26026Q1017",
"noticeType": "Combined Synopsis/Solicitation",
"baseType": "Combined Synopsis/Solicitation",
"department": "VETERANS AFFAIRS, DEPARTMENT OF",
"subTier": "VETERANS AFFAIRS, DEPARTMENT OF",
"office": "260-NETWORK CONTRACT OFFICE 20 (36C260)",
"officeCity": "VANCOUVER",
"officeState": "WA",
"postedDate": "2026-10-13T18:26:14",
"responseDeadline": "2026-11-03T17:00:00-08:00",
"archiveDate": "2026-11-18",
"naicsCode": "541519",
"pscCode": "H979",
"setAsideCode": "SDVOSBC",
"setAside": "Service-Disabled Veteran-Owned Small Business (SDVOSB) Set-Aside (FAR 19.14)",
"placeOfPerformance": {"city": null, "state": "OR", "zip": "97239", "country": "USA"},
"active": true,
"award": null,
"daysUntilDeadline": 19,
"samUrl": "https://sam.gov/opp/f50d635e4b9d4404916c47df2357fc66/view",
"additionalInfoLink": null,
"source": "SAM.gov Contract Opportunities public data (U.S. General Services Administration). U.S. Government work, public domain. Not affiliated with or endorsed by GSA.",
"dataMode": "public-extract",
"extractLastModified": "2026-10-14T03:30:44+00:00"
}

Award notices also fill award with number, date, amountUsd and awardeeName. The dataset has two ready-made table views: Opportunities and Awards. Export as JSON, CSV, Excel or XML, or connect it to Zapier, Make, Google Sheets or a webhook.

Inputs

FieldWhat it doesExample
keywordsMatch any word or phrase in the title and description["software", "zero trust"]
excludeKeywordsDrop notices containing these["construction"]
naicsCodesNAICS, prefix match["541512", "5415"]
pscCodesProduct Service Codes, prefix match["D3", "7030"]
setAsideSet-aside codes (NONE = no set-aside)["SBA", "8A", "SDVOSBC"]
noticeTypesSolicitation, Combined Synopsis/Solicitation, Presolicitation, Sources Sought, Special Notice, Award Notice, Justification, Sale of Surplus Property["Solicitation"]
agenciesDepartment / sub-tier / office contains["ARMY", "VETERANS"]
placeOfPerformanceStatesTwo-letter state codes["CA", "TX"]
postedWithinDaysPosted in the last N days (0 = any)7
responseDeadlineAfterStill open on this date2026-11-01
onlyNewSinceLastRunDeliver each notice once per filter set (default on)true
includeDescriptionAdd the full agency description textfalse
maxResultsCap, newest first1000
ownSamApiKeyOptional: your own SAM.gov key for same-day data (stored as a secret, never logged)—

Tip: create one saved Task per client or per capability (for example "IT set-asides in VA/MD/DC") and schedule it daily at 8 am. With Only new since last run on, each morning's dataset has just the new bids.

Pricing (pay per event)

EventPrice
Run started$0.01
Opportunity delivered$0.0015 (= $1.50 per 1,000)
Full description added (only if enabled)$0.0005 per opportunity

Example: a daily scheduled run that finds 25 new matching notices costs about $0.05 a day, roughly $1.50 a month. You can cap any run with Apify's maximum cost per run setting; the Actor stops cleanly when the cap is reached. Platform compute is included in these prices.

Data source and licence

  • Source: the Contract Opportunities public data extract published by the U.S. General Services Administration through SAM.gov Data Services (sam.gov/data-services), refreshed daily. Each item links to the notice on SAM.gov.
  • Licence: works of the U.S. Government are in the public domain in the U.S. (17 U.S.C. §105), as SAM.gov's own Terms of Use note.
  • How we access it: one download of the public extract per run, the route GSA's terms point automated users to. This Actor never scrapes SAM.gov web pages and never uses a shared API key. If you supply your own key, it is used only for your run, as the SAM.gov terms require.
  • Freshness: the public extract is refreshed once a day, so scheduling more than daily adds no new data. Use your own key for same-day notices.
  • Person-level contact data is never output. The extract's primary and secondary contact columns (names, emails, phone and fax numbers, and titles) are dropped. You get the contracting office instead (department, sub-tier, office, city, state).
  • Awardee names are kept only on award notices, and only when the name looks like an organisation. A name without a business suffix (a possible sole proprietor) is withheld, and so is any award dated before 2022-04-04, because older records may include Dun & Bradstreet data that may not be redistributed in bulk. awardeeWithheldReason says why a name was withheld.
  • Descriptions are opt-in. When enabled, personal-looking email addresses and phone numbers inside the agency text are replaced with [email removed] / [phone removed].
  • Attachments are not downloaded or re-hosted. You get links only.
  • This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by GSA, SAM.gov or any U.S. Government agency. "SAM.gov" is used only to describe the data source. Always confirm details on the notice page before bidding.

Reliability

  • Retries with backoff on network errors and 429/5xx responses, plus a format check on the extract (it fails loudly if columns change instead of returning bad data).
  • Malformed rows are skipped and counted rather than crashing the run.
  • Each run writes a RUN_SUMMARY record (rows scanned, matched, delivered, skipped, retries). A persistent run-health counter (runs started / succeeded / failed / unfinished, plus the last error) is kept in your account's fcof-state key-value store.
  • A run that finds nothing new succeeds with zero items. That is not an error.

FAQ

Do I need a SAM.gov account? No. The default mode needs nothing.

How fresh is the data? The public extract is regenerated daily (overnight U.S. time). For same-day notices, add your own API key.

Can I get notices for several NAICS codes at once? Yes. All list inputs accept several values; within one filter any value matches, and different filters combine with AND.

Something broke or a field looks wrong? Open an issue on the Actor's Issues tab. Issues are answered within a few days.