SAM.gov Contract Opportunities: Federal Bids by NAICS
Pricing
from $2.00 / 1,000 opportunity returneds
SAM.gov Contract Opportunities: Federal Bids by NAICS
US federal contract opportunities from SAM.gov's official daily extract: solicitations, sources sought, presolicitations and award notices. Filter by keyword, NAICS, PSC, set-aside, agency, state, posted date and open deadline. Description text, only-new mode, contacts removed.
Pricing
from $2.00 / 1,000 opportunity returneds
Rating
0.0
(0)
Developer
Itay Ozer
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Get US federal contract opportunities from SAM.gov as clean JSON: solicitations, combined synopses, sources sought, presolicitations, special notices and award notices. Filter by keyword, NAICS code, PSC code, set-aside, agency, state, posted date and open deadline, and get the description text of each notice.
Built for government contractors, bid and proposal teams, capture managers and agencies that track federal tenders, and for AI agents that need a small, predictable JSON feed of new bids.
The data comes from SAM.gov's official public Contract Opportunities extract (sam.gov Data Services), which the government rebuilds every day. That is the route SAM.gov's terms of use point to for bulk data, so there is no scraping of the website, no API key to request, no captchas and no proxy costs.
What you get
For every opportunity:
- Notice id, SAM.gov link, title, solicitation number
- Notice type (Solicitation, Combined Synopsis/Solicitation, Sources Sought, Award Notice...) and the type of the original notice
- Posted date, response deadline (with its time zone), archive date
- Department, sub-tier agency, contracting office, CGAC, FPDS and office codes
- NAICS code, PSC (product and service) code
- Set-aside code and name (small business, 8(a), HUBZone, SDVOSB, WOSB...)
- Place of performance and contracting office location: city, state, zip, country
- Award details on award notices: number, date, amount in USD, awardee
- The notice description as plain text, with emails and phone numbers removed (SAM.gov's extract cuts descriptions at about 32,000 characters)
- The date of the SAM.gov extract the row comes from
Point-of-contact columns (names, emails, phones) are never returned, and emails and phone numbers are removed from titles and descriptions.
Input
All fields are optional. With no filters you get the newest notices first.
| Field | Example | Notes |
|---|---|---|
keywords | cybersecurity, zero trust | All words of a phrase must appear in the title, solicitation number or description. Commas separate alternatives |
naicsCodes | ["5415", "236220"] | Prefix match: 5415 covers 541511, 541512, 541519 |
pscCodes | ["D3", "Z"] | Prefix match on the product and service code |
setAsides | ["SBA", "SDVOSBC"] | Set-aside codes, see the list in the input form |
noticeTypes | ["solicitation", "combined"] | solicitation, combined, presolicitation, sources_sought, special_notice, award, justification, modification, surplus, bundle |
agency | veterans affairs | Text in the department, agency or office name |
states | ["VA", "MD", "DC"] | Place of performance state |
postedWithinDays | 7 | Notices posted in the last N days |
postedFrom | 2026-10-01 | Notices posted on or after this date |
openOnly | true | Only notices whose response deadline is today or later |
onlyNew | true | Skip notices an earlier run with the same filters already returned |
descriptionMaxChars | 2000 | Description length, 0 to leave it out. Default 2,000 |
maxItems | 100 | 1 to 10,000, default 100. You pay only for notices returned |
Daily alert for IT services set aside for small business, open for bids:
{"naicsCodes": ["5415"],"setAsides": ["SBA", "8A", "SDVOSBC", "WOSB", "HZC"],"noticeTypes": ["solicitation", "combined", "sources_sought"],"openOnly": true,"postedWithinDays": 3,"onlyNew": true,"maxItems": 500}
Run it on a daily schedule: onlyNew makes each run return only notices you have not seen, and postedWithinDays keeps the run short.
Output example
One dataset item per notice (description shortened here):
{"noticeId": "ff9c886ead754999bbe7add4b0ad67e1","url": "https://sam.gov/opp/ff9c886ead754999bbe7add4b0ad67e1/view","title": "Pressure Seal V-Fold Mailer","solicitationNumber": "041115-27-0002","noticeType": "Solicitation","baseNoticeType": "Solicitation","postedAt": "2026-10-30T14:05:49","responseDeadline": "2026-11-04T14:00:00-05:00","archiveDate": "2026-11-19","department": "COMMERCE, DEPARTMENT OF","subTier": "US CENSUS BUREAU","office": "DEPT OF COMMERCE CENSUS","cgac": "013","fpdsCode": "1323","aacCode": "1333LB","naicsCode": "322220","pscCode": "7530","setAsideCode": "SBA","setAside": "Small Business Set Aside - Total","placeOfPerformance": { "city": "Charlestown", "state": "IN", "zip": "47111", "country": "USA" },"officeLocation": { "city": "SUITLAND", "state": "MD", "zip": "20746", "country": "USA" },"award": null,"additionalInfoLink": null,"description": "The Government is currently reviewing vendor questions and coordinating responses with the requiring activity...","dataAsOf": "2026-10-31T03:30:30.000Z"}
On an award notice, award looks like this:
{"number": "12-3J14-27-B-0001","date": "2026-10-30","amountUsd": 1784851.2,"awardee": "INN FOODS, INC. Watsonville CA USA","awardeeWithheld": false}
Fields SAM.gov leaves empty are null, never guessed.
Pricing
You pay per notice returned, nothing per run beyond Apify's standard start fee:
| Event | Price | When |
|---|---|---|
| Opportunity | $0.002 | Every notice in your dataset |
Example: 1,000 notices cost $2.00. A daily alert that returns 30 new notices costs $0.06 a day.
The actor reads your run's maximum charge before it starts and returns only as many notices as that covers, so a run never goes over the limit you set.
Limits
- Covers notices that are active on SAM.gov (about 72,000 on 2026-10-31). Archived notices are not in the extract.
- SAM.gov rebuilds the extract once a day (the 2026-10-31 file was published at 03:30 UTC), so notices posted today appear tomorrow. Every row carries
dataAsOf. - Attachments and the notice history are not included; follow
urlto the notice on SAM.gov. - About 1 in 6 notices has no description in the extract (11,971 of 71,604 on 2026-10-31), so
descriptionisnullfor those. postedAtis given exactly as SAM.gov writes it, without a time zone.- Email and phone removal works on common formats (703-555-0100, (703) 555-0100, 1-703-555-0100, +1 703 555 0100, +81 3-4545-0450). An unusual format can slip through.
- Results come newest posting date first (within one day, in SAM.gov's own order). Runs with a recent posted date or a small
maxItemsstop reading early and finish in seconds; a filter that matches only a few notices reads the whole file (about 10 seconds).
FAQ
Do I need a SAM.gov account or API key? No. The extract is public.
Is this allowed? SAM.gov's terms say bulk data is offered through its APIs and the Data Services extracts, and prohibit scraping the website. This actor reads only the public extract. Federal government works are in the US public domain.
Why are contact names, emails and phones missing? They are personal details of government staff. The actor drops the contact columns and removes emails and phone numbers from descriptions. Use the SAM.gov link to reach the contracting office.
Why is an awardee sometimes null with awardeeWithheld: true? Two cases. When the awardee looks like a private person rather than an organization, the name and address are withheld for privacy. Award notices dated before 2022-04-04 may carry Dun & Bradstreet data that SAM.gov's terms restrict, so their awardee is withheld too. Amount, date and award number stay.
How do I get only new bids every day? Turn on onlyNew and schedule the actor daily. The memory of what you have seen lives in a storage in your own Apify account, separately for each set of filters.
Can I use it from an AI agent or over the API? Yes. Call the actor with a JSON input like the examples above and read the dataset items.