SAM.gov Government Bid & Contracts Watcher
Pricing
Pay per usage
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
Maintained by CommunityActor 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
activebids,inactive(archived) solicitations, orall - 📅 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
maxItemstarget 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerm | string | ✅ | "cybersecurity" | Keyword to filter contract opportunities (e.g. cybersecurity, cloud, cleaning, consulting). |
status | string | ❌ | "active" | Opportunity status: active, inactive, or all. |
apiKey | string | ❌ | "" (→ DEMO_KEY) | Your free SAM.gov API key. If blank, the public DEMO_KEY is used (lower daily limits). |
maxItems | integer | ✅ | 25 | Maximum opportunities to retrieve. Min 5, max 500. |
proxyConfiguration | object | ❌ | { "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:
- Log into your account at https://sam.gov
- Go to Workspace > Profile > Account Details
- Under Public API Key, click the eye icon, enter the OTP, and copy your key
- Paste it into the
apiKeyinput 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:
| Field | Type | Description |
|---|---|---|
noticeId | string | Unique SAM.gov notice identifier |
title | string | Opportunity title |
solicitationNumber | string | Solicitation number (or N/A if absent) |
agency | string | Awarding department / agency |
office | string | Contracting office |
postedDate | string | Date the opportunity was posted |
responseDeadLine | string | Bid response deadline |
type | string | Notice type (e.g. Solicitation, Combined Synopsis/Solicitation, Award Notice) |
active | boolean | Whether the opportunity is currently active |
description | string | Opportunity description / body text |
url | string | Direct link to the opportunity on SAM.gov |
scrapedAt | string | ISO 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:
| Event | When it fires |
|---|---|
opportunity-scraped | Once 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
🔗 Related Actors
- Yahoo Finance Intelligence — Stock quotes, fundamentals & analyst ratings
- TradingView Screener — Technical analysis & market scanner
- Craigslist Scraper — US classifieds extraction
- arXiv Paper Intelligence — Academic research monitoring
📝 Changelog
v1.0 (Current)
- ✅ Official GSA Opportunities API v2 integration (
api.sam.gov/opportunities/v2/search) - ✅ Keyword search with
active/inactive/allstatus filtering - ✅ Automatic 90-day posted-date window (safe within GSA's 1-year limit)
- ✅ BYOK support with
DEMO_KEYfallback - ✅ 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-scrapedwith 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) ouall(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_KEYpú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
maxItemsdefinido - 🛡️ 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âmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
searchTerm | string | ✅ | "cybersecurity" | Palavra-chave para filtrar oportunidades de contrato (ex: cybersecurity, cloud, limpeza, consultoria). |
status | string | ❌ | "active" | Status da oportunidade: active, inactive ou all. |
apiKey | string | ❌ | "" (→ DEMO_KEY) | Sua chave gratuita da API do SAM.gov. Se vazio, usa a DEMO_KEY pública (limites diários menores). |
maxItems | integer | ✅ | 25 | Máximo de oportunidades a recuperar. Mín 5, máx 500. |
proxyConfiguration | objeto | ❌ | { "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:
- Faça login na sua conta em https://sam.gov
- Vá em Workspace > Profile > Account Details
- Em Public API Key, clique no ícone do olho, informe o OTP e copie sua chave
- 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:
| Campo | Tipo | Descrição |
|---|---|---|
noticeId | string | Identificador único do edital no SAM.gov |
title | string | Título da oportunidade |
solicitationNumber | string | Número da licitação (ou N/A se ausente) |
agency | string | Departamento / agência contratante |
office | string | Escritório de contratação |
postedDate | string | Data de publicação da oportunidade |
responseDeadLine | string | Prazo para envio de propostas |
type | string | Tipo do edital (ex: Solicitation, Combined Synopsis/Solicitation, Award Notice) |
active | boolean | Se a oportunidade está atualmente ativa |
description | string | Descrição / corpo da oportunidade |
url | string | Link direto para a oportunidade no SAM.gov |
scrapedAt | string | Timestamp 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_KEYcom 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:
| Evento | Quando dispara |
|---|---|
opportunity-scraped | Uma 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
- Yahoo Finance Intelligence — Cotações, fundamentos & ratings de analistas
- TradingView Screener — Análise técnica & scanner de mercado
- Craigslist Scraper — Extração de classificados dos EUA
- arXiv Paper Intelligence — Monitoramento de pesquisa acadêmica
📝 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-scrapedcom owner-skip