GovCon Monitor - SAM.gov + Expiring Contract Recompetes avatar

GovCon Monitor - SAM.gov + Expiring Contract Recompetes

Pricing

$3.00 / 1,000 contract records

Go to Apify Store
GovCon Monitor - SAM.gov + Expiring Contract Recompetes

GovCon Monitor - SAM.gov + Expiring Contract Recompetes

SAM.gov opportunities joined with USAspending award history. Recompete radar finds expiring incumbent contracts before they hit the street.

Pricing

$3.00 / 1,000 contract records

Rating

0.0

(0)

Developer

Public Signal Data

Public Signal Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Share

GovCon Monitor — SAM.gov Opportunities + Expiring-Contract Recompete Radar

Docs & recipes: pricing math, use-case playbooks and copy-paste API/MCP snippets · practical guide

Find expiring federal contracts before the RFP drops. One run of the default (recompete) mode returns rows like this — the incumbent to displace, the agency to call, and how long you have:

{
"record_type": "recompete",
"award_id": "70US0921F1DHS0015",
"recipient": "AVER LLC",
"awarding_agency": "Department of Homeland Security",
"awarding_sub_agency": "Cybersecurity and Infrastructure Security Agency",
"naics": "541512",
"naics_description": "COMPUTER SYSTEMS DESIGN SERVICES",
"amount": 4689264.0,
"start_date": "2021-09-13",
"end_date": "2027-08-03",
"days_until_expiry": 364,
"expiry_bucket": "6-12 months",
"description": "CDM DEFEND TASK ORDER...",
"usaspending_url": "https://www.usaspending.gov/award/CONT_AWD_...",
"recompete_posted": false,
"possible_recompete_notices": []
}

Federal contracting is a $700B/year market where the winners are decided long before the RFP is public. Every expiring contract is a future RFP: find it 12 months out and you can shape the requirement, meet the program office, and team up. Find it on SAM.gov and you're 6 months behind the incumbent.

Three modes, one actor

ModeWhat it returnsKey needed?
recompete (default)Expiring contracts whose period of performance ends within your horizon, from USAspending award history — the recompete radarNo key needed. With your free SAM.gov key, each row is additionally joined against live SAM.gov notices (recompete_posted)
opportunitiesNew SAM.gov notices matching your NAICS / agency / set-aside / keyword filters (official Get Opportunities API)Your free SAM.gov key (2-minute setup below)
awardsRecently signed contract awards from USAspendingNo key

The recompete↔notice join is the differentiator: for each expiring contract you see whether a recompete is already posted — and which expirations are still open field. Nobody else does this join.

Who this is for

  • GovCon BD / capture teams building a 12-month pipeline of expiring incumbent contracts
  • Small businesses hunting set-aside opportunities (8A, SDVOSBC, WOSB, HZC, …)
  • Consultants & teaming partners looking for primes whose contracts are about to recompete
  • AI agents answering questions like "Which DHS IT contracts over $1M expire in the next year with no recompete posted yet?" — that's one call

Input

A zero-config run works: {} runs recompete mode over NAICS 541512 (IT services), 12-month horizon, no key needed. Typical configured run:

{
"mode": "recompete",
"samApiKey": "YOUR-FREE-SAM-GOV-KEY",
"naicsCodes": ["541512", "541511"],
"agencies": ["Department of Defense"],
"setAsides": ["SBA", "SDVOSBC"],
"keywords": ["cybersecurity"],
"monthsAhead": 12,
"minAwardAmount": 1000000
}
FieldDefaultApplies toMeaning
moderecompeteopportunities | awards | recompete
samApiKeyopportunities (required), recompete (optional join)Your own free SAM.gov API key, stored as a secret
naicsCodes["541512"]allNAICS codes to match; explicit [] scans all (shallow — the firehose is large)
agencies[] (all)awards, recompeteTop-tier awarding agency names
setAsides[] (all)opportunities, recompete joinSAM.gov set-aside codes (SBA, 8A, SDVOSBC, WOSB, …)
keywords[]allFree-text match on notice titles / award descriptions
daysBack7opportunities, awardsPosted/signed window in days
monthsAhead12recompeteHorizon: contracts ending within N months. 12–18 is the sweet spot — agencies start recompete planning about a year out
minAwardAmount100000awards, recompeteIgnore contracts below this obligated amount (USD)
maxResults2000allCap on records pushed per run

