SAM.gov Scraper – Contract Opportunities & RFPs API
Pricing
Pay per event
SAM.gov Scraper – Contract Opportunities & RFPs API
SAM.gov scraper for US federal contract opportunities: RFPs, RFQs, solicitations, sources sought. No API key. Filter by keyword, NAICS, PSC, set-aside, agency, state, dates. One JSON record per notice with deadline, contacts, links. Daily new-bid monitor. $0.004/result.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Kempt Horizon Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
23 days ago
Last modified
Categories
Features
Share
SAM.gov Scraper – Contract Opportunities & RFPs API (No API Key)
SAM.gov scraper for federal contract opportunities: solicitations, RFPs, RFQs, sources sought, presolicitations and award notices, as clean JSON, CSV or Excel. No SAM.gov API key and no 10-requests-a-day limit. Filter by keyword, NAICS, PSC, set-aside, agency, state and dates. Turn on Only new since last run, schedule it daily, and get just the fresh bids. Optionally add attachment text (PDF/DOCX) and USAspending award history to spot the incumbent.
- $0.004 per opportunity (+ $0.001 per run). 1,000 RFPs ≈ $4. 20 results ≈ $0.08.
- Official public data: the daily Contract Opportunities extract published by SAM.gov Data Services (~70,000 notices).
- Works with AI agents through the Apify MCP server.
Use cases
| Who | What they do with it |
|---|---|
| GovCon BD and capture teams | Daily list of new RFPs matching their NAICS codes, straight to Slack or email |
| Small businesses | Find set-aside bids (8(a), HUBZone, SDVOSB, WOSB, Total Small Business) near them |
| Proposal consultants | Build a weekly pipeline report for each client |
| GovCon newsletters | Pull "new this week" opportunities by topic |
| Market researchers | Analyze what agencies buy, by PSC, NAICS and office |
| AI agents | Answer "what cybersecurity RFPs closing this month fit a small business in Virginia?" |
A low-cost alternative to subscription tools such as GovWin, HigherGov or GovSpend for teams that just need the opportunity feed.
What it does
- ✅ No API key needed. Non-federal SAM.gov keys are limited to 10 requests/day; this Actor doesn't use one.
- ✅ Filters: keyword (any/all), NAICS prefix, PSC prefix, set-aside (SBA, 8(a), HUBZone, SDVOSB, WOSB…), agency/office, place-of-performance state, notice type, posted and response-deadline date ranges, active only
- ✅ Monitoring mode: remembers what you've already seen and returns only new notices
- ✅ Enrichment (optional): public attachment list + extracted text from PDF/DOCX/TXT; USAspending.gov award history (prior awards on the same solicitation number + recent awards in the same NAICS at the same agency)
- ✅ Relevance score for your keywords, newest notices first
- ✅ Retries with exponential backoff; polite to government servers
Quick start
- Click Try for free. The prefilled input (IT keywords, NAICS 5415, last 7 days, 20 results) works as is.
- Enter your keywords and/or NAICS codes (e.g.
5415covers all computer-systems-design codes). - Optionally pick set-asides, states, agencies or a date range.
- Click Start, then download results as JSON, CSV, Excel or HTML, or use the API.
- For alerts: tick Only new since last run, name the monitor, and add a daily Schedule. Connect it to Slack, email, Google Sheets, Zapier, Make or a webhook.
Pricing
Pay per result, no subscription:
| Event | Price |
|---|---|
| Actor start (per GB of memory; default 1 GB) | $0.001 |
| Opportunity | $0.004 |
| Enriched opportunity (attachments and/or award history) | $0.01 |
| Example | Results | Cost |
|---|---|---|
| Quick lookup | 20 | ~$0.08 |
| Daily monitor, ~40 new IT notices/day | 40/day | ~$0.16/day |
| Full pull of 1,000 notices | 1,000 | ~$4 |
Notices removed by your filters are never charged. Set maxItems or a maximum cost per run and the Actor stops cleanly when it reaches it.
Input example
Minimal (the prefilled input, ~20 results in well under a minute):
{ "keywords": ["cybersecurity", "software", "cloud"], "naicsCodes": ["5415"], "postedLastDays": 7, "maxItems": 20 }
Daily small-business cyber monitor for the DC area:
{"keywords": ["cybersecurity", "zero trust"],"naicsCodes": ["5415"],"setAsideCodes": ["SBA", "SDVOSBC"],"states": ["VA", "MD", "DC"],"noticeTypes": ["Solicitation", "Combined Synopsis/Solicitation", "Sources Sought"],"postedLastDays": 7,"maxItems": 500,"onlyNew": true,"stateKey": "dmv-cyber-monitor","includeAttachments": false,"includeAwardHistory": false}
Common set-aside codes: SBA Total Small Business, SBP Partial SB, 8A 8(a), 8AN 8(a) sole source, HZC/HZS HUBZone, SDVOSBC/SDVOSBS Service-Disabled Veteran, WOSB/EDWOSB Women-Owned, VSA Veteran-owned, ISBEE Indian Small Business. Use NONE for full and open competition.
Output example
{"noticeId": "33e39090ff0b47b2b54d9a8e9cfaa6f2","title": "Area of Interest (AOI) for User Activity Monitoring (UAM) Centralization Prototype Other Transaction (OT)","solicitationNumber": "DISA-OTA-27-R-UAM","noticeType": "Solicitation","active": true,"postedDate": "2026-10-13T15:11:30.000Z","responseDeadline": "2026-10-22T22:00:00.000Z","department": "DEPT OF DEFENSE","subTier": "DEFENSE INFORMATION SYSTEMS AGENCY (DISA)","office": "IT CONTRACTING DIVISION - PL84","naicsCode": "541519","pscCode": "DA01","setAsideCode": null,"placeOfPerformance": { "city": "Fort George G Meade", "state": "MD", "country": "USA" },"award": null,"contacts": [{ "name": "DITCO OTA Mailbox", "email": "disa.scott.ditco.mbx.ps84-other-transaction-authority@mail.mil" }],"description": "Amendment 0001 - ... enhance cybersecurity across the Department ...","url": "https://sam.gov/opp/33e39090ff0b47b2b54d9a8e9cfaa6f2/view","relevanceScore": 6,"enriched": false}
Enriched records also include attachments[] (name, type, url, sizeBytes, text, textError) and awardHistory (matchedBySolicitation[], similarAwards[] with recipient business name, UEI, amount, dates and a USAspending link).
Data fields
noticeId, title, solicitationNumber, noticeType, baseNoticeType, active, postedDate, responseDeadline, archiveDate, department, subTier, office, CGAC/FPDS/AAC codes, naicsCode, pscCode, setAsideCode, setAside, placeOfPerformance, officeAddress, award (number, date, amount, awardee), contacts, description, url, relevanceScore, attachments, awardHistory, scrapedAt.
Data freshness and limits
- SAM.gov regenerates the public extract once a day (overnight, US Eastern). Notices posted after that appear in the next day's run. A schedule around 07:00 ET works well.
- Attachment text is capped at 50,000 characters per file and 15 MB per file. Restricted or export-controlled attachments are never downloaded.
- Posted dates are reported in UTC (ISO 8601).
Privacy and compliance
Uses only public US government data: the official SAM.gov public extract, SAM.gov's public attachment downloads, and the USAspending.gov public API. No entity-registration (SAM entity) data is collected. Contacts are the official contracting-office points of contact published on each notice. Attachments that look like attendee rosters or sign-in sheets are listed but not text-extracted, because they can contain personal data. Award history includes only business-level award fields (no recipient addresses). Don't use the output for unsolicited bulk marketing to the listed government contacts.
Use from AI agents via Apify MCP
Add the Actor as a tool in Claude Desktop, Cursor, VS Code or any MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=kempt_horizon_yzk/samgov-opportunities","headers": { "Authorization": "Bearer <APIFY_TOKEN>" }}}}
Omit headers to sign in with OAuth. Then ask, for example: "Find SAM.gov cybersecurity solicitations posted this week with a small-business set-aside, due in the next 30 days."
- Use when: you need current US federal contract opportunities / bids / RFPs / RFQs / sources-sought notices, filtered by topic, NAICS, PSC, set-aside, agency, state or dates.
- Don't use for: historical award spending (use USAspending Federal Awards), grants (use Grants.gov Scraper), or non-US / state and local bids.
- Tip: always pass
maxItems(e.g. 20) so a broad query stays cheap. Results come back as a dataset; read them withget-dataset-items. Pay-per-event only, so agentic payments work.
FAQ
Do I need a SAM.gov account or API key? No.
How fresh is the data? SAM.gov regenerates the public extract once a day (overnight, US Eastern). A schedule around 07:00 ET works well.
Can I get archived/inactive notices? Set Active notices only to false. The extract includes recent inactive notices.
How does "only new" work? Notice IDs are stored in a named key-value store (samgov-opportunities-state), separately for each monitor name (or filter set). Notices that didn't fit into maxItems aren't marked as seen, so they show up next run.
What's a NAICS prefix? 5415 matches 541511, 541512, 541513 and 541519. Use prefixes to cover a whole industry.
Can I find the incumbent? Turn on Award history (enriched) to get prior awards on the same solicitation number and recent similar awards from USAspending.gov.
What happens with an empty input? All filters are optional, so it returns the newest active notices up to maxItems (default 1,000). Set maxItems low for a cheap test.
Is this affiliated with GSA or SAM.gov? No. It's an independent tool built on public data.
Built and maintained by Kempt Horizon Data. Found a bug or need a field? Open an issue on the Actor's Issues tab and we usually reply within a day.
If this Actor is useful to you, a quick rating on its Store page helps other people find it. Thank you!