Gouda Studios Agent Tools

SAM.gov Contract Opportunities

Federal contract opportunities from SAM.gov with NAICS, PSC, set-aside, place of performance, response deadline and days left, contracting contacts, and a new-only monitoring mode. No API key needed.

Open on Apify: gouda_studios/sam-gov-opportunities-feed

Use cases

Pricing

Input parameters

NameTypeDefaultDescription
keywordsstringOptional free-text search over SAM.gov notice titles and text, e.g. "cybersecurity" or "janitorial services". Leave empty to return all notices that match the other filters.
naicsCodesarray[]Optional list of 6-digit NAICS industry codes (strings), e.g. ["541511","541512"]. A notice matches if it has any of them. Empty = all industries.
noticeTypesarray[]Optional list of notice type codes: o=Solicitation, k=Combined Synopsis/Solicitation, p=Presolicitation, r=Sources Sought, s=Special Notice, a=Award Notice, u=Justification, i=Intent to Bundle, g=Surplus sale. Empty = all types.
setAsidesarray[]Optional small-business set-aside codes, e.g. ["SBA","8A","SDVOSBC","WOSB","HZC"]. Empty = any set-aside or none.
statesarray[]Optional 2-letter US state codes for the place of performance, e.g. ["VA","MD"]. Requires includeDetails=true. Empty = all locations.
agencyContainsstringOptional case-insensitive text the agency path must contain, e.g. "Navy" or "Veterans Affairs".
postedWithinDaysinteger0Only notices posted or updated in the last N days. 0 = no date limit. Use 1-7 for daily/weekly monitoring.
minDaysUntilResponseintegerOptional. Skip notices whose response deadline is fewer than N days away, so you only get ones you can still bid on.
activeOnlybooleantruetrue (default) = skip archived/inactive notices.
includeDetailsbooleantruetrue (default) = fetch each notice for NAICS, PSC, set-aside, place of performance, full description and contacts. false = faster, fewer fields.
includeContactsbooleantruetrue (default) = include the contracting officer work name, email and phone published on the notice.
onlyNewbooleanfalsetrue = return only notices not delivered in an earlier run with the same filters (state is kept between runs). Use with a schedule for an alert feed.
maxResultsinteger100Maximum rows to return (1-10000). You are charged per row returned, so this caps the cost: 100 rows = $0.20 at $0.002/row.
apiKeystringOptional. Your own free api.sam.gov public API key; when set, the Actor reads the official SAM.gov Opportunities API instead of the public search feed.

Example input

{
  "keywords": "cybersecurity",
  "naicsCodes": [
    "541512"
  ],
  "setAsides": [
    "SBA"
  ],
  "postedWithinDays": 7,
  "maxResults": 25
}

Output fields (one row per opportunity)

FieldTypeDescription
noticeId['null', 'string']
title['null', 'string']
solicitationNumber['null', 'string']
noticeType['null', 'string']
noticeTypeCode['null', 'string']
department['null', 'string']
subTier['null', 'string']
office['null', 'string']
agencyPath['null', 'string']
postedDate['null', 'string']
modifiedDate['null', 'string']
responseDeadline['null', 'string']
daysUntilResponse['null', 'number']
naicsCodes['array', 'null']
pscCode['null', 'string']
setAside['null', 'string']
placeOfPerformanceCity['null', 'string']
placeOfPerformanceState['null', 'string']
placeOfPerformanceCountry['null', 'string']
awardee['null', 'string']
awardAmount['null', 'string']
awardDate['null', 'string']
isActive['boolean', 'null']
isCanceled['boolean', 'null']
description['null', 'string']
contacts['array', 'null']
url['null', 'string']
detailFetched['boolean', 'null']
source['null', 'string']
scrapedAt['null', 'string']

Sample output row

{
  "noticeId": "9918efd75fd242f387fb70316e0a71ab",
  "title": "GA-VGMS-33528",
  "solicitationNumber": "27M-638A-VA",
  "noticeType": "Sources Sought",
  "noticeTypeCode": "r",
  "department": "DEPT OF DEFENSE",
  "subTier": "DEPT OF THE AIR FORCE",
  "office": "FA2263  AFLCMC WNMK",
  "agencyPath": "DEPT OF DEFENSE > DEPT OF THE AIR FORCE > AIR FORCE MATERIEL COMMAND > AIR FORCE LIFE CYCLE MANAGEMENT CENTER > AGILE COMBAT SYSTEMS > FA2263  AFLCMC WNMK",
  "postedDate": "2026-10-16T17:49:16+00:00",
  "modifiedDate": "2026-10-16T17:49:16+00:00",
  "responseDeadline": "2026-11-17T14:00:00-05:00",
  "daysUntilResponse": 33,
  "naicsCodes": [
    "334515"
  ],
  "pscCode": null,
  "setAside": null,
  "placeOfPerformanceCity": null,
  "placeOfPerformanceState": null,
  "placeOfPerformanceCountry": null,
  "awardee": null,
  "awardAmount": null,
  "awardDate": null,
  "isActive": true,
  "isCanceled": false,
  "description": "This is a request for information (RFI) / SOURCES SOUGHT SYNOPSIS. This request is not a solicitation (Request for Proposal or Request for Quotations) or a promise to issue a solicitation in the future. Responses to this notice are not considered offers and cannot be accepted by the government to fo...",
  "contacts": [
    {
      "type": "primary",
      "name": "Megan Moretti",
      "title": null,
      "email": "megan.moretti@us.af.mil",
      "phone": "9377135845"
    },
    {
      "type": "secondary",
      "name": "Frank Capuano",
      "title": null,
      "email": "frank.capuano@us.af.mil",
      "phone": "9377135842"
    }
  ],
  "url": "https://sam.gov/opp/9918efd75fd242f387fb70316e0a71ab/view",
  "detailFetched": true,
  "source": "sam.gov public search",
  "scrapedAt": "2026-10-16T17:52:51.524Z"
}

How to call

Apify API (synchronous, returns dataset items)

curl -X POST "https://api.apify.com/v2/acts/gouda_studios~sam-gov-opportunities-feed/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": "cybersecurity", "naicsCodes": ["541512"], "setAsides": ["SBA"], "postedWithinDays": 7, "maxResults": 25}'

Apify MCP server

Connect an MCP client to https://mcp.apify.com and add the actor gouda_studios/sam-gov-opportunities-feed, for example https://mcp.apify.com/?tools=gouda_studios/sam-gov-opportunities-feed.

Agentic payments (x402 / Skyfire)

This actor is eligible for Apify agentic payments, so an AI agent can pay per run without an Apify account. See Apify x402 docs.

Machine-readable: /tools/sam-gov-opportunities-feed.json


Contact: m0f@mail.grokbot.com | Machine-readable: llms.txt, llms-full.txt, tools.json, openapi.json | Source: GitHub