
SAM.gov Scraper
hipersoft/samgov-opportunities-scraper
Scrape US federal contract opportunities from SAM.gov: solicitations, RFPs, sources sought, awards. Agency, office, NAICS, PSC, set-aside, deadlines, place of performance, contracting contacts and full description. Filter by keyword, NAICS, set-aside, state.
Total users
2Monthly users
1Total runs
30Per opportunity
$0.003Last rebuilt
Oct 26, 2026Overview
SAM.gov Scraper extracts US federal contract opportunities from SAM.gov (System for Award Management), the official source for solicitations, RFPs, RFQs, sources sought notices, presolicitations and award notices. Each opportunity includes the title, solicitation number, notice type, department, sub-tier agency and contracting office, NAICS codes, product/service (PSC) code, set-aside, posted date, response deadline, place of performance, contracting officer contacts (name, email, phone), award details and the full description. Filter by keyword, NAICS, set-aside, state and date, then export to CSV, Excel or JSON.
What does SAM.gov Scraper do?
- 🇺🇸 Every federal agency: DoD, VA, HHS, DHS, GSA, NASA, State and hundreds more.
- 🔎 Keyword search across titles and descriptions.
- 🏷️ NAICS and set-aside filters: small business, 8(a), HUBZone, SDVOSB, WOSB, EDWOSB, VOSB…
- 📍 Place-of-performance state filter.
- 📅 Recency filter: only notices posted or updated in the last N days.
- 👤 Contracting contacts: primary and secondary points of contact with email and phone.
- 🏆 Awards: awardee name, UEI, amount and date for award notices.
What data can you scrape from SAM.gov?
| Field | Description |
|---|---|
title, solicitationNumber, noticeType |
Opportunity identification |
department, subTier, office, officeAddress |
Contracting organization |
postedDate, responseDeadline, responseTimeZone, modifiedDate, archiveDate |
Dates |
naicsCodes, classificationCode |
NAICS and PSC codes |
setAside |
Set-aside type |
placeOfPerformance |
Where the work is done |
contacts |
Points of contact (name, title, email, phone) |
awardee, awardeeUei, awardAmount, awardDate |
Award details |
description |
Full notice description (plain text) |
url |
SAM.gov opportunity page |
Use cases
- Government contractors (GovCon): daily feeds of new solicitations in your NAICS codes and set-asides.
- Bid and proposal teams: track response deadlines and contracting officers.
- Business development: find agencies buying what you sell and the offices that buy it.
- Competitive intelligence: monitor award notices to see who wins contracts and for how much.
- GovCon SaaS and newsletters: power opportunity alerts and market reports.
How to scrape SAM.gov opportunities
- Click Try for free to open SAM.gov Scraper in Apify Console.
- Enter keywords and choose notice types, NAICS codes, set-aside and state.
- Optionally set Updated within (days) for fresh notices only.
- Click Start and download the opportunities as CSV, Excel or JSON.
Input
Example input
{
"keywords": "software",
"noticeTypes": ["solicitation", "combined"],
"naicsCodes": ["541512", "541511"],
"setAside": "SBA",
"placeOfPerformanceState": "VA",
"postedWithinDays": 7,
"activeOnly": true,
"includeDetails": true,
"maxItems": 500
}
| Field | Description |
|---|---|
| Keywords | Free-text search. |
| Notice types | Solicitation, combined synopsis/solicitation, presolicitation, sources sought, special notice, award and more. |
| NAICS codes | One or more NAICS codes. |
| Set-aside | Small business, 8(a), HUBZone, SDVOSB, WOSB, EDWOSB, VOSB, ISBEE. |
| Place of performance state | Two-letter state code. |
| Updated within (days) | Only recent notices. |
| Active opportunities only | Exclude archived notices. |
| Include details | NAICS, PSC, set-aside, place of performance, contacts and full description. |
| Max opportunities | Stop after this many (up to 10,000 per search). |
Output
Opportunity example
{
"noticeId": "5dc0a6234c964ec09542817343ebf71f",
"url": "https://sam.gov/opp/5dc0a6234c964ec09542817343ebf71f/view",
"title": "NISC Enterprise Support Tasking (NEST)",
"solicitationNumber": "693KA9-26-R-00003",
"noticeType": "Solicitation",
"department": "TRANSPORTATION, DEPARTMENT OF",
"subTier": "FEDERAL AVIATION ADMINISTRATION",
"office": "693KA9 CONTRACTING FOR SERVICES",
"postedDate": "2026-10-01T18:46:45+00:00",
"responseDeadline": "2026-10-15T10:00:00-04:00",
"naicsCodes": ["541511"],
"classificationCode": "DA01",
"setAside": "WOSB",
"placeOfPerformance": "Washington, District of Columbia, 20591, UNITED STATES",
"contacts": [{ "type": "primary", "name": "FAA AAQ 410 Contracting Office", "email": "9-AWA-AAQ410-Contracting-Team@faa.gov" }],
"description": "***THIS OPPORTUNITY IS SET-ASIDE FOR WOMEN-OWNED SMALL BUSINESS (WOSB) CONCERNS*** …"
}
How much does it cost?
SAM.gov Scraper uses pay-per-opportunity pricing: a small fixed price per opportunity, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price.
More government and company data
- USAspending Scraper: federal awards and spending.
- North Data Scraper: European company register data.
FAQ
Do I need a SAM.gov account or key? No. Just set your filters and click Start.
How do I get only new opportunities every day? Set Updated within (days) to 1 and schedule the scraper daily.
Can I get award notices? Yes. Choose the Award Notice type to see awardees, UEIs, amounts and dates.
How many results can one search return? Up to 10,000 opportunities. Use NAICS, set-aside, state or date filters to narrow large searches.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate SAM.gov Scraper with other apps? SAM.gov Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal? SAM.gov opportunity data is public US government information.
Notes
Original clean-room implementation. Returns only public data. Not affiliated with SAM.gov or the US General Services Administration.
Input
| Field | Type | Description |
|---|---|---|
keywordsKeywords | string | Search words, e.g. software development, cybersecurity, janitorial, construction. |
noticeTypesNotice types | array | Types of notices. Leave empty for all. |
naicsCodesNAICS codes | array | Only opportunities with these NAICS codes, e.g. 541512 (computer systems design), 541511, 236220. |
setAsideSet-aside | string · , SBA, SBP, 8A, 8AN, HZC… | Only opportunities with this set-aside. |
placeOfPerformanceStatePlace of performance state | string | Two-letter US state code, e.g. VA, CA, TX. |
postedWithinDaysUpdated within (days) | integer | Only opportunities posted or updated in the last N days. 0 means any time. Default: 0 |
activeOnlyActive opportunities only | boolean | Exclude archived and inactive notices. Default: true |
includeDetailsInclude details | boolean | Add NAICS, PSC code, set-aside, place of performance, contracting contacts, archive date, award amount and the full description. Default: true |
maxItemsMax opportunities | integer | Stop after this many opportunities. 0 means no limit (up to 10,000 per search). Default: 200 |
proxyConfigurationProxy configuration | object | Not required for normal use. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~samgov-opportunities-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": "software",
"noticeTypes": [
"solicitation",
"combined"
],
"maxItems": 50
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/samgov-opportunities-scraper").call(run_input={
"keywords": "software",
"noticeTypes": [
"solicitation",
"combined"
],
"maxItems": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/samgov-opportunities-scraper').call({
"keywords": "software",
"noticeTypes": [
"solicitation",
"combined"
],
"maxItems": 50
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Opportunity One federal contract opportunity in the dataset. | $0.003 | $0.0015 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
North Data Scraper
Look up European companies on North Data: legal name, former names, register number, address, founding date, LEI, business purpose, managing directors and officers, and recent register publications. Germany, UK, France, Austria and 20+ countries. Bulk lookups.
2,467 runs · 5 users · $0.004 / companyWebsite Content Crawler
Extract clean, readable content from any list of websites: page title, meta description, headings, main body text, word count and link/image counts. Optional same-domain crawl. Bulk-ready. Great for LLM/RAG ingestion, content audits and research.
206 runs · 20 users · $0.0024 / page scrapedSpyFu Domain Scraper
Bulk SEO and PPC reports for any domain from SpyFu: organic keywords, monthly SEO clicks and value, Google Ads budget, paid keywords, top keywords, competitors, top countries and monthly history. Competitor research for agencies. Export CSV/JSON.
185 runs · 7 users · $0.008 / domain reportTrustpilot Reviews Scraper
Scrape Trustpilot reviews and company ratings by company domain or Trustpilot URL: star rating, title, text, reviewer name & country, verification, date, company reply, plus company TrustScore and total reviews.
146 runs · 4 users · $0.0006 / review scrapedACRA Singapore Company Registry Scraper
Search and export Singapore's full ACRA corporate registry: UEN, entity name, status, incorporation date, address, SSIC industry codes, officers, former names and audit firms. Filter by name, status, entity type or industry. Public open data, no setup.
138 runs · 10 users · $0.01 / company scrapedWayback Machine Scraper
List every Internet Archive (Wayback Machine) snapshot of a URL or whole domain: timestamp, snapshot URL, status code, MIME type and content digest. Filter by date, status and dedupe. For SEO, OSINT and historical research. No setup.
135 runs · 15 users · $0.002 / snapshot scrapedSend the site and the fields. We build it and you get it first.