SAM.gov Contracts Scraper — 26 Fields, Free API Key avatar

SAM.gov Contracts Scraper — 26 Fields, Free API Key

Pricing

from $3.60 / 1,000 opportunity scrapeds

Go to Apify Store
SAM.gov Contracts Scraper — 26 Fields, Free API Key

SAM.gov Contracts Scraper — 26 Fields, Free API Key

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

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.

  1. Sign in at sam.gov and open Account Details → API Key (or sign up at api.data.gov/signup).
  2. Copy the key and paste it into the apiKey field.

A free key allows 1,000 requests/hour — far more than a typical run needs (each request returns up to 1,000 opportunities).

Input

FieldTypeDescription
apiKey (required)stringYour free SAM.gov / api.data.gov key.
keywordstringFull-text search on the opportunity title (e.g. software).
naicsCodestringNAICS industry code, up to 6 digits (e.g. 541511).
noticeTypestringProcurement 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.
organizationNamestringDepartment / sub-tier name (e.g. DEPARTMENT OF DEFENSE).
setAsideTypestringSet-aside code (e.g. SBA, 8A, WOSB, HZC, SDVOSBC).
postedFromstringEarliest posted date, MM/DD/YYYY or YYYY-MM-DD. Defaults to 30 days ago.
postedTostringLatest posted date. Defaults to today.
maxResultsintegerMax 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

  1. Paste your free apiKey.
  2. Set keyword, naicsCode, noticeType, organizationName and/or setAsideType to narrow the feed — or leave them blank for everything in the date window.
  3. Set postedFrom/postedTo (defaults to the last 30 days) and maxResults, then click Start.
  4. 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 → SchedulesAdd 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.