SAM.gov Scraper - Federal Contract Opportunities & Contacts
Pricing
from $2.50 / 1,000 opportunity scrapeds
SAM.gov Scraper - Federal Contract Opportunities & Contacts
Scrape SAM.gov federal contract opportunities: RFPs, solicitations, sources sought, awards. Filter by keyword, NAICS, PSC, set-aside, notice type, dates. Returns contracting officer names, emails, phones, full descriptions, and attachment download links. No API key needed.
Pricing
from $2.50 / 1,000 opportunity scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Extract U.S. federal contract opportunities from SAM.gov — RFPs, solicitations, sources sought, and award notices — into clean JSON with full descriptions, contracting officer contacts (name, email, phone), and direct attachment download links. No login / no cookies — no SAM.gov account and no API key required.
Why this SAM.gov scraper?
| Typical scrapers | This actor |
|---|---|
| Require a SAM.gov account and API key issuance | No account, no API key — works out of the box |
| Return truncated summaries | Full solicitation description text |
| Give you a listing row only | Combines search + detail page + attachments in one record |
| No contact data | Contracting officer name, email, and phone per opportunity |
| Link-only attachments | Lists every attachment with a direct download URL — and can download the files for you |
| One notice type at a time | Filter across all notice types, NAICS, PSC, set-asides, and date ranges |
Use cases
- Government BD & capture teams — find RFPs matching your NAICS codes before competitors do, with the contracting officer's email in the same row.
- Proposal teams — pull full solicitation text and attachment files (SOWs, specs, amendments) straight into your pipeline tools.
- Market intelligence & consultants — track award notices by agency and awardee (UEI) to see who's winning contracts in your market.
- Subcontractors — monitor award notices to find primes who just won work in your niche.
- Daily opportunity feeds — schedule a run with a relative
postedFromlike"2 days"to capture only freshly posted opportunities.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the SAM.gov Scraper, fill in the inputs you need, and click Start.
- Watch results stream into the dataset table as each record is parsed.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
The simplest input — the 100 most recently modified active software opportunities, with contacts and attachments:
{"keywords": "software","keywordMode": "ALL","status": "active","maxResults": 100,"fetchFullDetails": true,"includeAttachments": true}
A daily-feed input for new small-business IT set-asides:
{"naicsCodes": ["541511", "541512"],"setAsideCodes": ["SBA", "8A"],"noticeTypes": ["o", "k", "p"],"postedFrom": "2 days","sortBy": "-modifiedDate","maxResults": 500}
Or scrape specific opportunities directly by URL or notice ID (search filters are ignored when this is set):
{"noticeIds": ["https://sam.gov/opp/ecf37a7275fd4b0cb17b9e0cfd660654/view"]}
Core fields:
keywords— search text (e.g."janitorial services"); leave empty to match all and rely on filters.keywordModecontrols how words combine:ALL,ANY, orEXACT.noticeTypes— limit to notice types such aso(Solicitation),p(Presolicitation),k(Combined Synopsis/Solicitation),r(Sources Sought),s(Special Notice),a(Award Notice),u(J&A),g(Surplus Sale),i(Intent to Bundle).naicsCodes/pscCodes— filter by NAICS industry codes (e.g.541511) and Product Service Codes (e.g.D302).setAsideCodes— limit to small-business set-aside categories such asSBA,8A,HZC,SDVOSBC,WOSB,EDWOSB, and more.status—active(default),inactive(archived), orall.postedFrom/postedTo,modifiedFrom/modifiedTo,responseDueFrom/responseDueTo— date windows accepting ISO dates (2026-06-01) or relative values ("7 days","2 weeks","3 months").maxResults— opportunities per run (default 100, max 10,000 — SAM.gov caps any single query at 10,000 records).sortBy—-modifiedDate(default) or-relevance.fetchFullDetails— fetch each detail page for full description, contracting officer contacts, place of performance, and exact deadline (defaulttrue); disable for a faster, cheaper basic feed.includeAttachments— list attachments with download URLs (defaulttrue);downloadAttachmentsalso saves the files to the key-value store (defaultfalse), withmaxAttachmentSizeMbcapping file size (default 25 MB).noticeIds— scrape specific notice IDs /sam.govopportunity URLs directly.proxyConfiguration— proxy settings; Apify datacenter proxy (default) is recommended for reliability at scale.
Output
One dataset record per opportunity:
{"noticeId": "ecf37a7275fd4b0cb17b9e0cfd660654","parentNoticeId": null,"title": "6515--NEW Seattle Patient Lift Replacement","noticeType": "Combined Synopsis/Solicitation","noticeTypeCode": "k","solicitationNumber": "36C26026Q0576","status": "Published","isActive": true,"postedDate": "2026-06-09T23:08:15.561+00:00","responseDeadline": "2026-07-16T10:00:00-07:00","responseTimeZone": "America/Los_Angeles","archiveDate": "2026-07-21","archiveType": "autocustom","department": "VETERANS AFFAIRS, DEPARTMENT OF","subTier": "VETERANS AFFAIRS, DEPARTMENT OF","office": "NETWORK CONTRACT OFFICE 20 (36C260)","naicsCodes": ["339113"],"pscCode": "6515","setAside": "Total Small Business Set-Aside","setAsideCode": "SBA","placeOfPerformance": {"streetAddress": "Department of Veterans Affairs Seattle VA Medical Center, 1660 S Columbian Way","city": "Seattle","state": "WA","zip": "98499","country": "UNITED STATES"},"descriptionText": "The Seattle VA Medical Center requires replacement of facility-wide patient lifts...","pointsOfContact": [{"type": "primary","fullName": "Denise Patches","title": "Contracting Officer","email": "Denise.Patches@va.gov","phone": "253-888-4922"}],"attachments": [{"name": "SOW - Facility Wide Patient Lift Replacement_V1.docx","type": "file","url": "https://sam.gov/api/prod/opps/v3/opportunities/resources/files/b74dff59617b459fbfc6462042b34523/download","mimeType": ".docx","sizeBytes": 44515,"accessLevel": "public","resourceId": "b74dff59617b459fbfc6462042b34523","exportControlled": false}],"url": "https://sam.gov/opp/ecf37a7275fd4b0cb17b9e0cfd660654/view"}
Notes:
- Detail fields like
descriptionText,pointsOfContact,placeOfPerformance, and exact deadlines are populated only whenfetchFullDetailsis enabled;attachmentsis populated only whenincludeAttachmentsis enabled. Listing attachment URLs is free — download URLs are always included in the dataset, and you only download the files whendownloadAttachmentsistrue. - Award notices additionally include an
awardobject with the awardee name and UEI (SAM unique entity ID). - This data is published by the U.S. federal government for public dissemination; the actor only accesses publicly available opportunity data.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it on a cron to keep your data fresh.
- Webhooks — trigger downstream actions the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/sam-gov-scraper').call({naicsCodes: ['541511', '541512'],setAsideCodes: ['SBA', '8A'],noticeTypes: ['o', 'k', 'p'],postedFrom: '2 days',maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} records`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new records straight into your CRM or sheet.
- Slack — get notified when a run finds something new.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find active small-business IT solicitations posted in the last week and list each contracting officer's email" and let it run this scraper for you.
More scrapers from scrapesage
Need data from somewhere else? Try these:
- Bark Listing Scraper — Bark.com service-provider directory listings.
- Bark Scraper — Bark.com provider profiles & leads.
- Multi-ATS Job Scraper — jobs from Greenhouse, Lever, Ashby, Workday & more.
- LinkedIn Jobs Scraper — filter-based LinkedIn job postings, no login.
- Google Ads Transparency Scraper — see who's advertising what on Google.
- Facebook Ad Library Scraper — Meta/Instagram competitor ad intelligence.
- Eventbrite Scraper — events plus organizer leads with contacts.
Tips
- Build a daily opportunity feed by setting
postedFromto a relative value like"2 days", sorting by-modifiedDate, and running the actor on an Apify Schedule — then pipe new records to Slack, Make, or Google Sheets. - Beat the 10,000-record cap by segmenting large pulls with
postedFrom/postedTodate windows; any single SAM.gov query returns at most 10,000 records. - Run faster and cheaper by disabling
fetchFullDetailsandincludeAttachmentswhen you only need basic listing fields — each adds one extra request per opportunity. - Use
responseDueFromto exclude nearly-closed solicitations and focus on opportunities you can still respond to. - Keep the default Apify datacenter proxy — SAM.gov is a lenient public API, so datacenter proxy is recommended for reliability at scale.
FAQ
Do I need a SAM.gov account or API key? No. This actor accesses public opportunity data without any login, account, or API key — and returns richer combined records (search + detail + attachments in one row) than the official API.
Is this legal? SAM.gov contract opportunity data is published by the U.S. federal government for public dissemination and is in the public domain. This actor only accesses publicly available data — no login, no bypassing of access controls.
How fresh is the data? It is scraped live from SAM.gov at run time.
Can I download the attachment files, not just the links? Yes. Download URLs are always included in each record; set downloadAttachments to true to also save the files into the run's key-value store, capped by maxAttachmentSizeMb.
What if my filters match no opportunities? A run with no matches finishes successfully with an empty dataset.
Can I export the results? Yes — export as JSON, CSV, Excel, XML, or RSS, or pull them via the Apify API and official SDKs.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.