SAM.gov Contract Opportunities Scraper avatar

SAM.gov Contract Opportunities Scraper

Pricing

from $2.50 / 1,000 opportunity scrapeds

Go to Apify Store
SAM.gov Contract Opportunities Scraper

SAM.gov Contract Opportunities Scraper

Scrape U.S. federal contract opportunities from SAM.gov by keyword, NAICS, notice type, set-aside and state: deadlines, agency, NAICS, PSC, place of performance and awards. Every notice matches your filters. No personal contact data. Incremental mode. $2.50 per 1,000 notices.

Pricing

from $2.50 / 1,000 opportunity scrapeds

Rating

0.0

(0)

Developer

Juan Felipe Henao López

Juan Felipe Henao López

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape U.S. federal contract opportunities from SAM.gov — solicitations, sources sought, presolicitations and award notices — by keyword, NAICS, notice type, small-business set-aside and state. Each notice comes with the agency and office, deadlines, NAICS and PSC codes, place of performance, a clean description snippet and, for award notices, the award amount and awardee.

Every notice you get matches your search. SAM.gov's own search is full-text and broad (searching "software" also returns valve and hardware orders that only mention software in standard clauses). We check every notice against SAM.gov's own data and drop — and never charge — the ones that don't match. No API key needed, and no personal contact data.


What you can do

  1. A daily feed of new opportunities in your niche. Run it every morning with incrementalMode: true (for example NAICS 541511 + set-aside SBA) and send the new notices to Slack, email, a Google Sheet or your CRM with n8n, Make or the Apify API. Already-delivered notices are not returned and not charged.
  2. Pipeline research. Pull every active solicitation for your NAICS codes and states, with deadlines and set-asides, and sort by response date.
  3. Competitive intelligence on awards. Use noticeTypes: ["a"] with postedWithinDays: 30 to get last month's award notices with the amount, the award number and the awardee (name, UEI, city and state).

Input

FieldTypeDefaultDescription
keywordstext— (example: software)Words to search. Separate alternatives with commas: janitorial, custodial, housekeeping. A notice is delivered when its title or description contains all the words of at least one alternative. Leave empty to search only by the filters below.
keywordsInselectAutoAuto: title only, or title or description when you give NAICS codes. Title only: every notice has your keywords in its title. Title or description: broader coverage, best combined with NAICS codes; may include notices that only mention your keyword (with "software", at least 2.8× more notices in our test, some of them hardware orders that merely mention software). Title matches always come first.
postedWithinDaysnumber—Only notices posted in the last N days, e.g. 30 for last month's award notices.
noticeTypeslistSolicitation, Combined Synopsis/Solicitation, Presolicitation, Sources SoughtAlso Special Notice, Award Notice, Justification (J&A), Intent to Bundle, Sale of Surplus Property.
naicsCodeslist—2 to 6 digits; a notice matches when its NAICS starts with one of them (5415 covers 541511, 541512…).
setAsideselect—Total Small Business (SBA), 8(a), HUBZone, SDVOSB, WOSB, EDWOSB and more.
placeOfPerformanceStatetext—Two-letter state code, e.g. TX.
activeOnlyyes/noyesOnly notices still open.
includeDetailsyes/noyesReads each notice's detail record (NAICS, PSC, set-aside, place of performance, award, full description). Always on when you filter by NAICS, set-aside or state, because those filters are verified on the detail.
maxItemsnumber50Maximum notices to return and charge (up to 5,000).
incrementalModeyes/nonoOnly notices not delivered by a previous run of the same search.

Auto: without NAICS codes your keywords must be in the title; with NAICS codes they may also be in the description (in our tests, description-only matches were off-topic 3 times out of 4 without NAICS codes and about 1 in 10 with them). The status message says which mode was used.

Write both spellings. SAM.gov's search does not join or split words: cybersecurity does not find "Cyber Security" titles. Write the variants as alternatives: cybersecurity, cyber security.

Output

One record per notice. Example (a solicitation; values abbreviated):

