SAM.gov Federal Contract Opportunities Scraper & API
Pricing
from $9.23 / 1,000 results
SAM.gov Federal Contract Opportunities Scraper & API
Scrape US federal contract opportunities from SAM.gov with no API key. Search solicitations, sources sought and award notices by keyword, NAICS, PSC, set-aside, agency, state, deadline. Get officer contacts, place of performance, full descriptions and attachments. JSON, CSV, Excel.
Pricing
from $9.23 / 1,000 results
Rating
5.0
(2)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
17 days ago
Last modified
Categories
Share
SAM.gov Federal Contract Opportunities Scraper & API
Scrape US federal contract opportunities from SAM.gov with no API key and no login. Pull solicitations, sources sought, presolicitations and award notices across every federal agency, then filter by keyword, NAICS, PSC, set-aside program, agency, state and date. This is the most complete SAM.gov opportunities scraper on Apify: it merges the search result, the notice detail and the attachment list into one clean, LLM-ready record per opportunity.
Great for government contracting and federal RFP / solicitation monitoring, small-business BD teams tracking set-aside contracts, proposal teams pulling full solicitation text and contracting-officer contacts, and market-intelligence teams following award notices.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Why this scraper
- Quickstart
- Input reference
- Output reference
- Example output record
- How it compares
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches SAM.gov federal contract opportunities across all agencies using the keyword and filters you pass, paginates through the matching notices, and writes one normalized record per opportunity to the run's dataset. Each record includes the title, notice type, solicitation number, the full agency hierarchy (department, sub-tier and office), posted and response-deadline dates, active and canceled flags, an award block and a short description snippet, at no extra charge.
Turn on full details (a paid add-on) to also open each notice and add the full description, all points of contact with email and phone, the place of performance, NAICS and classification (PSC) code, set-aside program, archive info, the full award block and every downloadable solicitation document (SOW, RFQ/RFP, drawings, Q&A) with a direct file link.
You can also scrape specific notices directly by their notice ID or SAM.gov URL using the noticeIds input.
Data covers US federal opportunities published on SAM.gov (the successor to FedBizOpps / FBO).
Why this scraper
- No API key, no account. Reads the public SAM.gov data service that powers the official search UI. You never need to request or manage a data.gov / SAM.gov key.
- Search plus detail plus attachments in one row. Each result already carries the notice, the contracting-officer contacts and the downloadable documents.
- More filters than the official API. Keyword mode, notice type, NAICS, PSC, set-aside, agency/organization, state and both posted-date and response-deadline ranges.
- Honest fields. Every field is present on every record; absent source values are
null, never guessed. - Fast HTTP. No browser, so runs are quick and cheap.
Quickstart
Open the actor, paste this into the input, and press Run. It returns active opportunities matching "software" with full details.
{"maxOpportunities": 10,"withDetails": true,"searchTerm": "software","activeOnly": true}
Every input field is optional. Add a naics or psc code, a setAside program, specific noticeTypes, an organizationId, a placeOfPerformanceState, or a postedFrom/postedTo or responseFrom/responseTo range to narrow the results.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerm | string | no | software | Free-text keyword searched across notice title and content, for example cybersecurity, janitorial, HVAC. |
keywordMode | enum | no | ALL | How the keyword matches: ALL words, ANY word, or the EXACT phrase. |
maxOpportunities | integer | no | 10 | Maximum opportunities to collect this run. |
withDetails | boolean | no | true | Paid add-on (paying plans). Opens each notice to add the full description, contacts, place of performance, NAICS/PSC code, set-aside, award block and attachments. Free-tier runs still get the core listing fields and a description snippet. |
noticeTypes | string[] | no | (all) | Types to include: o (Solicitation), k (Combined Synopsis/Solicitation), p (Presolicitation), r (Sources Sought), a (Award Notice), s (Special Notice), g (Sale of Surplus Property), i (Intent to Bundle), u (Justification). Empty for all. |
naics | string | no | (any) | Six-digit NAICS industry code, for example 541511 for custom computer programming. |
psc | string | no | (any) | Product or Service Code (PSC) / classification code, for example D307, 7G21. |
setAside | enum | no | (any) | Set-aside program, for example SBA, 8A, WOSB, SDVOSBC, HZC. Empty for any. |
organizationId | string | no | (any) | SAM.gov organization ID (department, sub-tier or office). Every record returns its organizationId, so you can discover and reuse it. |
placeOfPerformanceState | string | no | (any) | Two-letter US state code for the place of performance, for example CA, TX, VA. |
postedFrom | string | no | (any) | Earliest posted/updated date (MM/DD/YYYY or YYYY-MM-DD). |
postedTo | string | no | (any) | Latest posted/updated date. |
responseFrom | string | no | (any) | Earliest response deadline (find opportunities still open for bids). |
responseTo | string | no | (any) | Latest response deadline. |
sortBy | enum | no | modified | Result order: modified, posted, relevance, or deadline (earliest response deadline first). |
activeOnly | boolean | no | true | Only currently active (not archived) notices. Turn off to include archived and older award notices. |
noticeIds | string[] | no | (none) | Scrape specific notices directly by SAM.gov notice ID or URL. When set, the search filters are ignored. |
Output reference
One dataset item per opportunity. Types: string, boolean, number, object, object[], or null when the source value is absent. Fields marked (details) are populated only when the withDetails paid add-on is on.
| Field | Type | Description |
|---|---|---|
title | string | Opportunity title. |
type | string | Current notice type, for example Sources Sought. |
typeCode | string | Single-letter notice type code (o, k, p, r, a, ...). |
baseType | string | Original (base) notice type. |
uiLink | string | Public SAM.gov view URL for the notice. |
noticeId | string | SAM.gov notice ID (unique per notice). |
solicitationNumber | string | Solicitation number, or null. |
fullParentPathName | string | Full agency hierarchy path. |
department | string | Top-level department (for example DEPT OF DEFENSE). |
subTier | string | Sub-tier agency (for example DEPT OF THE NAVY). |
office | string | Contracting office. |
organizationId | string | SAM.gov organization ID of the contracting office. |
parentNoticeId | string | Parent notice ID, or null. |
postedDate | string | Date the notice was posted (ISO 8601). |
responseDeadLine | string | Response deadline (ISO 8601), or null. |
responseDeadLineActual | string | Response deadline in the notice local time, or null. |
responseTimeZone | string | IANA time zone of the response deadline. |
modifiedDate | string | Last modification date (ISO 8601). |
modificationCount | number | Number of times the notice has been amended. |
isActive | boolean | Whether the notice is currently active. |
isCanceled | boolean | Whether the notice was canceled. |
descriptionSnippet | string | Short teaser of the description (free on every tier). |
award | object | Award block: amount, number, date and awardee (name, uei, cageCode, location). null until awarded. |
naicsCode | string | Primary NAICS industry code (details). |
naicsCodes | string[] | All NAICS codes on the notice (details). |
naicsTitle | string | NAICS title if the source provides it, otherwise null (details). |
classificationCode | string | Product/service (PSC) classification code (details). |
setAside | string | Set-aside program code on the notice, for example NONE, SBA, 8A (details). |
setAsideCode | string | Set-aside code (details). |
setAsideDescription | string | Human-readable set-aside label, for example 8(a) Set-Aside (details). |
archiveDate | string | Date the notice is archived (details). |
archiveType | string | How the archive date is set, for example auto15 (details). |
placeOfPerformance | object | city, state, stateCode, country, countryCode, zip, streetAddress (details). |
pointOfContact | object[] | Contacts (details). Each has type, name, title, email, phone, fax. |
description | string | Full notice description text (details). |
attachments | object[] | Attachments (details). Each has name, type, mimeType, sizeBytes, accessLevel, resourceId, postedDate, url. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. |
Example output record
Real record from a live run (input {"searchTerm":"software","withDetails":true}), with description and attachments trimmed for length; live records carry the full values:
{"title": "RFI Notice: MGA Thomas Hall Security","type": "Sources Sought","typeCode": "r","baseType": "Sources Sought","uiLink": "https://sam.gov/opp/af87a6d729e14c2584d6ea16bebff217/view","noticeId": "af87a6d729e14c2584d6ea16bebff217","solicitationNumber": "FA857926Q0000","fullParentPathName": "DEPT OF DEFENSE.DEPT OF THE AIR FORCE.AIR FORCE MATERIEL COMMAND.AIR FORCE SUSTAINMENT CENTER.FA8579 SOFTWARE SPRT AFSC PZIM","department": "DEPT OF DEFENSE","subTier": "DEPT OF THE AIR FORCE","office": "FA8579 SOFTWARE SPRT AFSC PZIM","organizationId": "500021097","postedDate": "2026-08-10T13:08:18.152+00:00","responseDeadLine": "2026-08-12T16:00:00-04:00","responseTimeZone": "America/New_York","modificationCount": 0,"isActive": true,"isCanceled": false,"descriptionSnippet": "Request for Information (RFI): Thomas Hall Security, FAR Part 10 market research only ...","naicsCode": "238990","naicsCodes": ["238990"],"classificationCode": "Z2AA","setAside": "NONE","setAsideCode": "NONE","setAsideDescription": null,"archiveDate": "2026-08-27","archiveType": "auto15","placeOfPerformance": {"city": "Warner Robins","state": "Georgia","stateCode": "GA","country": "UNITED STATES","countryCode": "USA","zip": "31093","streetAddress": null},"pointOfContact": [{ "type": "primary", "name": "Jonathon VanBrunt", "title": null, "email": "jonathon.vanbrunt@us.af.mil", "phone": null, "fax": null }],"description": "Request for Information (RFI): Thomas Hall Security. FAR Part 10, Market Research Only ...","attachments": [{ "name": "MGSU Security SOW.pdf", "type": "file", "mimeType": ".pdf", "sizeBytes": 477957, "accessLevel": "public", "resourceId": "f8e5327abb994a699ba3a5d5f2325d9d", "postedDate": "2026-08-10T13:08:18.152+00:00", "url": "https://sam.gov/api/prod/opps/v3/opportunities/resources/files/f8e5327abb994a699ba3a5d5f2325d9d/download" }],"observedAt": "2026-08-10T14:18:24.558Z","error": null}
How it compares
| Capability | This scraper | Typical SAM.gov actors |
|---|---|---|
| No API key required | Yes | Some require a SAM.gov / data.gov key |
| Keyword match mode (ALL / ANY / EXACT) | Yes | Sometimes |
| Notice type filter | Yes | Yes |
| NAICS filter | Yes | Yes |
| PSC / classification filter | Yes | Sometimes |
| Set-aside filter | Yes | Yes |
| Agency / organization filter | Yes | Sometimes |
| Place-of-performance state filter | Yes | Sometimes |
| Posted-date range | Yes | Yes |
| Response-deadline range | Yes | Sometimes |
| Direct notice ID / URL lookup | Yes | Sometimes |
| Department / sub-tier / office split | Yes | Sometimes |
| Contracting-officer contacts (email, phone) | Yes | Yes |
| Place of performance | Yes | Yes |
| Full description | Yes | Yes |
| Attachments with direct download URLs | Yes | Yes |
| Award block (amount, number, awardee, UEI, CAGE, location) | Yes | Partial |
| Free description snippet without the detail add-on | Yes | Rare |
| Response deadline local time + IANA time zone | Yes | Rare |
This actor accepts every input and returns every output offered by comparable SAM.gov actors on Apify (for example scrapesage/sam-gov-scraper, magicfingers/sam-gov-scraper and rousing_shirt/sam-gov-contract-scraper), and adds the keyless access, the free description snippet, the response-deadline time zone, the modification count and the richer award block.
Run via API and CLI
Start a run and read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sam-gov-opportunities-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchTerm":"cybersecurity","naics":"541511","withDetails":true,"maxOpportunities":50}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sam-gov-opportunities-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchTerm":"janitorial","setAside":"WOSB","noticeTypes":["o","k"],"maxOpportunities":200}'
Apify CLI:
apify call scrapers_lat/sam-gov-opportunities-scraper \--input '{"searchTerm":"software","maxOpportunities":25}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per opportunity returned (
resultevent). See the pricing tab for the current per-result price. - Details add-on. The full description, contacts, place of performance, codes and attachments are a separate paid
detailsevent, charged only for paying plans and only after a result row is delivered with real detail data. - No charge on failure. Searches that match no notice do not push billable records, so empty runs cost nothing.
- Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 opportunities per run and get the core listing fields plus a description snippet. Upgrade for higher
maxOpportunitiesand the full details add-on.
FAQ and troubleshooting
Do I need a SAM.gov or data.gov API key? No. This actor reads the public SAM.gov data service that powers the official search UI. No key, account or login is required.
A run returned 0 records. Why?
The keyword plus filters matched no active notices. Loosen a filter (drop naics, psc or setAside, widen the date range), turn activeOnly off to include archived notices, or try a broader keyword. Zero-result runs are not charged.
How do I filter by industry?
Pass a six-digit naics code (for example 541511) or a psc product/service code (for example D307).
How do I find set-aside opportunities?
Set setAside to the program code, for example 8A, WOSB, SDVOSBC, or HZC.
Why are the NAICS, description and contacts missing?
Those fields come from each notice's detail and are part of the paid withDetails add-on (paying plans). Turn it on to include them; free runs still get a description snippet.
Do award notices include the awardee?
Yes. For awarded notices, the award block carries the amount, number, date, and awardee name, UEI, CAGE code and location. Before award, those values are null.
Can I scrape one specific notice?
Yes. Put its notice ID or SAM.gov URL in noticeIds and the actor fetches those notices directly.
Is this an official SAM.gov tool? No. This actor is independent and has no affiliation with SAM.gov or the US government. It reads only publicly available opportunity data. Use it in accordance with SAM.gov's terms.
Related scrapers
- Grants.gov Opportunity Scraper: US federal grant opportunities.
- USAspending Federal Award Scraper: US federal prime awards.
- Federal Register Document Scraper: US Federal Register documents.
- GovDeals Auctions Scraper: government surplus auction listings.
- FMCSA Carriers Scraper: US motor carrier registration data.
- SEC EDGAR Company Filings Scraper: SEC filings by ticker or CIK.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with SAM.gov or the US government. Accesses only publicly available opportunity data. Use in accordance with SAM.gov's terms of service.
Scraper y API de Oportunidades de Contratos Federales de SAM.gov
Extrae oportunidades de contratos federales de EE. UU. desde SAM.gov sin clave de API y sin inicio de sesion. Obten licitaciones (solicitations), busquedas de fuentes (sources sought), preavisos (presolicitations) y avisos de adjudicacion (award notices) de todas las agencias federales, y filtra por palabra clave, NAICS, PSC, programa de reserva (set-aside), agencia, estado y fecha. Es el scraper de oportunidades de SAM.gov mas completo en Apify: combina el resultado de busqueda, el detalle del aviso y la lista de adjuntos en un unico registro limpio y listo para IA por oportunidad.
Ideal para contratacion publica y monitoreo de RFP / licitaciones federales, equipos de desarrollo de negocio de pequenas empresas que siguen contratos con reserva (set-aside), equipos de propuestas que descargan el texto completo y los contactos del oficial de contratacion, y equipos de inteligencia de mercado que siguen adjudicaciones.
📥 Entrada · 📤 Salida · 💰 Precios · ▶️ Ejemplos
Tabla de contenido
- Que hace
- Por que este scraper
- Inicio rapido
- Referencia de entrada
- Referencia de salida
- Registro de ejemplo
- Comparativa
- Ejecutar por API y CLI
- Obtener resultados
- Facturacion y limites
- Preguntas frecuentes
Que hace
El actor busca oportunidades de contratos federales de SAM.gov en todas las agencias con la palabra clave y los filtros que indiques, pagina los avisos coincidentes y escribe un registro normalizado por oportunidad en el dataset de la ejecucion. Cada registro incluye el titulo, el tipo de aviso, el numero de licitacion, la jerarquia completa de la agencia (departamento, sub-nivel y oficina), las fechas de publicacion y de vencimiento de respuesta, los indicadores de activo y cancelado, un bloque de adjudicacion y un fragmento breve de la descripcion, sin costo adicional.
Activa los detalles completos (complemento de pago) para abrir cada aviso y agregar la descripcion completa, todos los puntos de contacto con correo y telefono, el lugar de ejecucion (place of performance), el codigo NAICS y de clasificacion (PSC), el programa de reserva (set-aside), la informacion de archivo, el bloque de adjudicacion completo y todos los documentos descargables de la licitacion (SOW, RFQ/RFP, planos, preguntas y respuestas) con enlace directo al archivo.
Tambien puedes extraer avisos especificos directamente por su ID de aviso o URL de SAM.gov con el campo noticeIds.
Los datos cubren oportunidades federales de EE. UU. publicadas en SAM.gov (sucesor de FedBizOpps / FBO).
Por que este scraper
- Sin clave de API, sin cuenta. Lee el servicio de datos publico de SAM.gov que alimenta la interfaz de busqueda oficial. Nunca necesitas solicitar ni gestionar una clave de data.gov / SAM.gov.
- Busqueda mas detalle mas adjuntos en una fila. Cada resultado ya trae el aviso, los contactos del oficial de contratacion y los documentos descargables.
- Mas filtros que la API oficial. Modo de palabra clave, tipo de aviso, NAICS, PSC, set-aside, agencia/organizacion, estado y rangos tanto de fecha de publicacion como de vencimiento de respuesta.
- Campos honestos. Cada campo esta presente en cada registro; los valores ausentes en la fuente son
null, nunca inventados. - HTTP rapido. Sin navegador, por lo que las ejecuciones son rapidas y economicas.
Inicio rapido
Abre el actor, pega esto en la entrada y presiona Ejecutar. Devuelve oportunidades activas que coinciden con "software" con detalles completos.
{"maxOpportunities": 10,"withDetails": true,"searchTerm": "software","activeOnly": true}
Cada campo de entrada es opcional. Agrega un codigo naics o psc, un programa setAside, noticeTypes especificos, un organizationId, un placeOfPerformanceState, o un rango postedFrom/postedTo o responseFrom/responseTo para acotar los resultados.
Referencia de entrada
| Campo | Tipo | Requerido | Predeterminado | Descripcion |
|---|---|---|---|---|
searchTerm | string | no | software | Palabra clave de texto libre buscada en el titulo y el contenido del aviso, por ejemplo cybersecurity, janitorial, HVAC. |
keywordMode | enum | no | ALL | Como coincide la palabra clave: ALL (todas las palabras), ANY (cualquier palabra) o EXACT (frase exacta). |
maxOpportunities | integer | no | 10 | Maximo de oportunidades a recopilar en esta ejecucion. |
withDetails | boolean | no | true | Complemento de pago (planes de pago). Abre cada aviso para agregar descripcion completa, contactos, lugar de ejecucion, codigo NAICS/PSC, set-aside, bloque de adjudicacion y adjuntos. Las ejecuciones gratuitas igual reciben los campos principales y un fragmento de la descripcion. |
noticeTypes | string[] | no | (todos) | Tipos a incluir: o (Licitacion), k (Sinopsis/Licitacion combinada), p (Preaviso), r (Busqueda de fuentes), a (Aviso de adjudicacion), s (Aviso especial), g (Venta de excedentes), i (Intencion de agrupar), u (Justificacion). Vacio para todos. |
naics | string | no | (cualquiera) | Codigo NAICS de industria de seis digitos, por ejemplo 541511 para programacion informatica personalizada. |
psc | string | no | (cualquiera) | Codigo de producto o servicio (PSC) / codigo de clasificacion, por ejemplo D307, 7G21. |
setAside | enum | no | (cualquiera) | Programa de reserva (set-aside), por ejemplo SBA, 8A, WOSB, SDVOSBC, HZC. Vacio para cualquiera. |
organizationId | string | no | (cualquiera) | ID de organizacion de SAM.gov (departamento, sub-nivel u oficina). Cada registro devuelve su organizationId, para que puedas descubrirlo y reutilizarlo. |
placeOfPerformanceState | string | no | (cualquiera) | Codigo de estado de EE. UU. de dos letras para el lugar de ejecucion, por ejemplo CA, TX, VA. |
postedFrom | string | no | (cualquiera) | Fecha minima de publicacion/actualizacion (MM/DD/YYYY o YYYY-MM-DD). |
postedTo | string | no | (cualquiera) | Fecha maxima de publicacion/actualizacion. |
responseFrom | string | no | (cualquiera) | Vencimiento de respuesta minimo (para encontrar oportunidades aun abiertas a ofertas). |
responseTo | string | no | (cualquiera) | Vencimiento de respuesta maximo. |
sortBy | enum | no | modified | Orden de resultados: modified, posted, relevance o deadline (vencimiento de respuesta mas cercano primero). |
activeOnly | boolean | no | true | Solo avisos actualmente activos (no archivados). Desactivalo para incluir avisos archivados y de adjudicacion antiguos. |
noticeIds | string[] | no | (ninguno) | Extrae avisos especificos por ID de aviso o URL de SAM.gov. Cuando se define, se ignoran los filtros de busqueda. |
Referencia de salida
Un elemento del dataset por oportunidad. Tipos: string, boolean, number, object, object[] o null cuando el valor de la fuente esta ausente. Los campos marcados (detalles) se completan solo cuando el complemento de pago withDetails esta activo.
| Campo | Tipo | Descripcion |
|---|---|---|
title | string | Titulo de la oportunidad. |
type | string | Tipo de aviso actual, por ejemplo Sources Sought. |
typeCode | string | Codigo de una letra del tipo de aviso (o, k, p, r, a, ...). |
baseType | string | Tipo de aviso original (base). |
uiLink | string | URL publica de SAM.gov del aviso. |
noticeId | string | ID del aviso en SAM.gov (unico por aviso). |
solicitationNumber | string | Numero de licitacion, o null. |
fullParentPathName | string | Ruta completa de la jerarquia de la agencia. |
department | string | Departamento de nivel superior (por ejemplo DEPT OF DEFENSE). |
subTier | string | Agencia de sub-nivel (por ejemplo DEPT OF THE NAVY). |
office | string | Oficina de contratacion. |
organizationId | string | ID de organizacion de SAM.gov de la oficina de contratacion. |
parentNoticeId | string | ID del aviso padre, o null. |
postedDate | string | Fecha de publicacion del aviso (ISO 8601). |
responseDeadLine | string | Vencimiento de respuesta (ISO 8601), o null. |
responseDeadLineActual | string | Vencimiento de respuesta en hora local del aviso, o null. |
responseTimeZone | string | Zona horaria IANA del vencimiento de respuesta. |
modifiedDate | string | Fecha de ultima modificacion (ISO 8601). |
modificationCount | number | Numero de veces que el aviso fue enmendado. |
isActive | boolean | Si el aviso esta actualmente activo. |
isCanceled | boolean | Si el aviso fue cancelado. |
descriptionSnippet | string | Fragmento breve de la descripcion (gratis en todos los planes). |
award | object | Bloque de adjudicacion: amount, number, date y awardee (name, uei, cageCode, location). null hasta la adjudicacion. |
naicsCode | string | Codigo NAICS de industria principal (detalles). |
naicsCodes | string[] | Todos los codigos NAICS del aviso (detalles). |
naicsTitle | string | Titulo NAICS si la fuente lo provee, si no null (detalles). |
classificationCode | string | Codigo de clasificacion de producto/servicio (PSC) (detalles). |
setAside | string | Codigo del programa de reserva del aviso, por ejemplo NONE, SBA, 8A (detalles). |
setAsideCode | string | Codigo de set-aside (detalles). |
setAsideDescription | string | Etiqueta legible del set-aside, por ejemplo 8(a) Set-Aside (detalles). |
archiveDate | string | Fecha en que se archiva el aviso (detalles). |
archiveType | string | Como se fija la fecha de archivo, por ejemplo auto15 (detalles). |
placeOfPerformance | object | city, state, stateCode, country, countryCode, zip, streetAddress (detalles). |
pointOfContact | object[] | Contactos (detalles). Cada uno tiene type, name, title, email, phone, fax. |
description | string | Texto completo de la descripcion del aviso (detalles). |
attachments | object[] | Adjuntos (detalles). Cada uno tiene name, type, mimeType, sizeBytes, accessLevel, resourceId, postedDate, url. |
observedAt | string | Marca de tiempo ISO 8601 de cuando se recopilo el registro. |
error | string | null en caso de exito. |
Registro de ejemplo
Registro real de una ejecucion en vivo (entrada {"searchTerm":"software","withDetails":true}), con description y attachments recortados por longitud; los registros en vivo llevan los valores completos:
{"title": "RFI Notice: MGA Thomas Hall Security","type": "Sources Sought","typeCode": "r","baseType": "Sources Sought","uiLink": "https://sam.gov/opp/af87a6d729e14c2584d6ea16bebff217/view","noticeId": "af87a6d729e14c2584d6ea16bebff217","solicitationNumber": "FA857926Q0000","fullParentPathName": "DEPT OF DEFENSE.DEPT OF THE AIR FORCE.AIR FORCE MATERIEL COMMAND.AIR FORCE SUSTAINMENT CENTER.FA8579 SOFTWARE SPRT AFSC PZIM","department": "DEPT OF DEFENSE","subTier": "DEPT OF THE AIR FORCE","office": "FA8579 SOFTWARE SPRT AFSC PZIM","organizationId": "500021097","postedDate": "2026-08-10T13:08:18.152+00:00","responseDeadLine": "2026-08-12T16:00:00-04:00","responseTimeZone": "America/New_York","modificationCount": 0,"isActive": true,"isCanceled": false,"descriptionSnippet": "Request for Information (RFI): Thomas Hall Security, FAR Part 10 market research only ...","naicsCode": "238990","naicsCodes": ["238990"],"classificationCode": "Z2AA","setAside": "NONE","setAsideCode": "NONE","setAsideDescription": null,"archiveDate": "2026-08-27","archiveType": "auto15","placeOfPerformance": {"city": "Warner Robins","state": "Georgia","stateCode": "GA","country": "UNITED STATES","countryCode": "USA","zip": "31093","streetAddress": null},"pointOfContact": [{ "type": "primary", "name": "Jonathon VanBrunt", "title": null, "email": "jonathon.vanbrunt@us.af.mil", "phone": null, "fax": null }],"description": "Request for Information (RFI): Thomas Hall Security. FAR Part 10, Market Research Only ...","attachments": [{ "name": "MGSU Security SOW.pdf", "type": "file", "mimeType": ".pdf", "sizeBytes": 477957, "accessLevel": "public", "resourceId": "f8e5327abb994a699ba3a5d5f2325d9d", "postedDate": "2026-08-10T13:08:18.152+00:00", "url": "https://sam.gov/api/prod/opps/v3/opportunities/resources/files/f8e5327abb994a699ba3a5d5f2325d9d/download" }],"observedAt": "2026-08-10T14:18:24.558Z","error": null}
Comparativa
| Capacidad | Este scraper | Actores tipicos de SAM.gov |
|---|---|---|
| No requiere clave de API | Si | Algunos requieren clave de SAM.gov / data.gov |
| Modo de coincidencia (ALL / ANY / EXACT) | Si | A veces |
| Filtro por tipo de aviso | Si | Si |
| Filtro NAICS | Si | Si |
| Filtro PSC / clasificacion | Si | A veces |
| Filtro set-aside | Si | Si |
| Filtro por agencia / organizacion | Si | A veces |
| Filtro por estado del lugar de ejecucion | Si | A veces |
| Rango de fecha de publicacion | Si | Si |
| Rango de vencimiento de respuesta | Si | A veces |
| Busqueda directa por ID / URL de aviso | Si | A veces |
| Division departamento / sub-nivel / oficina | Si | A veces |
| Contactos del oficial de contratacion (correo, telefono) | Si | Si |
| Lugar de ejecucion | Si | Si |
| Descripcion completa | Si | Si |
| Adjuntos con URL de descarga directa | Si | Si |
| Bloque de adjudicacion (monto, numero, adjudicatario, UEI, CAGE, ubicacion) | Si | Parcial |
| Fragmento de descripcion gratis sin el complemento de detalle | Si | Raro |
| Hora local del vencimiento + zona horaria IANA | Si | Raro |
Este actor acepta cada entrada y devuelve cada salida que ofrecen actores comparables de SAM.gov en Apify (por ejemplo scrapesage/sam-gov-scraper, magicfingers/sam-gov-scraper y rousing_shirt/sam-gov-contract-scraper), y agrega el acceso sin clave, el fragmento de descripcion gratis, la zona horaria del vencimiento, el conteo de modificaciones y el bloque de adjudicacion mas completo.
Ejecutar por API y CLI
Inicia una ejecucion y lee el dataset. Reemplaza <TOKEN> con tu token de API de Apify.
Ejecutar de forma sincrona y obtener los elementos del dataset en una sola llamada:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sam-gov-opportunities-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchTerm":"cybersecurity","naics":"541511","withDetails":true,"maxOpportunities":50}'
Iniciar una ejecucion de forma asincrona:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sam-gov-opportunities-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchTerm":"janitorial","setAside":"WOSB","noticeTypes":["o","k"],"maxOpportunities":200}'
CLI de Apify:
apify call scrapers_lat/sam-gov-opportunities-scraper \--input '{"searchTerm":"software","maxOpportunities":25}'
Obtener resultados
Cada ejecucion escribe en un dataset. Obten los elementos como JSON, CSV o Excel cambiando format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginar datasets grandescurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> se devuelve como defaultDatasetId en el objeto de la ejecucion. Usa offset y limit para paginar conjuntos grandes. clean=true elimina los campos vacios e internos.
Facturacion y limites
- Pago por resultado. Se cobra por oportunidad devuelta (evento
result). Consulta la pestana de precios para el precio por resultado vigente. - Complemento de detalles. La descripcion completa, los contactos, el lugar de ejecucion, los codigos y los adjuntos son un evento
detailsde pago aparte, cobrado solo en planes de pago y solo despues de entregar una fila de resultado con datos de detalle reales. - Sin cargo por fallo. Las busquedas que no coinciden con ningun aviso no generan registros facturables, por lo que las ejecuciones vacias no cuestan nada.
- Limite de gasto respetado. Define
maxTotalChargeUsden la ejecucion; al alcanzarlo, el actor deja de emitir y cobrar mas resultados facturables. - Planes gratuitos de Apify estan limitados a 10 oportunidades por ejecucion y reciben los campos principales mas un fragmento de descripcion. Mejora tu plan para un
maxOpportunitiesmayor y el complemento de detalles completo.
Preguntas frecuentes
Necesito una clave de API de SAM.gov o data.gov? No. Este actor lee el servicio de datos publico de SAM.gov que alimenta la interfaz de busqueda oficial. No se requiere clave, cuenta ni inicio de sesion.
Una ejecucion devolvio 0 registros. Por que?
La palabra clave mas los filtros no coincidieron con ningun aviso activo. Relaja un filtro (quita naics, psc o setAside, amplia el rango de fechas), desactiva activeOnly para incluir avisos archivados o prueba una palabra clave mas amplia. Las ejecuciones sin resultados no se cobran.
Como filtro por industria?
Pasa un codigo naics de seis digitos (por ejemplo 541511) o un codigo psc de producto/servicio (por ejemplo D307).
Como encuentro oportunidades con reserva (set-aside)?
Define setAside con el codigo del programa, por ejemplo 8A, WOSB, SDVOSBC o HZC.
Por que faltan el NAICS, la descripcion y los contactos?
Esos campos provienen del detalle de cada aviso y son parte del complemento de pago withDetails (planes de pago). Activalo para incluirlos; las ejecuciones gratuitas igual reciben un fragmento de descripcion.
Los avisos de adjudicacion incluyen al adjudicatario?
Si. Para avisos adjudicados, el bloque award lleva el monto, numero, fecha y el nombre, UEI, codigo CAGE y ubicacion del adjudicatario. Antes de la adjudicacion, esos valores son null.
Puedo extraer un aviso especifico?
Si. Pon su ID de aviso o URL de SAM.gov en noticeIds y el actor obtiene esos avisos directamente.
Es una herramienta oficial de SAM.gov? No. Este actor es independiente y no tiene afiliacion con SAM.gov ni con el gobierno de EE. UU. Lee solo datos de oportunidades disponibles publicamente. Usalo conforme a los terminos de SAM.gov.
Scrapers relacionados
- Grants.gov Opportunity Scraper: oportunidades de subvenciones federales de EE. UU.
- USAspending Federal Award Scraper: adjudicaciones federales de EE. UU.
- Federal Register Document Scraper: documentos del Registro Federal de EE. UU.
- GovDeals Auctions Scraper: subastas de excedentes gubernamentales.
- FMCSA Carriers Scraper: datos de registro de transportistas de EE. UU.
- SEC EDGAR Company Filings Scraper: presentaciones ante la SEC por ticker o CIK.
Mas scrapers en scrapers.lat
Creado y mantenido por scrapers.lat, donde publicamos scrapers para plataformas publicas de EE. UU. y America Latina: registros de empresas, datos gubernamentales, finanzas, comercio electronico y mas. Explora el catalogo o solicita un scraper a medida en scrapers.lat.
Herramienta independiente, sin afiliacion con SAM.gov ni el gobierno de EE. UU. Accede solo a datos de oportunidades disponibles publicamente. Usala conforme a los terminos de servicio de SAM.gov.
