SAM.gov Scraper: Contract Opportunities & Bid Alerts
Pricing
from $2.00 / 1,000 contract opportunities
SAM.gov Scraper: Contract Opportunities & Bid Alerts
Scrape SAM.gov federal contract opportunities: RFPs, RFQs, solicitations, sources sought and award notices. Filter by keyword, NAICS, PSC, set-aside (8(a), SDVOSB, WOSB, HUBZone), state, agency and deadline. Daily bid alerts return only new notices. No API key. Export CSV, Excel, JSON.
Pricing
from $2.00 / 1,000 contract opportunities
Rating
0.0
(0)
Developer
Tenderly Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does SAM.gov Scraper do?
SAM.gov Scraper pulls U.S. federal contract opportunities from SAM.gov — RFPs, RFQs, solicitations, combined synopsis/solicitations, sources sought, presolicitations, special notices and award notices — and turns them into a clean spreadsheet or JSON feed. Filter by keyword, NAICS code, PSC code, set-aside (8(a), SDVOSB, WOSB, EDWOSB, HUBZone, small business), state, agency, posted date and response deadline, then schedule it as a daily SAM.gov bid alert that returns only new notices.
- No SAM.gov account, API key or login. The scraper reads SAM.gov's official public Contract Opportunities daily data extract (about 71,000 notices; about 20,000 of them open on a typical day), so there are no API rate limits to hit.
- Fast: a filtered search over the whole file typically finishes in under a minute.
- Pay per result: US$2 per 1,000 opportunities plus US$0.01 per run. A first test run of 25 notices costs about US$0.06.
- Export to CSV, Excel, JSON, XML or HTML, or send results to Google Sheets, Slack, email, Zapier, Make or your CRM with Apify integrations and the Apify API.
Who is this SAM.gov scraper for?
- Small businesses and GovCon BD teams who want a morning list of new bids in their NAICS codes instead of re-running SAM.gov searches by hand.
- Set-aside hunters: for example every open SDVOSB construction opportunity in Texas, or 8(a) IT services for the Army.
- Proposal writers and consultants tracking deadlines for several clients (one saved search per client).
- Market researchers and subcontractors: award notices with awardee and award amount, by agency and NAICS, to see who is winning work.
- Developers and AI agents who need SAM.gov contract data as normalized JSON (full descriptions included) for RAG, dashboards or lead scoring.
How to scrape SAM.gov contract opportunities
- Click Try for free. The form is prefilled with a small search (keyword "software", posted in the last 7 days, 25 results).
- Add your filters: keywords, NAICS codes or prefixes (
5415matches 541511, 541512…), set-aside types, states, agencies, deadlines. - Click Start. Results appear in the Opportunities table; switch to the Awards view for award notices.
- For daily SAM.gov alerts: turn on Only new since last run, give the search a Saved search name, and add a daily Schedule in Apify. Each run then returns only notices this search has not returned before.
Apify's free plan includes US$5 of monthly credit to spend in Apify Store, which is enough for roughly 2,400 opportunities with this Actor.
Input examples
Daily bid alert: new IT services opportunities set aside for service-disabled veteran-owned small businesses (SDVOSB) in Virginia, Maryland or DC, due in the next 30 days:
{"naicsCodes": ["5415"],"setAsideCodes": ["SDVOSBC", "SDVOSBS"],"states": ["VA", "MD", "DC"],"deadlineWithinDays": 30,"onlyNewSinceLastRun": true,"stateKey": "sdvosb-it-dmv","firstRunBehavior": "returnAll","maxResults": 500}
Keyword search across all agencies, solicitations only, soonest deadline first:
{"keywords": ["zero trust", "cybersecurity"],"excludeKeywords": ["request for information"],"noticeTypes": ["Solicitation", "Combined Synopsis/Solicitation"],"sortBy": "responseDeadlineAsc","maxResults": 200}
Who won contracts in my NAICS? Award notices for construction (NAICS 236/237/238) posted in the last 30 days:
{"naicsCodes": ["236", "237", "238"],"noticeTypes": ["Award Notice"],"postedWithinDays": 30,"activeOnly": false,"maxResults": 1000}
Filters
| Filter | How it works |
|---|---|
| Keywords | Any/all mode, phrases, whole-word matching ("AI" won't match "maintenance"), exclude keywords, title and/or description |
| NAICS codes | Codes or prefixes — 5415 matches 541511, 541512, 541519… |
| PSC codes | Product Service Code prefixes — D3, R4, S201… |
| Set-aside | Total/partial small business, 8(a), HUBZone, SDVOSB, WOSB, EDWOSB, VOSB, Indian enterprise, local area, or "no set-aside" |
| Location | State/territory and country; uses place of performance, falling back to the contracting office (only about 25% of notices list a place of performance) |
| Agency | Text match on department, sub-tier and office ("veterans affairs", "army", "NASA") |
| Dates | Posted date range or "last N days"; response-deadline range or "due within N days" |
| Notice type | Solicitation, combined synopsis/solicitation, sources sought, presolicitation, award notice, special notice… |
| Active only | Skips notices whose deadline or archive date has passed (on by default) |
| Only new since last run | Remembers what each saved search already returned; optional silent baseline on the first run so you only pay for genuinely new notices |
Results are sorted newest first by default (or soonest deadline, oldest, or file order) and capped by Max results.
Privacy by default: contracting-officer names, emails and phone numbers are not included unless you switch on Include contracting officer contacts. Use them only to respond to the solicitation.
Output: SAM.gov data fields
One row per notice. Every row has the same flat set of fields (missing values are null), so CSV and Excel exports line up cleanly:
{"noticeId": "83fb6bf76e624533b8a98b91f8c0cbc5","title": "Program Executive Office (PEO) Defense Healthcare Management Systems (DHMS) Deployment Solutions","solicitationNumber": "Deployment_Solutions_2026","noticeType": "Award Notice","department": "DEPT OF DEFENSE","subTier": "DEFENSE HEALTH AGENCY (DHA)","office": "DEFENSE HEALTH AGENCY","postedDate": "2026-10-19T19:02:16","responseDeadline": null,"daysUntilDeadline": null,"archiveDate": "2026-10-31","active": true,"setAsideCode": "NONE","setAside": "No Set aside used","naicsCode": "541512","pscCode": "DA01","placeOfPerformanceCity": "Arlington","placeOfPerformanceState": "VA","placeOfPerformanceCountry": "USA","officeCity": "ROSSLYN","officeState": "VA","awardNumber": "HT003826DE013","awardDate": "2026-08-06","awardAmount": 300000000,"awardee": "VISTA GLOBAL SOLUTIONS, LLC San Antonio TX 78248 USA","url": "https://sam.gov/workspace/contract/opp/83fb6bf76e624533b8a98b91f8c0cbc5/view","description": "A Square Group LLC*, Frederick, Maryland (HT003826DE002); Accenture Federal Services LLC, …"}
Text is cleaned of the encoding errors (’, �) found in the raw SAM.gov file. A run summary (counts, effective filters, data timestamp) is saved to the key-value store as OUTPUT.
How much does it cost to scrape SAM.gov?
Pay per event. You only pay for opportunities actually returned, and platform compute is included:
| Event | Price |
|---|---|
| Run start | US$0.01 |
| Opportunity returned | US$0.002 (US$2 per 1,000) |
| Example | Cost |
|---|---|
| "Try for free" prefilled search (25 notices) | US$0.06 |
| 1,000 opportunities in one run | US$2.01 |
| Daily alert returning 25 new notices | US$0.06/day, about US$1.80/month |
| Daily alert with nothing new that day | US$0.01 |
| Baseline run (Record a baseline, return nothing) | US$0.01 |
Set Max cost per run in the run options to cap spending; the Actor stops cleanly at your limit.
Tips for better SAM.gov searches
- Broad NAICS + keywords catches more than NAICS alone; many notices carry a loosely related NAICS code.
- Set-aside "NONE" returns full-and-open competitions and notices with no set-aside given.
- Use Record a baseline on the first run of an alert if you don't want (or pay for) the current backlog.
- Leave Sort by on File order with a small Max results for the fastest possible run.
Data source and limitations
Data comes from the public SAM.gov Contract Opportunities data extract published by the U.S. General Services Administration on SAM.gov (public-domain U.S. government data). The extract is refreshed once a day, so a notice posted after the latest extract appears on the next day's run. Descriptions in the extract are capped at about 32,000 characters and attachments are not included; follow the url field to the notice on SAM.gov for documents and amendments. This Actor is not affiliated with or endorsed by GSA or SAM.gov.
FAQ
Do I need a SAM.gov account or SAM.gov API key?
No. The Actor uses SAM.gov's public bulk extract, which needs no account or key.
How is this different from the SAM.gov API?
The SAM.gov Get Opportunities API needs an API key, limits requests per day depending on your SAM.gov role, requires a posted-date range of at most one year, and returns at most 1,000 records per page. This Actor filters the full daily extract instead, so there is no key and no daily request quota on your side. The trade-off is freshness: data is as of the latest daily extract.
Is SAM.gov free? Why pay for this?
Yes, SAM.gov search and its saved-search email notifications are free. This Actor is for when you want the results as data: whole-word keyword matching, NAICS/PSC prefixes, several states and set-asides at once, deduplicated "only new" alerts, and export to CSV/Excel/Sheets/CRM or an API.
Can I get SAM.gov email or Slack alerts?
Yes. Schedule the Actor daily with Only new since last run on, then add Apify's email or Slack integration to the Actor or task so each run's new notices are sent to you.
Can I get historical or archived notices?
The Actor covers notices currently in the extract (active notices plus recent awards). Turn off Active only to include notices whose deadline has passed but which are still listed. Long-term archives are not included.
Is scraping SAM.gov legal?
This Actor downloads an official bulk file that SAM.gov publishes for public reuse; it does not crawl the SAM.gov website.
Can I use it from Python, JavaScript or an AI agent?
Yes. Use the Apify API or client libraries (see the API tab), or the Apify MCP server so AI assistants can call it as a tool.
More from Tenderly Data
- UK Companies House Scraper: lists of newly incorporated UK companies by SIC code and location, with optional directors and beneficial owners.
Questions or feature requests? Open an issue on the Issues tab.