Federal Contract Opportunities Feed (SAM.gov public data)
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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 Actor | Typical alternatives | |
|---|---|---|
| API key needed | No (optional: bring your own) | Usually yes, and personal keys are capped at about 10 requests/day |
| Coverage | All active notices in the official daily extract (70,000+ rows) | Limited by key quota / page scraping |
| Only new since last run | Built in (per filter set, stored in your own account) | Rare |
| Personal data | Contracting officers' names, emails and phones removed | Often included |
| Price | $1.50 per 1,000 notices + $0.01 per run | Paid 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
| Field | What it does | Example |
|---|---|---|
keywords | Match any word or phrase in the title and description | ["software", "zero trust"] |
excludeKeywords | Drop notices containing these | ["construction"] |
naicsCodes | NAICS, prefix match | ["541512", "5415"] |
pscCodes | Product Service Codes, prefix match | ["D3", "7030"] |
setAside | Set-aside codes (NONE = no set-aside) | ["SBA", "8A", "SDVOSBC"] |
noticeTypes | Solicitation, Combined Synopsis/Solicitation, Presolicitation, Sources Sought, Special Notice, Award Notice, Justification, Sale of Surplus Property | ["Solicitation"] |
agencies | Department / sub-tier / office contains | ["ARMY", "VETERANS"] |
placeOfPerformanceStates | Two-letter state codes | ["CA", "TX"] |
postedWithinDays | Posted in the last N days (0 = any) | 7 |
responseDeadlineAfter | Still open on this date | 2026-11-01 |
onlyNewSinceLastRun | Deliver each notice once per filter set (default on) | true |
includeDescription | Add the full agency description text | false |
maxResults | Cap, newest first | 1000 |
ownSamApiKey | Optional: 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)
| Event | Price |
|---|---|
| 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.
Privacy and legal note
- 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.
awardeeWithheldReasonsays 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_SUMMARYrecord (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'sfcof-statekey-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.