# SAM.gov Vendor Screening — Exclusions & Registration Check (`leadharbor/sam-gov-vendor-screening`) Actor

Screen subcontractors/vendors against the SAM.gov exclusions (debarment) list and check SAM registration status + expiry. Built for government contractors who must screen before teaming. Clean, timestamped audit report.

- **URL**: https://apify.com/leadharbor/sam-gov-vendor-screening.md
- **Developed by:** [Mohammed Samaan](https://apify.com/leadharbor) (community)
- **Categories:** Other, News, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## SAM.gov Vendor Screening — Exclusions & Registration Check

Screen any list of subcontractors or vendors against the **SAM.gov exclusions
(debarment) list** and check each one's **SAM registration status and expiry** —
in one run, with a clean, timestamped report you can keep as an **audit record**.

Built for **government contractors** (primes, mid-size GovCon firms, grant
recipients) who are required to screen vendors *before teaming* and re-verify on
a schedule. Missing an excluded vendor can mean penalties up to **$100,000 per
item plus treble damages** — this turns that scary, recurring chore into a
30-second check.

> ⚖️ **This is a screening aid, not legal advice.** It surfaces official SAM.gov
> data plus an audit timestamp. Always confirm a potential match by UEI on
> SAM.gov before acting on it. You own the final decision.

### What you get per vendor

| Field | Meaning |
|---|---|
| `risk` | Plain verdict: CLEAR / REVIEW / **EXCLUDED — DO NOT TEAM** / REGISTRATION EXPIRED / EXPIRING SOON / NOT IN SAM |
| `excluded` | Exclusion-list result: CLEAR / REVIEW / EXCLUDED |
| `exclusionMatches` | Any possible debarment matches (name, type, excluding agency) |
| `registrationStatus` | Active / Expired / NOT\_FOUND |
| `registrationExpiration` + `daysUntilExpiration` | When SAM registration lapses |
| `uei` | Unique Entity ID (when found) |
| `checkedAt` | UTC audit timestamp — proof of when you screened |

### Input

| Field | What it does |
|---|---|
| `vendors` | One company per line. Add the 12-char UEI for exact matching: `Acme Corp \| ZQGGHJH74DW7` |
| `samApiKey` | **Your free SAM.gov public API key** (see below) |
| `checkExclusions` | Screen the debarment list (default on) |
| `checkRegistration` | Check registration status + expiry (default on) |
| `expiringWithinDays` | Flag registrations lapsing within N days (default 60) |

### Getting your free SAM.gov API key (2 minutes)

1. Sign in (or register free) at **sam.gov**
2. Open **Account Details** (top-right, under your name)
3. Enter your password to reveal the **Public API Key**
4. Copy it into the `samApiKey` field

The API and the data are free; you only pay this actor's per-vendor run fee.

### How it works

For each vendor we call SAM.gov's **official** Exclusions API and Entity
Management API (no scraping, no anti-bot fragility), normalize company-name
variants (Inc/LLC/Ltd etc.), classify the risk, and write one tidy row with the
audit timestamp. Exact-name exclusion hits are flagged EXCLUDED; partial hits
are flagged REVIEW so a human can verify by UEI.

### Pricing

Pay-per-result: a small fee per **vendor screened**. Re-run monthly to stay
compliant — most teams screen the same vendor list every billing cycle, so it's
recurring by nature.

### Compliance & fair use

Uses only public SAM.gov data via the official API. This tool helps you *find
and document* potential exclusions and registration lapses; it does **not** make
eligibility determinations and is **not** legal advice. Confirm matches on
SAM.gov before relying on them.

### Deploy

See [`DEPLOY.md`](./DEPLOY.md) — push it live with the Apify CLI in ~5 minutes.

# Actor input Schema

## `vendors` (type: `array`):

One company per line. Optionally add the 12-char UEI for an exact match, e.g. "Acme Corp | ZQGGHJH74DW7".

## `samApiKey` (type: `string`):

Get one free: sign in at sam.gov → Account Details → 'Public API Key'. Used to call SAM's official API.

## `checkExclusions` (type: `boolean`):

Flag vendors that appear on the federal exclusions list. This is the screening you legally must do before teaming.

## `checkRegistration` (type: `boolean`):

Report whether the vendor's SAM registration is Active and when it expires.

## `expiringWithinDays` (type: `integer`):

Mark a vendor 'EXPIRING SOON' if its SAM registration lapses within this many days.

## `apiBase` (type: `string`):

Leave as default. Use https://api-alpha.sam.gov/entity-information for SAM's alpha/testing environment.

## Actor input object example

```json
{
  "vendors": [
    "Acme Corporation"
  ],
  "checkExclusions": true,
  "checkRegistration": true,
  "expiringWithinDays": 60,
  "apiBase": "https://api.sam.gov/entity-information"
}
```

# 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 = {
    "vendors": [
        "Acme Corporation"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("leadharbor/sam-gov-vendor-screening").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 = { "vendors": ["Acme Corporation"] }

# Run the Actor and wait for it to finish
run = client.actor("leadharbor/sam-gov-vendor-screening").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 '{
  "vendors": [
    "Acme Corporation"
  ]
}' |
apify call leadharbor/sam-gov-vendor-screening --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=leadharbor/sam-gov-vendor-screening",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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