SAM.gov Government Bid & Contracts Watcher avatar

SAM.gov Government Bid & Contracts Watcher

Pricing

Pay per usage

Go to Apify Store
SAM.gov Government Bid & Contracts Watcher

SAM.gov Government Bid & Contracts Watcher

Scrapes and monitors US government contract opportunities and bids from the official SAM.gov API v2 with dynamic keyword, agency, and timeframe filtering.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

10 days ago

Last modified

Categories

Share

🏛️ SAM.gov Government Bid & Contracts Watcher — US Federal Contract Opportunities

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Monitor and extract US federal government contract opportunities straight from the official GSA Opportunities API v2 (SAM.gov). Search active bids, archived solicitations, or both by keyword, and get clean, structured records — notice ID, title, solicitation number, awarding agency, office, deadlines, type, and direct SAM.gov link. Pure HTTP, no browser, no scraping of protected pages — just the government's own public API.

✨ Features

  • 🏛️ Official source — Queries the GSA Opportunities API v2 directly (api.sam.gov/opportunities/v2/search), not a fragile HTML scrape
  • 🔎 Keyword search — Filter opportunities by any term (cybersecurity, cloud, cleaning, consulting, construction, etc.)
  • 🚦 Status filter — Pull active bids, inactive (archived) solicitations, or all
  • 📅 90-day window — Automatically scopes results to opportunities posted in the last 90 days (safe within GSA's 1-year API limit)
  • 🔑 BYOK or DEMO_KEY — Works out of the box with the public DEMO_KEY; supply your own free SAM.gov API key for higher rate limits
  • 📄 Offset pagination — Fetches in batches (up to 100/request) until your maxItems target is reached
  • 🛡️ Resilient — Auto-retry on failure, rate-limit-aware delays, and a built-in diagnostic guide if zero results are returned
  • 🌐 Proxy support — Optional Apify Proxy to protect your request limits
  • Pure HTTP — No headless browser, fast and cost-effective

📥 Input

ParameterTypeRequiredDefaultDescription
searchTermstring"cybersecurity"Keyword to filter contract opportunities (e.g. cybersecurity, cloud, cleaning, consulting).
statusstring"active"Opportunity status: active, inactive, or all.
apiKeystring"" (→ DEMO_KEY)Your free SAM.gov API key. If blank, the public DEMO_KEY is used (lower daily limits).
maxItemsinteger25Maximum opportunities to retrieve. Min 5, max 500.
proxyConfigurationobject{ "useApifyProxy": true }Proxy settings. Recommended to protect your request limits.

How to get a free SAM.gov API key

The actor works immediately with the public DEMO_KEY, but that key has low daily limits. For production use, get your own free key:

  1. Log into your account at https://sam.gov
  2. Go to Workspace > Profile > Account Details
  3. Under Public API Key, click the eye icon, enter the OTP, and copy your key
  4. Paste it into the apiKey input field

Input Example

{
"searchTerm": "cybersecurity",
"status": "active",
"apiKey": "",
"maxItems": 25,
"proxyConfiguration": {
"useApifyProxy": true
}
}

📤 Output

Each opportunity is pushed as one dataset record with the following fields:

FieldTypeDescription
noticeIdstringUnique SAM.gov notice identifier
titlestringOpportunity title
solicitationNumberstringSolicitation number (or N/A if absent)
agencystringAwarding department / agency
officestringContracting office
postedDatestringDate the opportunity was posted
responseDeadLinestringBid response deadline
typestringNotice type (e.g. Solicitation, Combined Synopsis/Solicitation, Award Notice)
activebooleanWhether the opportunity is currently active
descriptionstringOpportunity description / body text
urlstringDirect link to the opportunity on SAM.gov
scrapedAtstringISO 8601 timestamp of extraction

Output Example

{
"noticeId": "a1b2c3d4e5f60718293a4b5c6d7e8f90",
"title": "Cybersecurity Support Services for Enterprise Network Defense",
"solicitationNumber": "W912DY-26-R-0042",
"agency": "DEPT OF DEFENSE",
"office": "DEPT OF THE ARMY",
"postedDate": "2026-05-14",
"responseDeadLine": "2026-06-30T17:00:00-04:00",
"type": "Combined Synopsis/Solicitation",
"active": true,
"description": "The Government is seeking qualified vendors to provide continuous cybersecurity monitoring and incident response services...",
"url": "https://sam.gov/opp/a1b2c3d4e5f60718293a4b5c6d7e8f90/view",
"scrapedAt": "2026-06-06T12:00:00.000Z"
}

Note on empty results: if a search returns no opportunities (e.g. a rate-limited DEMO_KEY, a too-narrow keyword, or no active bids in the 90-day window), the actor writes a single diagnostic record explaining the likely cause and remediation steps instead of failing silently. This diagnostic record is not charged.

📋 Use Cases

  • Bid Monitoring — Track new federal contract opportunities by keyword as they are posted
  • GovCon Lead Generation — Build a pipeline of solicitations relevant to your business
  • Competitive Intelligence — Watch which agencies and offices are buying in your space
  • Capture Management — Feed deadlines and solicitation numbers into your proposal workflow
  • Market Research — Analyze federal demand trends across keywords and agencies
  • Compliance & Partnerships — Identify subcontracting and teaming opportunities early
  • Automated Alerts — Schedule recurring runs and pipe results into Slack, email, or a CRM

❓ FAQ

Q: Do I need a SAM.gov API key to run this? A: No. The actor ships with the public DEMO_KEY and works out of the box. However, DEMO_KEY has low daily request limits, so for regular or large runs you should supply your own free SAM.gov key in the apiKey field.

Q: How far back does it search? A: The actor automatically scopes each run to opportunities posted in the last 90 days, which keeps every request safely inside the GSA Opportunities API's 1-year date-range limit.

Q: What's the difference between active, inactive, and all? A: active returns currently open bids, inactive returns archived/closed solicitations, and all removes the status filter entirely so both are returned.

Q: How many opportunities can I get per run? A: Set maxItems between 5 and 500. The actor paginates in batches of up to 100 records per request until your target is reached or the API runs out of matches.

Q: I got zero results — what happened? A: The actor writes a diagnostic record with the likely cause. The three most common reasons are: (1) the DEMO_KEY hit a rate limit, (2) the keyword has no matching opportunities in the 90-day window, or (3) the API key is invalid. Try supplying your own key, broadening the keyword, or enabling a proxy.

Q: Is this scraping or an official API? A: It uses the official GSA Opportunities API v2 over HTTP — no headless browser and no scraping of protected web pages. Data comes straight from the government's public endpoint.

💰 Pricing

This actor uses Pay-Per-Event (PPE) pricing with a single event:

EventWhen it fires
opportunity-scrapedOnce per contract opportunity successfully extracted

You are billed per opportunity returned in your dataset. Diagnostic records (when zero opportunities match) are not charged. For current per-event rates, see the Pricing tab on the actor page:

👉 https://apify.com/viralanalyzer/sam-gov-contracts-watcher

📝 Changelog

v1.0 (Current)

  • ✅ Official GSA Opportunities API v2 integration (api.sam.gov/opportunities/v2/search)
  • ✅ Keyword search with active / inactive / all status filtering
  • ✅ Automatic 90-day posted-date window (safe within GSA's 1-year limit)
  • ✅ BYOK support with DEMO_KEY fallback
  • ✅ Offset pagination up to 500 opportunities per run
  • ✅ Auto-retry and rate-limit-aware delays
  • ✅ UAG-SG diagnostic guard for zero-result runs (not charged)
  • ✅ Optional Apify Proxy support
  • ✅ PPE billing via opportunity-scraped with owner-skip

🏛️ SAM.gov Government Bid & Contracts Watcher — Oportunidades de Contratos Federais dos EUA

🇺🇸 English | 🇧🇷 Português

Monitore e extraia oportunidades de contratos do governo federal dos EUA diretamente da API oficial GSA Opportunities v2 (SAM.gov). Pesquise licitações ativas, editais arquivados ou ambos por palavra-chave e obtenha registros limpos e estruturados — ID do edital, título, número da licitação, agência contratante, escritório, prazos, tipo e link direto para o SAM.gov. HTTP puro, sem navegador, sem scraping de páginas protegidas — apenas a API pública do próprio governo.

✨ Funcionalidades

  • 🏛️ Fonte oficial — Consulta a API GSA Opportunities v2 diretamente (api.sam.gov/opportunities/v2/search), não um scraping de HTML frágil
  • 🔎 Busca por palavra-chave — Filtre oportunidades por qualquer termo (cybersecurity, cloud, limpeza, consultoria, construção, etc.)
  • 🚦 Filtro de status — Traga licitações active (ativas), inactive (arquivadas) ou all (todas)
  • 📅 Janela de 90 dias — Limita automaticamente os resultados a oportunidades publicadas nos últimos 90 dias (seguro dentro do limite de 1 ano da GSA)
  • 🔑 Chave própria ou DEMO_KEY — Funciona de imediato com a DEMO_KEY pública; informe sua chave gratuita do SAM.gov para limites maiores
  • 📄 Paginação por offset — Busca em lotes (até 100/requisição) até atingir o maxItems definido
  • 🛡️ Resiliente — Retry automático em falhas, atrasos cientes de rate limit e um guia de diagnóstico embutido quando zero resultados são retornados
  • 🌐 Suporte a proxy — Apify Proxy opcional para proteger seus limites de requisição
  • HTTP puro — Sem navegador headless, rápido e econômico

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
searchTermstring"cybersecurity"Palavra-chave para filtrar oportunidades de contrato (ex: cybersecurity, cloud, limpeza, consultoria).
statusstring"active"Status da oportunidade: active, inactive ou all.
apiKeystring"" (→ DEMO_KEY)Sua chave gratuita da API do SAM.gov. Se vazio, usa a DEMO_KEY pública (limites diários menores).
maxItemsinteger25Máximo de oportunidades a recuperar. Mín 5, máx 500.
proxyConfigurationobjeto{ "useApifyProxy": true }Configuração de proxy. Recomendado para proteger seus limites de requisição.

Como obter uma chave de API gratuita do SAM.gov

O actor funciona imediatamente com a DEMO_KEY pública, mas essa chave tem limites diários baixos. Para uso em produção, obtenha sua própria chave gratuita:

  1. Faça login na sua conta em https://sam.gov
  2. Vá em Workspace > Profile > Account Details
  3. Em Public API Key, clique no ícone do olho, informe o OTP e copie sua chave
  4. Cole-a no campo apiKey

Exemplo de Entrada

{
"searchTerm": "cybersecurity",
"status": "active",
"apiKey": "",
"maxItems": 25,
"proxyConfiguration": {
"useApifyProxy": true
}
}

📤 Saída

Cada oportunidade é gravada como um registro no dataset com os seguintes campos:

CampoTipoDescrição
noticeIdstringIdentificador único do edital no SAM.gov
titlestringTítulo da oportunidade
solicitationNumberstringNúmero da licitação (ou N/A se ausente)
agencystringDepartamento / agência contratante
officestringEscritório de contratação
postedDatestringData de publicação da oportunidade
responseDeadLinestringPrazo para envio de propostas
typestringTipo do edital (ex: Solicitation, Combined Synopsis/Solicitation, Award Notice)
activebooleanSe a oportunidade está atualmente ativa
descriptionstringDescrição / corpo da oportunidade
urlstringLink direto para a oportunidade no SAM.gov
scrapedAtstringTimestamp ISO 8601 da extração

Exemplo de Saída

{
"noticeId": "a1b2c3d4e5f60718293a4b5c6d7e8f90",
"title": "Cybersecurity Support Services for Enterprise Network Defense",
"solicitationNumber": "W912DY-26-R-0042",
"agency": "DEPT OF DEFENSE",
"office": "DEPT OF THE ARMY",
"postedDate": "2026-05-14",
"responseDeadLine": "2026-06-30T17:00:00-04:00",
"type": "Combined Synopsis/Solicitation",
"active": true,
"description": "The Government is seeking qualified vendors to provide continuous cybersecurity monitoring, incident response, and threat intelligence services...",
"url": "https://sam.gov/opp/a1b2c3d4e5f60718293a4b5c6d7e8f90/view",
"scrapedAt": "2026-06-06T12:00:00.000Z"
}

Nota sobre resultados vazios: se uma busca não retornar oportunidades (ex: DEMO_KEY com rate limit, palavra-chave muito específica ou nenhuma licitação ativa na janela de 90 dias), o actor grava um único registro de diagnóstico explicando a causa provável e os passos de correção, em vez de falhar silenciosamente. Esse registro de diagnóstico não é cobrado.

📋 Casos de Uso

  • Monitoramento de Licitações — Acompanhe novas oportunidades de contrato federal por palavra-chave conforme são publicadas
  • Geração de Leads GovCon — Construa um pipeline de editais relevantes para o seu negócio
  • Inteligência Competitiva — Observe quais agências e escritórios estão comprando no seu nicho
  • Gestão de Captura — Alimente prazos e números de licitação no seu fluxo de propostas
  • Pesquisa de Mercado — Analise tendências de demanda federal por palavra-chave e agência
  • Compliance & Parcerias — Identifique cedo oportunidades de subcontratação e teaming
  • Alertas Automatizados — Agende execuções recorrentes e envie resultados para Slack, e-mail ou um CRM

❓ Perguntas Frequentes

P: Preciso de uma chave de API do SAM.gov para rodar? R: Não. O actor já vem com a DEMO_KEY pública e funciona de imediato. Porém, a DEMO_KEY tem limites diários baixos, então para execuções regulares ou grandes você deve informar sua própria chave gratuita do SAM.gov no campo apiKey.

P: Até quando ele busca no passado? R: O actor limita automaticamente cada execução a oportunidades publicadas nos últimos 90 dias, mantendo cada requisição com segurança dentro do limite de intervalo de 1 ano da API GSA Opportunities.

P: Qual a diferença entre active, inactive e all? R: active retorna licitações abertas no momento, inactive retorna editais arquivados/encerrados e all remove o filtro de status, retornando ambos.

P: Quantas oportunidades posso obter por execução? R: Defina maxItems entre 5 e 500. O actor pagina em lotes de até 100 registros por requisição até atingir seu alvo ou a API esgotar as correspondências.

P: Obtive zero resultados — o que aconteceu? R: O actor grava um registro de diagnóstico com a causa provável. Os três motivos mais comuns são: (1) a DEMO_KEY atingiu um rate limit, (2) a palavra-chave não tem oportunidades na janela de 90 dias, ou (3) a chave de API é inválida. Tente informar sua própria chave, ampliar a palavra-chave ou habilitar um proxy.

P: Isto é scraping ou uma API oficial? R: Usa a API oficial GSA Opportunities v2 via HTTP — sem navegador headless e sem scraping de páginas web protegidas. Os dados vêm diretamente do endpoint público do governo.

💰 Preços

Este actor usa precificação Pay-Per-Event (PPE) com um único evento:

EventoQuando dispara
opportunity-scrapedUma vez por oportunidade de contrato extraída com sucesso

Você é cobrado por oportunidade retornada no seu dataset. Registros de diagnóstico (quando zero oportunidades correspondem) não são cobrados. Para os valores atuais por evento, veja a aba Pricing na página do actor:

👉 https://apify.com/viralanalyzer/sam-gov-contracts-watcher

🔗 Actors Relacionados

📝 Changelog

v1.0 (Atual)

  • ✅ Integração com a API oficial GSA Opportunities v2 (api.sam.gov/opportunities/v2/search)
  • ✅ Busca por palavra-chave com filtro de status active / inactive / all
  • ✅ Janela automática de 90 dias por data de publicação (segura dentro do limite de 1 ano da GSA)
  • ✅ Suporte a chave própria com fallback para DEMO_KEY
  • ✅ Paginação por offset de até 500 oportunidades por execução
  • ✅ Retry automático e atrasos cientes de rate limit
  • ✅ Guarda de diagnóstico UAG-SG para execuções com zero resultados (não cobrada)
  • ✅ Suporte opcional a Apify Proxy
  • ✅ Cobrança PPE via opportunity-scraped com owner-skip