{
"noticeId": "4f1c…",
"title": "Custodial Services at TX190, Denton, TX",
"solicitationNumber": "36C25726Q0045",
"noticeTypeCode": "o",
"noticeType": "Solicitation",
"isActive": true,
"postedDate": "2026-10-14T15:02:11+00:00",
"responseDeadline": "2026-10-28T16:00:00+00:00",
"responseTimeZone": "America/Chicago",
"department": "VETERANS AFFAIRS, DEPARTMENT OF",
"agency": "VETERANS AFFAIRS, DEPARTMENT OF",
"office": "257-NETWORK CONTRACT OFFICE 17 (36C257)",
"naicsCodes": ["561720"],
"pscCode": "S201",
"setAsideCode": "SDVOSBC",
"placeOfPerformance": { "city": "Denton", "state": "TX", "zip": "76201", "country": "USA" },
"award": null,
"descriptionSnippet": "The Department of Veterans Affairs intends to award a contract for custodial services…",
"keywordMatchedIn": "TITLE",
"matchedKeywords": "custodial",
"url": "https://sam.gov/opp/4f1c…/view"
}

How the fields are filled

  • keywordMatchedIn / matchedKeywords: where SAM.gov's data contains your keywords (TITLE or DESCRIPTION) and which alternative matched. Split and joined spellings match each other ("Cyber Security" matches cybersecurity). SAM.gov also expands synonyms (searching "janitorial" returns "Custodial Services"); list the variants you accept as comma-separated alternatives.
  • Order: title matches first, then description matches, each in SAM.gov's relevance order. In incremental mode, most recently modified first, so new notices come first.
  • award (award notices): date, amount in USD, award number, awardee name, UEI, city and state. SAM.gov stores the amount as typed text; when it holds several amounts ("$48,138.23 (Base Year) / $289,121.11 (Options)"), amountUSD is null and amountText has the original text. The awardee's street address is never delivered: when SAM.gov typed it into the name, we keep only the name, or null when the name cannot be separated safely (the UEI still identifies the company).
  • Contacts and addresses: contracting officer contacts are not included; each notice links to its SAM.gov page. The description snippet is scrubbed of emails, phone numbers and street addresses.
  • Data as published by SAM.gov: the place of performance is missing on about half of the notices; set-aside is null when there is none. In our sample of 581 award notices, the amount was present on 99%, the awardee name on 100% and the UEI on 98%; the awardee's city and state on 56%, because SAM.gov publishes no location for the rest.

Pricing

$2.50 per 1,000 notices ($0.0025 per notice), plus Apify's standard small fee per run start. You only pay for notices delivered to your dataset: notices that don't match your search and, in incremental mode, notices you already received are not charged.

ExampleCost
100 notices≈ $0.25
Daily alert with ~40 new notices≈ $0.10 per day

Limitations

  • The public search returns at most 10,000 notices per search; narrow it with NAICS, notice type or state for very broad terms.
  • When a run delivers fewer notices than maxItems, its status message says why: "no more results for this search", or "relevant results exhausted for this search" when the following pages stopped containing matches (title only: 10 pages of 100 in a row without a title match; title or description: 2 pages in a row under 20%). You are not charged for unrelated results. When keywords are matched in titles only, it also says how many notices had them in the title and suggests adding NAICS codes.
  • Attachments (bid documents) are not downloaded; each notice links to its SAM.gov page.

Use it from code, n8n or Make

curl -X POST "https://api.apify.com/v2/acts/radar-scraper~sam-gov-opportunities/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keywords": "cybersecurity, cyber security", "setAside": "SBA", "maxItems": 100, "incrementalMode": true}'

Feedback

If this Actor saves you time, a short review helps other buyers find it. Something not working? Open an issue on the Actor page and I answer within 48 hours.

This Actor reads publicly available information on SAM.gov, the U.S. government's official contracting site, as any anonymous visitor can. It does not log in or access private areas, and it does not deliver personal contact data of government employees. You are responsible for how you use the data and for complying with applicable laws.