SAM.gov Scraper: Federal Contract Opportunities, No API Key avatar

SAM.gov Scraper: Federal Contract Opportunities, No API Key

Pricing

from $1.52 / 1,000 opportunities

Go to Apify Store
SAM.gov Scraper: Federal Contract Opportunities, No API Key

SAM.gov Scraper: Federal Contract Opportunities, No API Key

Every US federal contract opportunity from SAM.gov: solicitations, sources sought, presolicitations and awards. Filter by keyword, NAICS, PSC, set-aside, agency, state and deadline, or get only new notices since your last run. No SAM.gov API key or quota needed.

Pricing

from $1.52 / 1,000 opportunities

Rating

0.0

(0)

Developer

agentready

agentready

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Get every US federal contract opportunity posted on SAM.gov: solicitations, sources sought (RFIs), presolicitations, award notices and more, in one clean, flat format. Filter by keyword, NAICS, PSC, set-aside, agency, state and deadline, or turn on "only new notices" to get just what was posted since your last run.

No SAM.gov API key needed and no daily quota. A personal SAM.gov key allows only about 10 requests a day. This Actor instead reads SAM.gov's official public data extract, which covers every public opportunity, is refreshed nightly, and includes full descriptions.

What you can do with it

  • Find contracts to bid on: open small-business IT solicitations in Virginia and Maryland, every morning.
  • Track set-asides: all SDVOSB, 8(a), HUBZone or WOSB opportunities in your NAICS codes.
  • Research the market: award notices show who won, when and for how much.
  • Feed an AI agent, CRM or Slack channel with structured records that include deadlines and points of contact.

Quick start

Open small-business IT opportunities you can still respond to, posted in the last 7 days:

{
"naicsCodes": ["5415"],
"setAsides": ["SBA"],
"onlyOpenForBids": true
}

Daily feed of new opportunities

Schedule this every morning. The first run returns everything that matches; after that, only new notices appear, and you only pay for those.

{
"keywords": ["cybersecurity", "zero trust"],
"noticeTypes": ["solicitation", "sources_sought"],
"states": ["VA", "MD", "DC"],
"postedWithinDays": 3,
"onlyNewNotices": true,
"monitoringList": "dmv-cyber"
}

Step-by-step tutorial

Find federal contracts to bid on, without a SAM.gov API key: open small-business IT opportunities, then a daily feed of new notices (with a real example).

Input

FieldWhat it does
keywordsWhole-word match in the title and (by default) the full description.
naicsCodesIndustry codes; prefixes work (5415 matches 541511, 541512...).
pscCodesProduct/Service Codes; prefixes work (D3, R4, Y1...).
noticeTypessolicitation, presolicitation, sources_sought, award, special, justification, other. Default: the first three (ones you can respond to).
setAsidesSBA, 8A, HZC, SDVOSBC, WOSB, EDWOSB, NONE and more.
agenciesMatch department, sub-tier or office names, e.g. Army, Veterans Affairs.
statesPlace-of-performance state codes.
postedWithinDaysDefault 7. 0 reads the full history back to 2008.
onlyOpenForBidsOnly notices whose response deadline hasn't passed.
includeDescription / includeContactsTurn off for smaller output.
maxResultsDefault 500.
onlyNewNotices / monitoringListOutput only notices not returned in earlier runs under the same list name.

Output

One record per notice, always with the same fields. Missing values are null.

{
"id": "sam:de6f165e39cf4002a1405eef143fd63c",
"noticeId": "de6f165e39cf4002a1405eef143fd63c",
"title": "Y1DA--Drop Ceiling Demo, Disinfect and Replace at the Brooklyn VA Medical Center",
"solicitationNumber": "36C24226Q0853_0",
"noticeType": "Combined Synopsis/Solicitation",
"baseType": "Combined Synopsis/Solicitation",
"department": "VETERANS AFFAIRS, DEPARTMENT OF",
"subTier": "VETERANS AFFAIRS, DEPARTMENT OF",
"office": "242-NETWORK CONTRACT OFFICE 02 (36C242)",
"officeCode": "36C242",
"postedAt": "2026-09-28T08:02:39",
"responseDeadline": "2026-10-05T11:00:00-04:00",
"archiveDate": "2026-11-30",
"active": true,
"setAside": { "code": "SDVOSBC", "name": "Service-Disabled Veteran-Owned Small Business (SDVOSB) Set-Aside (FAR 19.14)" },
"naicsCode": "236220",
"pscCode": "Y1DA",
"placeOfPerformance": { "street": "...800 Poly Place", "city": "Brooklyn", "state": "NY", "zip": "11209", "country": "USA" },
"award": null,
"primaryContact": { "title": "Contracting Officer", "name": "...", "email": "...@va.gov", "phone": null },
"secondaryContact": null,
"officeAddress": { "city": "ALBANY", "state": "NY", "zip": "12208", "country": "USA" },
"url": "https://sam.gov/opp/de6f165e39cf4002a1405eef143fd63c/view",
"additionalInfoLink": null,
"description": "Amendment 0003... This is a combined synopsis/solicitation for commercial products...",
"scrapedAt": "2026-09-29T12:00:00Z"
}
  • award holds {number, date, amount, awardee} for award notices; amount is in US dollars.
  • responseDeadline keeps the time zone SAM.gov publishes; postedAt has no time zone because SAM.gov doesn't give one.
  • primaryContact and secondaryContact are the government points of contact published on the notice. Turn them off with includeContacts: false.

Each run also saves a RUN_SUMMARY record with how many notices were scanned, matched and output, plus the date window used.

Using it from an AI agent (MCP)

This Actor works as a tool in Claude, Cursor and other MCP clients through Apify's MCP server. For example: "Use SAM.gov Opportunities to find open SDVOSB construction solicitations in New York." Keep maxResults small and consider includeDescription: false for chat use.

Pricing

You pay per notice returned, with no monthly fee and no SAM.gov key. Set a maximum charge on any run and the Actor stops cleanly when it's reached.

Good to know

  • SAM.gov refreshes the extract once a night (about 03:30 UTC), so notices posted today appear the next morning. For a same-day feed, run the Actor after 04:00 UTC.
  • Attachments (PDFs) aren't included. Use each notice's url to open them on SAM.gov.
  • A few old notices mix text encodings; the Actor repairs the common cases.
  • If the input has a mistake, the run ends normally with 0 results, nothing charged, and a status message saying what to fix.

Data source

Data comes from SAM.gov's public Contract Opportunities data extract, published by the U.S. General Services Administration. US federal government data is public. This Actor is not affiliated with or endorsed by GSA or SAM.gov.

Frequently asked questions

Do I need a SAM.gov API key?

No. The Actor reads SAM.gov's official public data extract of contract opportunities, so there's no key and no daily request quota.

How up to date is the data?

SAM.gov refreshes the public extract daily, so new notices usually appear within a day of posting.

Can I filter by set-aside, NAICS or agency?

Yes: setAsides (e.g. SBA, 8A, HZC, SDVOSBC, WOSB), naicsCodes and pscCodes (prefixes work), agencies, states and notice types.

How do I get new opportunities every morning?

Turn on onlyNewNotices, give the search a monitoringList name and schedule the Actor daily. Each run returns only notices you haven't seen.

Can I search past awards?

Yes. Include award in noticeTypes and set postedWithinDays to 0 to search the full history back to 2008.

How much does it cost?

$1.90 per 1,000 notices, with no monthly fee, and you can set a maximum charge per run.

Support

Found a problem or want a field added? Open an issue on the Actor's Issues tab.