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

3 hours ago

Last modified

Share

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

Pay only for results delivered. Browse all Actors.

💰 From $3.60 / 1,000 results.

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.

How to get a free SAM.gov 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).

Find small-business software solicitations in your NAICS code

The core GovCon recipe: one NAICS code, one set-aside, a posted-date window. Every field below is passed straight through to the official SAM.gov Get Opportunities API v2.

{
"apiKey": "YOUR_SAM_GOV_KEY",
"naicsCode": "541511",
"setAsideType": "SBA",
"noticeType": "o",
"maxResults": 200
}

Track everything one federal agency posted this month

organizationName filters by department or sub-tier. Leave the dates empty and the actor uses the last 30 days automatically (SAM.gov requires a window and caps it at about a year).

{
"apiKey": "YOUR_SAM_GOV_KEY",
"organizationName": "DEPARTMENT OF DEFENSE",
"postedFrom": "07/01/2026",
"postedTo": "07/31/2026",
"maxResults": 500
}

Watch sources-sought notices before the solicitation drops

Notice type r is Sources Sought, the pre-RFP signal capture teams actually want. Run it daily on a schedule against a keyword and you see demand before it becomes a formal solicitation.

{
"apiKey": "YOUR_SAM_GOV_KEY",
"keyword": "cybersecurity",
"noticeType": "r",
"maxResults": 100
}

All SAM.gov scraper input options

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.

What data you get from each federal opportunity

One row per opportunity, 26 fields, notice id and type, solicitation number, the full agency path plus department/sub-tier/office, NAICS and classification codes, set-aside code and description, posted date, response deadline, archive date, active flag, office city/state, place-of-performance city/state/country, and both the description and UI links. 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"
}

What people use SAM.gov contract data for

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?"

How to start pulling SAM.gov opportunities

  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.

What does it cost to pull SAM.gov opportunities

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).

Monitor new federal solicitations daily

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.

SAM.gov scraper 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 SAM.gov data 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.

Last verified: 2026-08