SAM.gov Federal Contractor Entity Scraper
Pricing
from $2.50 / 1,000 results
SAM.gov Federal Contractor Entity Scraper
Scrape federal contractor registrations from SAM.gov API. Search by NAICS code, state, business type, certification and more. Extract UEI, CAGE code, business names, addresses, NAICS codes, small business certifications and exclusion status. Requires free SAM.gov API key.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
20 hours ago
Last modified
Categories
Share
SAM.gov Federal Contractor Entity Scraper — UEI, CAGE, NAICS & Small Business Set-Aside Data for US GovCon Teams
The fastest way to pull structured federal contractor records from SAM.gov on Apify. Search the official US System for Award Management registry by NAICS code, state, city, certification, or registration window — and get back clean JSON with UEI, CAGE code, legal name, DBA, primary & secondary NAICS, 8(a) / HUBZone / SDVOSB / WOSB certifications, exclusion status, registration dates, and physical address — ready for GovCon BD, capture management, teaming, due diligence, and federal lead-generation pipelines.
What This Actor Does
The SAM.gov Federal Contractor Entity Scraper is a production-ready Apify Actor that turns the official US System for Award Management (SAM.gov) Entity Management API v3 into structured, query-ready JSON. SAM.gov is the single authoritative federal registry for every business, non-profit, university, state/local government, and foreign vendor that wants to receive a federal contract, grant, or assistance award — and this actor extracts that registry with industry-grade filters and full normalization.
Every federal prime contractor and most federal subcontractors must register on SAM.gov, get a 12-digit Unique Entity Identifier (UEI) (the post-2022 replacement for DUNS), assert their NAICS codes, and disclose set-aside eligibility (Small Business, 8(a), HUBZone, SDVOSB, WOSB, EDWOSB, VOSB, etc.). This actor lets you slice that universe in seconds.
In a single run the actor can return up to 10,000 entity records per query (the SAM.gov sync API ceiling), each containing:
- UEI (SAM) — 12-character federal Unique Entity Identifier
- CAGE Code — 5-character Commercial and Government Entity identifier
- Legal Business Name & DBA — registered legal name plus trade name
- Registration Status — Active / Expired
- Registration / Activation / Expiration dates — full registration lifecycle
- Primary NAICS + full NAICS list — every industry code the entity claims
- Business Types & Certifications — Small Business, 8(a), HUBZone, SDVOSB, WOSB, Woman Owned, Veteran Owned, Minority Owned, Tribally Owned, and dozens more
- Entity Structure — LLC, Corporation, Partnership, Sole Proprietorship, Government, etc.
- State of Incorporation
- Physical Address — street, city, state, ZIP, country
- Exclusion Status — flagged if the entity is debarred or suspended from federal contracting
- Purpose of Registration — All Awards, Federal Assistance Awards Only, etc.
- scrapedAt — ISO-8601 timestamp for audit logs
The result is a federal contractor database you control, refreshed on demand, filtered exactly how your BD pipeline needs it — no manual SAM.gov searching, no copy/paste, no scraping headaches.
Why scrape SAM.gov yourself when this exists?
SAM.gov publishes a public API, but turning it into a usable contractor list is harder than it looks. The Apify community keeps running into the same wall:
- SAM.gov caps pages at 10 records — pulling 10,000 entities requires 1,000 paginated calls
- The free API tier is rate-limited to 1,000 requests per day — a naive loop will burn through that quota in minutes
- Records arrive as deeply nested JSON (
entityRegistration.coreData.physicalAddress.stateOrProvinceCode) — every consumer writes the same flattening code - NAICS codes live in three different places (
primaryNaics,naicsList[], and PSC lists) — easy to miss - Set-aside certifications are split across
businessTypeList,sbaBusinessTypeList, and FAR responses — easy to undercount - Date formats are inconsistent — some fields are
YYYY-MM-DD, others areMM/DD/YYYY, some are ISO with timezones - Exclusion status uses cryptic flags (
Y,N,D) — must be decoded - SAM.gov's UI search is slow, captcha-protected, and not designed for bulk export
- The bulk extract file is gigabytes of zipped XML and ships every 24 hours — fine for warehouses, useless for a quick BD pull
- API key signup is free but undocumented in plain English — most developers waste an afternoon figuring out where the key lives in the Profile page
This actor solves the entire stack: it handles pagination, rate limiting, deep-nested JSON flattening, NAICS/certification deduplication, date normalization, exclusion decoding, and produces a flat, ingest-ready dataset.
Quick Start
One-Click Run
- Click "Try for free" on the Apify Store page
- Paste your free SAM.gov API key (sign up at sam.gov → Profile → Generate Public API Key)
- Add filters — for example,
naicsCode: "541512"(Computer Systems Design) andstateCode: "VA" - Hit Start — a few seconds later your federal contractor dataset is downloadable as JSON, CSV, Excel, HTML, XML, or JSONL
API Run (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("haketa/sam-gov-federal-contractor-scraper").call(run_input={"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "A", # Active only"naicsCode": "541512", # Computer Systems Design Services"stateCode": "VA", # Virginia"businessType": "Small Business","excludeExcluded": True,"maxRecords": 500})for entity in client.dataset(run["defaultDatasetId"]).iterate_items():print(entity["ueiSAM"], entity["legalBusinessName"], entity["city"], entity["businessTypes"])
API Run (Node.js / TypeScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('haketa/sam-gov-federal-contractor-scraper').call({apiKey: 'YOUR_FREE_SAM_GOV_API_KEY',registrationStatus: 'A',naicsCode: '236220', // Commercial Building ConstructionstateCode: 'TX',city: 'San Antonio',businessType: 'HUBZone',maxRecords: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} HUBZone construction firms in San Antonio, TX`);
API Run (cURL)
curl -X POST "https://api.apify.com/v2/acts/haketa~sam-gov-federal-contractor-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "A","naicsCode": "541330","stateCode": "MD","businessType": "8(a)","maxRecords": 1000}'
How It Works
This actor talks directly to the SAM.gov Entity Management API v3 — no headless browser, no Playwright, no session juggling. Every request is a plain HTTPS GET with your API key and a clean set of query parameters.
Source endpoint
| Endpoint | Purpose |
|---|---|
https://api.sam.gov/entity-information/v3/entities | Official Entity Management API — searches and returns registered entities with full registration, core data, and assertions sections |
https://sam.gov (UI) | Where you sign up for the free public API key (Profile → Generate Public API Key) |
includeSections=entityRegistration,coreData,assertions | Tells SAM.gov to return registration metadata, address/structure, and NAICS/certification assertions in one call |
Engineering details
- Direct HTTPS GET via
got-scraping— every call is a single REST request, no browser overhead - Auto-pagination with the SAM.gov
page=0&size=10model (10 is the hard server-side max per page) - Rate-limit safe — configurable
requestDelay(default 600 ms) keeps you below SAM.gov's 1,000-request/day quota - Section-aware fetching — only requests
entityRegistration,coreData,assertionsto keep payloads small - Deep-JSON flattening — collapses
entityRegistration.coreData.physicalAddress.stateOrProvinceCodeinto a flatstatefield - NAICS deduplication — merges
primaryNaicswith everynaicsList[].naicsCodeinto a single canonical array - Certification merging — unions
businessTypeList[].businessTypeDescwithsbaBusinessTypeList[].sbaBusinessTypeDescinto one deduplicatedbusinessTypesarray - Date normalization — every date is rewritten to
YYYY-MM-DD, regardless of how the API returns it - Exclusion decoding — turns the cryptic
exclusionStatusFlag(Y/N/D) into a cleanisExcludedboolean - API key redaction in logs — your key never appears in Apify run logs
- Graceful HTTP handling — 403 (bad key), 429 (rate limit), and 5xx responses are caught with helpful messages
- Sync-API ceiling enforced — the actor stops at 10,000 records per run (SAM.gov's hard limit for synchronous pagination)
Input Parameters
{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "A","naicsCode": "541512","stateCode": "VA","city": "Arlington","businessType": "Small Business","excludeExcluded": true,"registrationDateFrom": "01/01/2023","registrationDateTo": "12/31/2026","maxRecords": 500,"pageSize": 10,"requestDelay": 600}
Parameter reference
| Parameter | Type | Default | Description |
|---|---|---|---|
apiKey | string | required | Your free SAM.gov public API key. Sign up at sam.gov → Profile → Generate Public API Key. Stored as a secret in Apify. |
registrationStatus | string | A | A = Active registrations, E = Expired only, all = both. |
naicsCode | string | "" | 6-digit NAICS industry code (e.g., 541330 Engineering Services, 541512 Computer Systems Design, 236220 Commercial Building Construction, 238210 Electrical Contractors). Empty = all industries. |
stateCode | string | "" | 2-letter US state code (e.g., VA, TX, CA, MD, DC). Filters by physical address state. |
city | string | "" | City name (e.g., Arlington, Huntsville, San Diego). Case-insensitive. |
businessType | string | "" | Certification or business type label exactly as SAM.gov stores it. Examples: Small Business, Woman Owned Business, Veteran Owned Business, HUBZone, 8(a), Service Disabled Veteran Owned Business. |
excludeExcluded | boolean | true | When true, drops entities currently debarred or suspended from federal contracting (sets exclusionStatusFlag=N on the API call). |
registrationDateFrom | string | "" | MM/DD/YYYY lower bound on initial registration date. Combine with registrationDateTo to scope a window. |
registrationDateTo | string | "" | MM/DD/YYYY upper bound on initial registration date. |
maxRecords | integer | 200 | Cap the number of records saved to the dataset. 0 means unlimited (capped at the 10,000 SAM.gov sync ceiling). |
pageSize | integer | 10 | API page size. SAM.gov enforces a hard maximum of 10. |
requestDelay | integer | 600 | Milliseconds between API requests. Stay at or above 500 ms to avoid 429 throttling. |
proxyConfiguration | object | none | Optional Apify Proxy settings. Rarely needed — SAM.gov authenticates by API key, not IP. |
Output Schema
Each entity record is a flat JSON object — easy to load straight into Postgres, Snowflake, BigQuery, Salesforce, or a Google Sheet.
Identity fields
| Field | Type | Description |
|---|---|---|
ueiSAM | string | 12-character Unique Entity Identifier — the federal primary key (replaced DUNS in 2022) |
cageCode | string | 5-character Commercial and Government Entity code (DLA-assigned) |
legalBusinessName | string | Legal entity name on the registration |
dbaName | string | null | Doing Business As / trade name |
Registration lifecycle
| Field | Type | Description |
|---|---|---|
registrationStatus | string | Active or Expired |
registrationDate | string | Initial registration date (YYYY-MM-DD) |
activationDate | string | Most recent activation date (YYYY-MM-DD) |
expirationDate | string | Current registration expiration date (YYYY-MM-DD) |
purposeOfRegistration | string | E.g., All Awards, Federal Assistance Awards Only |
isExcluded | boolean | true when SAM.gov flags the entity as debarred/suspended |
Business structure & geography
| Field | Type | Description |
|---|---|---|
entityStructure | string | LLC, Corporation, Partnership, Sole Proprietorship, Government, Non-Profit, etc. |
stateOfIncorporation | string | 2-letter state code where the entity is incorporated |
street | string | Physical address street line |
city | string | Physical address city |
state | string | Physical address state code |
zipCode | string | Physical address ZIP (5 or 9 digit) |
country | string | 3-letter country code (USA, etc.) |
Industry & certifications
| Field | Type | Description |
|---|---|---|
primaryNaics | string | 6-digit primary NAICS industry code |
naicsCodes | array<string> | Every NAICS code the entity has registered (includes primary) |
businessTypes | array<string> | Deduplicated union of businessTypeList and sbaBusinessTypeList — contains both general types (LLC, Manufacturer of Goods) and SBA certifications (8(a), HUBZone, WOSB, etc.) |
Metadata
| Field | Type | Description |
|---|---|---|
scrapedAt | string | ISO-8601 timestamp of when the record was extracted |
Example: 8(a) small business engineering services firm
{"ueiSAM": "ABC12DEF34GH","cageCode": "9ZZZ9","legalBusinessName": "ACME FEDERAL ENGINEERING LLC","dbaName": "ACME FED","registrationStatus": "Active","registrationDate": "2018-06-12","activationDate": "2025-04-03","expirationDate": "2026-04-02","purposeOfRegistration": "All Awards","isExcluded": false,"entityStructure": "Limited Liability Company","stateOfIncorporation": "VA","primaryNaics": "541330","naicsCodes": ["541330", "541512", "541611", "541690"],"businessTypes": ["Limited Liability Company","Small Business","8(a) Program Participant","Self-Certified Small Disadvantaged Business","Minority Owned Business"],"street": "1234 CRYSTAL DR STE 500","city": "Arlington","state": "VA","zipCode": "22202","country": "USA","scrapedAt": "2026-05-16T14:22:10.421Z"}
Example: HUBZone construction firm in Texas
{"ueiSAM": "XYZ99QRS11TU","cageCode": "7AB12","legalBusinessName": "LONE STAR HUBZONE BUILDERS INC","dbaName": null,"registrationStatus": "Active","registrationDate": "2014-11-20","activationDate": "2025-09-15","expirationDate": "2026-09-14","purposeOfRegistration": "All Awards","isExcluded": false,"entityStructure": "Corporate Entity (Not Tax Exempt)","stateOfIncorporation": "TX","primaryNaics": "236220","naicsCodes": ["236220", "237310", "238210", "238910"],"businessTypes": ["Corporation","Small Business","HUBZone","Veteran Owned Business"],"street": "5678 COMMERCE ST","city": "San Antonio","state": "TX","zipCode": "78207","country": "USA","scrapedAt": "2026-05-16T14:22:11.998Z"}
Registration Status, Certifications & Code Reference
Registration Status values
| Code (input) | Output value | Meaning |
|---|---|---|
A | Active | Registration is current and the entity is eligible for federal awards |
E | Expired | Registration lapsed — entity must renew before bidding |
all | both | Returns Active and Expired records together |
Small business certifications & set-aside types you can filter on
| Certification | Notes |
|---|---|
Small Business | Meets SBA size standard for the entity's primary NAICS |
8(a) | SBA Business Development Program participant (socially & economically disadvantaged) |
HUBZone | Historically Underutilized Business Zone certified |
Woman Owned Business | At least 51% woman-owned (self-certified or WOSB-certified) |
WOSB | SBA-certified Woman Owned Small Business |
EDWOSB | Economically Disadvantaged Woman Owned Small Business |
Veteran Owned Business | At least 51% veteran-owned |
SDVOSB / Service Disabled Veteran Owned Business | Service-Disabled Veteran-Owned Small Business |
Minority Owned Business | Self-certified minority ownership |
Native American Owned Business | Including Tribally Owned, Alaska Native Corporation, NHO |
Self-Certified Small Disadvantaged Business | SDB self-certification |
Common NAICS codes you'll filter on
| NAICS | Industry |
|---|---|
236220 | Commercial and Institutional Building Construction |
237310 | Highway, Street, and Bridge Construction |
238210 | Electrical Contractors and Other Wiring Installation |
334511 | Search, Detection, Navigation, Guidance & Aero Systems |
541330 | Engineering Services |
541512 | Computer Systems Design Services |
541611 | Administrative Management & General Management Consulting |
541614 | Process, Physical Distribution & Logistics Consulting |
541618 | Other Management Consulting Services |
541690 | Other Scientific & Technical Consulting Services |
541713 | R&D in Nanotechnology |
541715 | R&D in Physical, Engineering and Life Sciences (except Nano/Bio) |
561210 | Facilities Support Services |
561612 | Security Guards and Patrol Services |
611430 | Professional and Management Development Training |
621112 | Offices of Physicians, Mental Health Specialists |
Entity structure values
| Value | Description |
|---|---|
Corporate Entity (Tax Exempt) | 501(c)(3) and similar |
Corporate Entity (Not Tax Exempt) | C-Corp or S-Corp |
Limited Liability Company | LLC |
Partnership or Limited Liability Partnership | General Partnership, LP, LLP |
Sole Proprietorship | Individual |
U.S. Government Entity | Federal/State/Local government bodies |
Foreign Owned and Located | Foreign entity, foreign address |
International Organization | NATO, UN, etc. |
Use Cases
Government Contracting (GovCon) Business Development
GovCon BD teams at primes and growing small businesses use this dataset to:
- Build target lists of teaming partners filtered by NAICS, state, and set-aside status — find every 8(a) cyber firm in Maryland, or every SDVOSB engineering shop in San Diego
- Identify incumbent contractors by NAICS + geography for capture planning before an RFP drops
- Spot newly registered competitors by using
registrationDateFromto surface entities that came on-board in the last 30/60/90 days - Validate teaming partner eligibility with
isExcludedand current registration status before signing a teaming agreement - Refresh CRM accounts (Salesforce GovCon Suite, HubSpot, Pipedrive) with current UEI, CAGE, NAICS, and address data on a nightly schedule
- Power capture dashboards with live counts of small-business pools per NAICS — critical for sole-source and set-aside RFI/Sources Sought responses
Federal Contractor Lead Generation
Lead gen agencies, fractional CFOs, and B2B SaaS vendors selling to GovCon use the dataset to:
- Generate ICP-aligned federal contractor lead lists — e.g., all VA-incorporated 8(a) firms with revenue NAICS in 541xxx
- Append UEI/CAGE to existing prospect databases for federal-readiness scoring
- Build outbound campaigns targeting newly-active contractors who haven't yet bought your category of tooling
- Segment by entity structure — LLC vs Corporation vs Sole Proprietor — to tailor messaging
- Enrich LinkedIn Sales Navigator exports with SAM.gov set-aside flags and CAGE codes
Defense Contractor Research & Supply Chain Mapping
Defense industrial base analysts, DoD program offices, and prime contractors use the dataset to:
- Map the supplier base for any NAICS code (e.g., 334511 navigation systems) across all 50 states
- Identify HUBZone and SDVOSB primes for socioeconomic goaling
- Enumerate FedRAMP-relevant vendors by combining NAICS 541512 / 518210 with small-business filters
- Track CMMC readiness pools by pulling all DIB-relevant NAICS and overlaying with cybersecurity certifications
- Build subcontractor pipelines for OTAs and SBIR Phase III transitions
- Geographic supply chain resilience analysis — concentration of critical-component suppliers by state/region
Small Business Set-Aside Discovery
SBA, PTAC, APEX Accelerator counselors, and small-business primes use the dataset to:
- Find every 8(a), HUBZone, SDVOSB, WOSB, and EDWOSB firm in a county, congressional district, or state
- Connect mentor-protégé candidates by matching small SDBs to large primes within the same NAICS family
- Audit set-aside pool depth for an upcoming RFP — is the pool deep enough to set aside?
- Track HUBZone map changes by pulling registered HUBZone firms quarterly and detecting drop-offs
- Support outreach events with up-to-date attendee target lists per certification category
FedRAMP & Federal Cybersecurity Vendor Enumeration
Federal cyber program offices, CISA partners, and FedRAMP Joint Authorization Board reviewers use the dataset to:
- Identify candidate FedRAMP authorization sponsors — registered SAM.gov entities with cyber NAICS (541512, 518210, 541519)
- Map cloud service providers by state and entity structure
- Build awareness-campaign lists for new federal cyber mandates
- Cross-reference cyber NAICS firms with FAR 52.204-21 / CMMC readiness data
- Identify SDVOSB cyber boutiques for cyber set-aside contracts
M&A, Due Diligence & Investor Research
Private equity firms targeting GovCon roll-ups, investment bankers, and corporate development teams use the dataset to:
- Build target lists of acquisition candidates filtered by NAICS, geography, and entity age (registrationDate window)
- Verify SAM.gov registration health of an acquisition target — expired registration is a deal-killer
- Confirm exclusion status as part of pre-LOI red-flag screening
- Validate self-reported certifications during diligence by checking the authoritative SAM.gov record
- Map a target's NAICS footprint to assess revenue-mix concentration risk
- Track post-close registration changes to detect compliance lapses
Compliance, Vendor Risk & Procurement Due Diligence
Procurement teams at primes, state agencies, and large enterprises use the dataset to:
- Verify SAM.gov registration of any vendor before issuing a federal-flow-down PO
- Screen against SAM.gov exclusions to comply with FAR 9.405 and 2 CFR 200.214
- Automate monthly vendor re-verification with a scheduled Apify run + downstream diff job
- Maintain audit-ready logs with
scrapedAttimestamps proving when verification ran - Catch newly debarred entities within 24 hours of SAM.gov updating exclusion records
- Document SBA set-aside compliance for federal flow-down certifications
Recruiting & Talent Intelligence
GovCon recruiters, defense industry executive search firms, and federal staffing agencies use the dataset to:
- Build company target lists for sourcing by NAICS and clearance-relevant geography (DC metro, Huntsville AL, Colorado Springs CO, Charleston SC)
- Identify newly registered firms likely to be staffing up
- Map competitor concentration in a metro before opening a regional recruiting office
- Power BD outreach for staffing services to small primes that recently activated
Academic & Policy Research
Think tanks, university policy programs, and Congressional research staff use the dataset to:
- Quantify small-business participation in the federal marketplace by NAICS, region, and certification
- Study geographic distribution of federal contractor capacity across rural vs urban states
- Analyze HUBZone program effectiveness by tracking certified-firm counts year over year
- Cover federal contracting trends for journalists and policy briefs
- Inform legislative proposals on socioeconomic set-asides with current empirical data
Journalism & Investigative Data Reporting
Investigative reporters covering federal spending, defense, and government accountability use the dataset to:
- Identify all registered contractors at a specific address or in a specific city
- Link CAGE codes from awards data (USAspending.gov, FPDS) back to registered entities
- Cross-reference debarred entities with active contract awards to surface compliance failures
- Map shell-company patterns by clustering entities with shared addresses or registration dates
- Investigate set-aside abuse by checking certification claims against ownership records
Sample Queries & Recipes
Recipe 1: All active 8(a) cybersecurity firms in the DC metro
{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "A","naicsCode": "541512","stateCode": "VA","businessType": "8(a)","maxRecords": 1000}
Run the same input three times, swapping stateCode to MD and DC to cover the full Capital Region.
Recipe 2: Newly registered SDVOSB contractors in the last 6 months
{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "A","businessType": "Service Disabled Veteran Owned Business","registrationDateFrom": "11/16/2025","registrationDateTo": "05/16/2026","maxRecords": 2000}
Recipe 3: HUBZone construction firms statewide in Texas
{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "A","naicsCode": "236220","stateCode": "TX","businessType": "HUBZone","excludeExcluded": true,"maxRecords": 500}
Recipe 4: Every active engineering services entity in California
{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "A","naicsCode": "541330","stateCode": "CA","excludeExcluded": true,"maxRecords": 5000}
Recipe 5: All registered contractors at a specific city (compliance audit)
{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "all","city": "Huntsville","stateCode": "AL","excludeExcluded": false,"maxRecords": 10000}
Recipe 6: Quick 50-record sample to validate setup
{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "A","naicsCode": "541611","maxRecords": 50}
Recipe 7: Find recently expired registrations (lapsed contractors)
{"apiKey": "YOUR_FREE_SAM_GOV_API_KEY","registrationStatus": "E","stateCode": "FL","naicsCode": "238210","maxRecords": 1000}
Use this to identify lapsed competitors — many will re-register, but some have exited the market and are leaving incumbent contracts unclaimed.
Integration Examples
Google Sheets (via Apify Integration)
- Create an Apify Schedule that runs the actor nightly at 06:00 ET
- Attach the Save to Google Sheets integration to the schedule
- Each morning your Sheet contains the freshest set-aside/NAICS-filtered contractor list — perfect for BD weekly pipeline reviews
Make.com / Zapier / n8n
Use the Apify connector to trigger downstream automations on:
- New entities appearing for a given NAICS/state combo (diff against previous run)
- Registration expirations within 30/60/90 days (downstream renewal-reminder campaign)
- Newly excluded entities (alert procurement to pause vendor)
- CAGE/UEI changes (mergers, name changes — material for capture intel)
Power BI / Tableau / Looker
Connect Apify's REST API as a data source, refresh after every scheduled run, and build GovCon dashboards covering:
- Active contractor count per NAICS, per state, per certification
- Small-business pool depth per RFP NAICS
- Geographic concentration heatmaps for the federal supplier base
- Quarter-over-quarter growth in HUBZone, 8(a), and SDVOSB pools
Postgres / Snowflake / BigQuery
Use the Apify webhook integration to POST run results to your ingestion endpoint after each scheduled run, then MERGE on ueiSAM to keep a master federal contractor table fresh. UEI is your federal primary key — ueiSAM joins cleanly with USAspending.gov awards and FPDS contract data.
Salesforce / HubSpot CRM Enrichment
Trigger an Apify run nightly, then upsert against Account records keyed on ueiSAM or cageCode. Field-level changes (new certification, new NAICS, status flip from Active to Expired) can spawn Tasks or open Cases automatically — making your GovCon CRM self-healing.
Federal Awards Data (USAspending.gov / FPDS) Join
Both USAspending.gov and FPDS-NG publish award records keyed on the same UEI/CAGE you'll get from this actor. Combine the two for a complete picture: who is registered (this actor) + who is actually winning (USAspending). The join key is ueiSAM (recipient_uei) for awards after April 2022; cageCode for older awards.
Major Federal Contracting Markets
| Metro | State | Why it matters for GovCon |
|---|---|---|
| Washington–Arlington–Alexandria | DC / VA / MD | Pentagon, every cabinet agency HQ, prime contractor HQs — the densest federal contracting market in the world |
| Huntsville | AL | Army Materiel Command, NASA MSFC, FBI, missile defense corridor |
| Dayton | OH | Wright-Patterson AFB, AFRL, AFLCMC — Air Force R&D and acquisition hub |
| San Diego | CA | Navy SPAWAR/NIWC Pacific, USMC, defense electronics cluster |
| Norfolk–Newport News | VA | Atlantic Fleet HQ, naval shipbuilding (Newport News Shipbuilding) |
| Colorado Springs | CO | NORTHCOM, NORAD, Space Force HQ, Air Force Academy |
| Charleston | SC | NIWC Atlantic, Joint Base Charleston, growing defense-IT cluster |
| Tampa | FL | CENTCOM, SOCOM, MacDill AFB — special operations contracting hub |
| Boston | MA | Hanscom AFB, MIT Lincoln Lab, biotech/DARPA crossover |
| San Antonio | TX | JBSA, 16th Air Force (cyber), AETC, large HUBZone footprint |
| Oak Ridge / Knoxville | TN | DOE national lab corridor — Oak Ridge NL ecosystem |
| Albuquerque | NM | Sandia NL, Kirtland AFB, Los Alamos within driving distance |
| Houston | TX | NASA JSC, large set-aside contractor pool, port-related federal work |
| Honolulu | HI | INDOPACOM, Pearl Harbor, Pacific Air Forces |
| Anchorage / Fairbanks | AK | NORTHCOM Alaska, JBER, strategic Arctic operations |
Cost & Performance
| Metric | Value |
|---|---|
| Engine | Direct REST API (got-scraping) — no browser overhead |
| Authentication | Free SAM.gov public API key (1,000 requests/day) |
| Data freshness | Live at run time — SAM.gov updates the registry continuously |
| Page size | 10 records per page (SAM.gov hard limit) |
| Sync API ceiling | 10,000 records per query |
| Runtime (200 records, default) | ~30–60 seconds |
| Runtime (1,000 records) | ~3–5 minutes (with 600 ms request delay) |
| Runtime (10,000 records, max) | ~30–45 minutes (rate-limit governed) |
| Cost per run | Pay-per-event — typically pennies per hundred records |
| Pricing model | Pay-per-event (start + per dataset item) |
| Proxy required | No — SAM.gov authenticates by API key, not IP |
| Concurrency | Safe to run multiple parallel queries with different filters (mind your 1,000/day key quota) |
| Memory footprint | 256 MB is sufficient |
Compliance, Privacy & Legal Notes
- Public data only — every field returned comes from SAM.gov, which is a public US federal registry under FAR Subpart 4.11 and 41 USC 2313. Entities that register on SAM.gov consent to their registration data being publicly searchable.
- No PII / PHI — the dataset is business-entity data: legal name, business address, UEI, CAGE, NAICS, certifications. No SSNs, no DOBs, no personal contact information.
- No personal banking — SAM.gov banking/EFT data is restricted by API and is not retrieved.
- Exclusion data — the actor returns the
isExcludedflag; for full exclusion details, query the SAM.gov Exclusions API separately. - API terms of service — you must comply with SAM.gov's API terms when using your free API key. Don't share your key, and respect the 1,000-request/day quota.
- Re-distribution — federal contractor registration data is public; you can redistribute it. Many commercial GovCon platforms (Govini, GovTribe, HigherGov) build their core data layer on this same SAM.gov source.
- CAN-SPAM, TCPA, GDPR/CCPA — compliance with outbound marketing and data-protection laws is the responsibility of the data consumer. SAM.gov data is publicly available but business-entity addresses can still be regulated under state and international law when used for marketing.
Important: SAM.gov data must not be used for unlawful purposes including identity fraud, harassment, or unauthorized resale of API access. Use of the free API tier for commercial purposes is permitted within the rate limit.
Frequently Asked Questions
Do I need a SAM.gov API key?
Yes — but it's free. Sign up at sam.gov, verify your email, go to Profile → Generate Public API Key, and paste the key into the actor's apiKey input. The public tier allows 1,000 requests per day, which is enough for ~10,000 records per day at page size 10.
Do I need a federal account or a CAGE code to get an API key?
No. The public SAM.gov account is enough to generate an API key for the Entity Management API. You only need a federal/UEI-linked account if you want to register your own business on SAM.gov.
What's the difference between UEI and DUNS?
UEI (Unique Entity Identifier) is the 12-character federal identifier that replaced DUNS on April 4, 2022. SAM.gov now issues UEIs directly; DUNS is no longer used for federal contracting. All historical DUNS numbers were mapped to UEIs during the transition.
How fresh is the data?
Live at run time. SAM.gov updates the Entity Management registry as registrations are created, renewed, or expire — the actor pulls the current state on every run.
How many records can I get in a single run?
Up to 10,000 per query — the SAM.gov synchronous API ceiling. For larger pulls, split into multiple narrower queries (e.g., per state, per NAICS) and combine in your data warehouse.
What's the maximum page size?
SAM.gov enforces a hard limit of 10 records per page. The actor honors this — pageSize defaults to 10 and silently caps at 10 if you set it higher.
Why is registration data nested so deeply?
The SAM.gov API mirrors the SF-330 / FAR registration form structure, with entityRegistration, coreData, assertions, and certifications as top-level sections. This actor flattens the nested objects into a flat, ingest-ready schema so you don't have to.
Can I filter on multiple NAICS codes at once?
Not in a single query — SAM.gov's naicsCode parameter accepts one code per call. Run the actor once per NAICS and concatenate datasets, or filter by stateCode only and post-filter NAICS in your downstream pipeline.
Does this return Federal Assistance recipients (grants) too?
Yes — entities registered for purposeOfRegistration: "Federal Assistance Awards Only" are included alongside contract-eligible entities. Filter on purposeOfRegistration downstream if you only want contract-eligible firms.
Can I get historical contract awards from this actor?
No — this actor returns registration data (who is registered to bid). For award data, use USAspending.gov or FPDS-NG and join on ueiSAM or cageCode.
Can I get the SAM.gov exclusion list (debarred entities)?
The actor surfaces an isExcluded boolean. For the full debarment record (cause, agency, dates, period), query the SAM.gov Exclusions API separately. Setting excludeExcluded: false returns entities even when they are excluded, so you can detect newly-debarred contractors in compliance pipelines.
How does the actor handle rate limits?
It paces requests at a configurable requestDelay (default 600 ms). At 1,000 requests/day and 10 records/page, your free API key can support roughly 10,000 records/day. Increase requestDelay if you see 429 responses.
Will the actor work on the Apify Free Plan?
Yes — the actor uses minimal CU. Most runs finish well under a CU. The constraint is SAM.gov's 1,000-request/day API quota, not Apify's free tier.
Can I schedule the actor?
Yes — use Apify's built-in Scheduler with any cron expression. Nightly runs of a fixed query (e.g., "all VA 8(a) cyber firms") let you detect new registrations, expirations, and exclusions automatically.
Why did I get an empty dataset?
Most common reasons: (1) overly narrow filter combination — try removing city or businessType; (2) excludeExcluded=true combined with a NAICS where every active entity happens to be excluded — flip to false; (3) registrationDateFrom/To outside the realistic registration window; (4) invalid API key — check the run log for 403 errors.
What export formats are available?
JSON, CSV, Excel (XLSX), HTML, XML, RSS, and JSONL — directly from the Apify dataset view. The Apify API also supports streaming JSON Lines for warehouses.
Do I get email addresses or phone numbers?
SAM.gov does not publish individual point-of-contact emails or phone numbers in the Entity Management API for the public tier. The actor returns the business mailing address — for POC enrichment, layer in a separate contact-enrichment tool keyed on company name + city.
Can I detect mergers or name changes?
Yes — schedule the actor daily and diff legalBusinessName, dbaName, cageCode, and address fields between runs. A change in CAGE while UEI stays constant typically indicates a corporate restructuring; a UEI change indicates a true entity replacement.
Does this work for foreign entities?
Yes — foreign entities registered on SAM.gov (international vendors, NATO suppliers) appear in the dataset with country set to the appropriate 3-letter code (e.g., GBR, DEU, JPN). Filter on country downstream if you want US-only results.
How do I report a bug or request a feature?
Open an Issues thread on the Apify Store page or contact the developer through the Apify Console.
Related Apify Actors by Haketa
If you build pipelines around US contractor and licensing data, these related actors give you national coverage of the regulated-business universe:
- Arizona ROC Contractor License Scraper — state-licensed AZ contractors
- NC Licensing Board for General Contractors Scraper — North Carolina general contractors
- Washington L&I Contractor License Scraper — WA L&I licensed contractors
- California DCA Professional License Scraper — CA Department of Consumer Affairs licenses
- Virginia DPOR Professional License Scraper — VA regulated occupations
- Colorado Professional License Scraper — Colorado DORA licensees
- Minnesota DLI Professional License Scraper — MN Department of Labor & Industry
- Illinois IDFPR License Scraper — Illinois licensed professionals
- Ohio eLicense Scraper — all Ohio professional licenses
- Texas Pharmacy License Scraper (TSBP) — Texas pharmacy licensing
- TTB Alcohol Permittee Scraper — federal alcohol/tobacco/firearms permittees
- BBB Business Scraper — Better Business Bureau profiles for contact + reputation enrichment
Combine SAM.gov (federal registration) with state contractor boards (license validity) and BBB (reputation) to build a defensible federal+state+commercial vendor master.
Comparison vs. Alternatives
| Approach | Setup time | Data freshness | Cost (10K records) | Schema normalization | Audit log |
|---|---|---|---|---|---|
| This Apify actor | < 5 min (API key + run) | Live at run | Pay-per-event (pennies) | Built-in (flat schema, deduped NAICS/certs) | Automatic (scrapedAt) |
| Manual SAM.gov UI search + CSV export | Hours per query | Live | Free | None | None |
| Custom Python script on raw SAM.gov API | 1–3 days dev + ongoing maintenance | Live | Free + infra | DIY (deep JSON flattening) | DIY |
| SAM.gov nightly bulk extract (XML) | Days to set up + warehouse | Stale by ~24 hours | Free + warehouse | DIY (gigabytes of XML) | DIY |
| Commercial GovCon platforms (Govini, GovTribe, HigherGov) | Vendor onboarding | Live | $$$ subscription | Vendor-managed | Vendor-managed |
| FPDS-NG / USAspending only | Hours | Updated daily | Free | None — different schema | Limited |
The actor sits in the sweet spot: pay only for what you pull, get production-grade normalization, and own the dataset directly inside your Apify account.
Why Pay-Per-Event Pricing?
- You only pay when the actor runs — no monthly subscription
- Costs scale linearly with how many records you actually consume
- Transparent line-item billing inside the Apify Console
- No seat licenses, no per-user fees
- Free to evaluate —
maxRecords: 50is a few cents - Pairs naturally with Apify Schedules for predictable, low-cost daily refreshes
Changelog
| Version | Date | Notes |
|---|---|---|
| 1.0.0 | 2026-05 | Initial public release — direct SAM.gov Entity Management API v3 integration, full NAICS/state/city/business-type/exclusion filters, deep-JSON flattening, deduplicated NAICS and certifications, date normalization, exclusion decoding, pay-per-event pricing |
Keywords
SAM.gov scraper · SAM.gov API scraper · federal contractor database · federal contractor scraper · SAM.gov entity scraper · UEI lookup · UEI to CAGE lookup · CAGE code search · CAGE code scraper · NAICS code search · NAICS lookup by state · GovCon BD data · GovCon lead generation · federal contractor lead generation · small business set-aside lookup · 8(a) HUBZone SDVOSB WOSB vendor list · 8(a) contractor list · HUBZone certified firms · SDVOSB directory · WOSB EDWOSB directory · veteran owned business directory · woman owned small business search · service disabled veteran owned business · federal contractor verification · SAM registration scraper · System for Award Management scraper · federal vendor enumeration · FedRAMP vendor lookup · defense contractor research · defense industrial base mapping · DIB supplier scraper · federal supply chain mapping · teaming partner search · GovCon capture management data · federal procurement intelligence · APEX Accelerator data · PTAC contractor data · federal subcontractor list · SBA small business search · federal contractor lead list · DC metro 8(a) firms · Huntsville defense contractors · San Diego SDVOSB · NAICS 541512 contractors · NAICS 236220 contractors · NAICS 541330 engineering services · federal contractor CRM enrichment · UEI Salesforce enrichment · SAM.gov compliance monitoring · federal contractor due diligence · FAR 9.405 exclusion check · SAM exclusion scraper
Support
- Bug reports: Use the Issues tab on the Apify Store page
- Feature requests: Same place — please describe your GovCon use case so we can prioritize
- Direct contact: Through the Apify developer profile
If this actor saves your GovCon BD or compliance team hours each week, a 5-star rating on the Apify Store helps other federal contracting professionals find it. Thank you!