SAM.gov Federal Contract Opportunities Scraper
Pricing
from $3.60 / 1,000 opportunity scrapeds
SAM.gov Federal Contract Opportunities Scraper
Scrape US federal contract opportunities from SAM.gov as clean JSON. Filter by keyword, NAICS, notice type, agency, set-aside type and posted-date window. No login, no browser — pure HTTP against the official Get Opportunities API v2. Works in Claude, ChatGPT & any MCP agent.
Pricing
from $3.60 / 1,000 opportunity scrapeds
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
SAM.gov Federal Contract Opportunities Scraper — Solicitations, Awards & Set-Asides
Pull US federal contract opportunities from SAM.gov as clean, structured JSON — solicitations, presolicitations, sources-sought, award notices and more. Runs on the official SAM.gov Get Opportunities API v2 over plain HTTP. No browser, no proxy, no login.
✅ Official SAM.gov API | ✅ No proxy needed | ✅ Filter by NAICS, set-aside & agency | ✅ MCP-ready for AI agents
Great for GovCon capture teams, bid/proposal shops, market intelligence, and RAG/agent pipelines that need a fresh, filterable feed of federal opportunities.
Reliability posture: empty runs, failed fetches and auth errors are never charged. You only pay for an opportunity actually delivered.
Bring your own free API key
SAM.gov requires a personal API key (free). This actor takes it as the apiKey input — we never hardcode or store one.
- Sign in at sam.gov and open Account Details → API Key (or sign up at api.data.gov/signup).
- Copy the key and paste it into the
apiKeyfield.
A free key allows 1,000 requests/hour — far more than a typical run needs (each request returns up to 1,000 opportunities).
Input
| Field | Type | Description |
|---|---|---|
apiKey (required) | string | Your free SAM.gov / api.data.gov key. |
keyword | string | Full-text search on the opportunity title (e.g. software). |
naicsCode | string | NAICS industry code, up to 6 digits (e.g. 541511). |
noticeType | string | Procurement type code: o Solicitation, p Presolicitation, r Sources Sought, a Award Notice, k Combined Synopsis, s Special Notice, g Sale of Surplus, u Justification, i Intent to Bundle. |
organizationName | string | Department / sub-tier name (e.g. DEPARTMENT OF DEFENSE). |
setAsideType | string | Set-aside code (e.g. SBA, 8A, WOSB, HZC, SDVOSBC). |
postedFrom | string | Earliest posted date, MM/DD/YYYY or YYYY-MM-DD. Defaults to 30 days ago. |
postedTo | string | Latest posted date. Defaults to today. |
maxResults | integer | Max opportunities to return (default 100). |
Date range: SAM.gov requires a posted-date window and caps it at ~1 year. If you leave the dates empty the actor uses the last 30 days; a window wider than a year is automatically clamped.
Example input
{"apiKey": "YOUR_SAM_GOV_KEY","keyword": "software","naicsCode": "541511","setAsideType": "SBA","postedFrom": "07/01/2026","postedTo": "07/31/2026","maxResults": 100}
Output
One row per opportunity. Nulls are stripped, so absent fields are simply omitted.
{"notice_id": "a1b2c3d4e5f6...","title": "Enterprise Software Licensing and Support","solicitation_number": "W1234-26-R-0001","full_parent_path_name": "DEPT OF DEFENSE.DEPT OF THE ARMY.ARMY CONTRACTING COMMAND","notice_type": "Solicitation","naics_code": "541511","set_aside": "SBA","set_aside_description": "Total Small Business Set-Aside (FAR 19.5)","posted_date": "2026-07-15 10:04:00-04:00","response_deadline": "2026-08-14T17:00:00-04:00","office_state": "VA","pop_state": "VA","ui_link": "https://sam.gov/opp/a1b2c3d4e5f6/view","scraped_at": "2026-07-31T12:00:00.000Z"}
💼 Common use cases
GovCon capture and business development — build a daily feed of new solicitations in your NAICS codes and set-aside categories instead of manually searching SAM.gov.
Bid/proposal shop pipeline — filter by agency, notice type and response deadline to build a qualified opportunity pipeline your capture team can triage.
Small business set-aside monitoring — track SBA, 8(a), WOSB, HUBZone and SDVOSB set-aside opportunities as they post.
Market intelligence — analyze which agencies and NAICS codes are posting the most opportunities, and at what pace, over time.
AI research agents — give a GovCon copilot live SAM.gov data via MCP so it can answer "what new solicitations match our NAICS codes this week?"
🚀 Getting started
- Paste your free
apiKey. - Set
keyword,naicsCode,noticeType,organizationNameand/orsetAsideTypeto narrow the feed — or leave them blank for everything in the date window. - Set
postedFrom/postedTo(defaults to the last 30 days) andmaxResults, then click Start. - Download the dataset as JSON, CSV, or Excel, or pull it via API or MCP.
Pricing
Pay-per-result. You are charged once per opportunity actually delivered to the dataset. Empty runs, failed fetches and the non-billable summary row are never charged. Tiered by Apify plan (higher plans pay less per result).
Run on a schedule
Want a fresh pull every morning? In the Apify Console open this Actor → Schedules → Add schedule → pick a cadence (e.g. daily) → Save. It reruns with the same input automatically — a standing federal-opportunity feed with no code.
FAQ
Do I need an API key? Yes — a free one from SAM.gov or api.data.gov. See the key section above. The key stays yours.
How much does it cost? You pay per opportunity delivered (tiered — cheaper the more you run). Empty, failed and unauthorised runs cost nothing.
Is this official data? Yes — served straight from the official SAM.gov Get Opportunities API v2, the same source GSA's own portal uses.
Why do I need to set a date range? SAM.gov requires a posted-date window and caps it at ~1 year; the actor defaults to the last 30 days and auto-clamps anything wider.
Can I filter by small business set-aside type? Yes — use setAsideType (e.g. SBA, 8A, WOSB, HZC, SDVOSBC).
Use in Claude, ChatGPT & any MCP agent
https://mcp.apify.com/?tools=themineworks/sam-gov-contracts
Or call it programmatically:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/sam-gov-contracts').call({apiKey: 'YOUR_SAM_GOV_KEY',keyword: 'software',naicsCode: '541511',maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Notes
- Data source: official
https://api.sam.gov/opportunities/v2/search. Field names in the output mirror SAM.gov's own (noticeId,solicitationNumber,fullParentPathName,naicsCode,typeOfSetAside,uiLink, …), snake-cased. - This is an independent tool and is not affiliated with or endorsed by SAM.gov, GSA, or the US Government.