# US Contract Opportunities Feed — SAM.gov as Clean JSON (`jdepablos/samgov-opportunities-feed`) Actor

Active US federal contract opportunities from SAM.gov: agency, NAICS, set-aside, deadline with days remaining, contact and clean description. For bizdev teams and AI agents.

- **URL**: https://apify.com/jdepablos/samgov-opportunities-feed.md
- **Developed by:** [Juan de Pablos](https://apify.com/jdepablos) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 contract opportunity returneds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## US Contract Opportunities Feed — SAM.gov as Clean JSON

**Every active US federal contract opportunity, straight from SAM.gov, as structured JSON you can act on.** The US government posts tens of thousands of open solicitations, presolicitations and sources-sought notices. This Actor turns that firehose into a filtered feed: who is buying, what industry, when responses are due, and who to contact.

The data is public but the workflow is painful: SAM.gov search is slow, the export is clunky, and the notices bury the two things you actually triage on (deadline and set-aside). This feed puts them front and center.

### What you get per opportunity

```json
{
  "title": "Public Safety Data Analytics Platform & Support Services",
  "noticeType": "Solicitation",
  "agency": "GENERAL SERVICES ADMINISTRATION",
  "office": "FEDERAL ACQUISITION SERVICE",
  "naicsCodes": ["541511"],
  "pscCode": "DA01",
  "setAside": "Total Small Business Set-Aside",
  "publishDate": "2026-07-01T14:22:00+00:00",
  "responseDeadline": "2026-07-14T16:00:00+00:00",
  "daysUntilDeadline": 8,
  "placeOfPerformance": "Washington, DC, USA",
  "solicitationNumber": "47QTCA26R0011",
  "contactName": "Jane Smith",
  "contactEmail": "jane.smith@gsa.gov",
  "description": "The General Services Administration is seeking...",
  "url": "https://sam.gov/opp/abc123.../view"
}
```

Real volume: **45,000+ active opportunities** at any given time. Filter by keywords, NAICS codes, notice type, set-aside and deadline window to get exactly your slice.

### Why this beats checking SAM.gov by hand

- **`daysUntilDeadline` is computed for you**: sort by it, alert on it, skip anything you can't respond to in time.
- **Pre-award notices by default**: solicitations, presolicitations, combined synopsis and sources sought. Award notices only if you ask.
- **Set-aside filtering**: small business, 8(a), WOSB, SDVOSB and friends, as a simple substring match.
- **Clean text**: descriptions arrive with the HTML stripped, ready for a CRM, a spreadsheet or an LLM prompt.
- **Contracting officer contact included**: name and official email, because that is the response channel.

### Use cases

- **GovCon bizdev**: a daily run filtered by your NAICS codes and `dueWithinDays: 30`, feeding your pipeline.
- **Small business / set-aside hunting**: `setAsides: ["8(a)"]` plus your industry, and you see your addressable market.
- **Subcontracting radar**: watch what primes are bidding on in your niche.
- **AI agents**: "any new cybersecurity solicitations due this month?" becomes one tool call.

### Input

| Field | Description |
|---|---|
| `keywords` | Search terms, e.g. `"cloud migration"` |
| `naicsCodes` | Industry codes: `["541511", "541512"]` |
| `noticeTypes` | `o` solicitation, `p` presolicitation, `k` combined, `r` sources sought (default: all four) |
| `dueWithinDays` | Only opportunities still open and due within N days |
| `setAsides` | Substring match: `["small business", "8(a)"]` |
| `maxOpportunities` | Cap per run (default 50) |
| `includeDescription` | Full clean-text description (default true) |

### Use with AI agents (MCP)

This Actor is exposed as a tool on the [Apify MCP Server](https://mcp.apify.com):

```json
{
  "mcpServers": {
    "samgov-opportunities-feed": {
      "url": "https://mcp.apify.com?tools=jdepablos/samgov-opportunities-feed",
      "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }
    }
  }
}
```

Pairs well with [Startup Funding Feed](https://apify.com/jdepablos/startup-funding-feed) and [Insider Trading Feed](https://apify.com/jdepablos/insider-trading-feed): same official-source discipline, different corner of the market.

### Pricing

Pay per event: **one flat fee per opportunity returned**. You pay for exactly the notices that match your filters, and a run that returns no data is never charged.

### FAQ

**Is this the official SAM.gov API?** It reads the same public data that powers SAM.gov search, without requiring you to register for an API key. Every record links back to its official notice page.

**Why is `setAside` sometimes null?** Most notices have no set-aside designation. The field is populated when the government declares one.

**Can I get award notices?** Yes, add `"a"` to `noticeTypes`. The default focuses on notices you can still respond to.

**Does it include attachments?** Not yet. The `url` field takes you to the official page where attachments live. If you need them structured, open an issue.

### More data tools by this developer

- [Startup Funding Feed — SEC Form D rounds as clean JSON](https://apify.com/jdepablos/startup-funding-feed)
- [Insider Trading Feed — SEC Form 4 buys & sells](https://apify.com/jdepablos/insider-trading-feed)
- [Clinical Trials Watch — new & updated studies](https://apify.com/jdepablos/clinical-trials-watch)
- [Global Trademark Watch (TMview) — new filings & opposition deadlines](https://apify.com/jdepablos/trademark-watch-tmview)
- [USPTO Patent Watch — new patent filings by keyword](https://apify.com/jdepablos/patent-watch)
- [Spanish Company Feed (BORME) — daily registry acts as JSON](https://apify.com/jdepablos/borme-company-feed)

# Actor input Schema

## `keywords` (type: `string`):

Search terms, e.g. "software development" or "cybersecurity". Empty = all active opportunities.

## `naicsCodes` (type: `array`):

Industry codes, e.g. \["541511", "541512"] for IT services. Empty = all.

## `noticeTypes` (type: `array`):

Codes: o=Solicitation, p=Presolicitation, k=Combined Synopsis/Solicitation, r=Sources Sought, s=Special Notice, a=Award Notice. Default: pre-award notices you can still respond to.

## `dueWithinDays` (type: `integer`):

Only opportunities whose response deadline is within N days from now (and not past).

## `setAsides` (type: `array`):

Substring match, e.g. \["small business", "8(a)", "wosb", "sdvosb"]. Empty = all.

## `maxOpportunities` (type: `integer`):

Cap per run.

## `includeDescription` (type: `boolean`):

Full notice description as clean text (HTML stripped).

## Actor input object example

```json
{
  "noticeTypes": [
    "o",
    "p",
    "k",
    "r"
  ],
  "maxOpportunities": 50,
  "includeDescription": true
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("jdepablos/samgov-opportunities-feed").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("jdepablos/samgov-opportunities-feed").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call jdepablos/samgov-opportunities-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jdepablos/samgov-opportunities-feed",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/KNSrKkAb3j3DPlZ3D/builds/S3KIU8DmRtJQYv60a/openapi.json