Getting your free SAM.gov API key (2 minutes, standard practice)

  1. Sign in (or register, free) at sam.gov.
  2. Click your name → Account Details.
  3. In the API Key section, enter your password and click Request/Generate API Key. Copy it into the samApiKey input.
  4. Keys expire after 90 days — regenerate in the same place when the actor reports an auth error.

awards mode needs no key at all; recompete works without one (the live-notice join is simply skipped and recompete_posted is null).

Output fields

recompete rows

FieldTypeMeaning
record_typestring"recompete"
award_idstringContract award ID (PIID)
recipientstringIncumbent contractor
awarding_agency / awarding_sub_agencystringAwarding agency and sub-tier
naics / naics_descriptionstringIndustry code and label
psc / psc_descriptionstringProduct/Service Code and label
amountnumberObligated amount, USD
start_date / end_datedatePeriod of performance
days_until_expiryintegerDays until end_date
expiry_bucketstring0-3 months | 3-6 months | 6-12 months | 12+ months
descriptionstringAward description text
usaspending_urlurlDeep link to the award on USAspending.gov
recompete_postedboolean | nullA live SAM.gov notice matches this award (null = no key provided, unknown)
possible_recompete_noticesarrayMatching live notices: {title, url, notice_type, posted_date, response_deadline, matched_terms}

The join is a documented heuristic: a notice matches when NAICS agrees and the notice title shares ≥2 meaningful tokens with the award description or incumbent name. matched_terms is included on every hit so you can judge each match yourself.

opportunity rows

FieldTypeMeaning
record_typestring"opportunity"
notice_id / solicitation_numberstringSAM.gov identifiers
titlestringNotice title
agency_pathstringFull agency hierarchy
notice_type / base_typestringe.g. Presolicitation, Solicitation, Sources Sought
naicsstringNAICS code
set_aside / set_aside_descriptionstringSet-aside code and label
posted_date / response_deadline / archive_datedateNotice timeline
url / description_linkurlSAM.gov notice link / description API link

award rows

Same shape as recompete rows minus the expiry/join fields: award_id, recipient, awarding_agency, awarding_sub_agency, award_type, amount, start_date, end_date, naics, naics_description, psc, psc_description, description, usaspending_url.

Fields not published upstream are null, never missing — the schema is stable for downstream automation.

Use cases

BD pipeline for contractors

A scheduled recompete run per NAICS is your 12-month capture list of expiring contracts — found before they hit SAM.gov.

Small-business set-aside hunting

Filter government contract opportunities by SDVOSBC, 8A, WOSB and other set-asides.

Competitive intelligence

Track every award your competitors win (awards mode, keyword = their name).

Teaming radar

Expiring contracts where the incumbent is out of your size standard = prime/sub openings.

Using from Claude / AI agents (MCP)

Add Apify's MCP server (https://mcp.apify.com) to Claude, Cursor, or any MCP-capable client:

{
"tool": "your-username/govcon-monitor",
"input": { "mode": "recompete", "samApiKey": "…", "naicsCodes": ["541512"], "monthsAhead": 12 }
}

"Which DHS IT contracts over $1M expire in the next year and don't have a recompete posted yet?" — one call.

Pricing

Pay-per-result: $3 per 1,000 records ($0.003/record). Worked example: a focused daily recompete watch (one or two NAICS codes) typically returns a few dozen rows — call it 40 rows/day ≈ $0.12/day, under $4/month. A wide-open 2,000-row scan costs $6. One shaped opportunity pays for a lifetime of runs.

Honest limits

  • The recompete↔notice join is a heuristic (NAICS + title-token overlap). It surfaces candidates with the matched terms attached; it does not guarantee the notice is that award's recompete.
  • USAspending reflects reported obligations; end dates are the current period of performance and can move with option exercises and mods.
  • opportunities mode requires your own free SAM.gov key (90-day expiry). Without a key, recompete still runs but recompete_posted is null.
  • Recompete mode scans within a page budget; keep naicsCodes focused (an explicit empty list scans all NAICS but shallowly).

Data & fair use

Both upstream APIs are official U.S. government open-data services (SAM.gov Get Opportunities Public API, USAspending API). The SAM.gov key is your own and is used only against api.sam.gov; it is stored as a secret input. Requests are paced and retried with exponential backoff to stay well inside published rate limits.