Expiring Federal Contracts: Recompete Finder (USAspending) avatar

Expiring Federal Contracts: Recompete Finder (USAspending)

Pricing

from $10.00 / 1,000 expiring contract leads

Go to Apify Store
Expiring Federal Contracts: Recompete Finder (USAspending)

Expiring Federal Contracts: Recompete Finder (USAspending)

Returns federal contracts whose performance period ends soon (likely recompetes): incumbent, value, agency, end date, days left, NAICS/PSC, place of performance and a USAspending link. Filter by category, NAICS, agency, state, keyword and value.

Pricing

from $10.00 / 1,000 expiring contract leads

Rating

0.0

(0)

Developer

FedSignals Data

FedSignals Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

List federal contracts whose period of performance ends soon. These are the deals that agencies typically re-compete. You can filter by category, PSC code, NAICS, set-aside, incumbent (name or UEI), agency, state, keyword and minimum value. Each lead gives the incumbent, value, end date, agency, a USAspending link and a SAM.gov search link for the matching notice. Incremental mode alerts you only to contracts you haven't seen, and alerts you again if an end date changes.

Why it matters

Recompetes are the best-qualified pipeline in government contracting. The requirement already exists, the budget is known, and the incumbent can be studied. Firms typically start capture 6–18 months before the end date.

Example input

{
"categories": ["IT & Cyber"],
"endsAfterDays": 180,
"endsWithinDays": 540,
"minAwardAmount": 5000000,
"agencies": [],
"placeOfPerformanceStates": [],
"onlyNew": true,
"maxItems": 500
}

Example output

{
"awardId": "205AE926F00059",
"recipient": "CTG FEDERAL, LLC",
"awardAmount": 9900022.76,
"awardType": "DELIVERY ORDER",
"awardingAgency": "Department of the Treasury",
"awardingSubAgency": "Internal Revenue Service",
"endDate": "2027-04-26",
"daysUntilEnd": 180,
"category": "IT & Cyber",
"naicsCode": "541519",
"pscCode": "7B22",
"placeOfPerformanceState": "WV",
"description": "PROCUREMENT OF 18 HPE SERVERS AND WARRANTIES",
"usaspendingUrl": "https://www.usaspending.gov/award/CONT_AWD_205AE926F00059_2050_NNG15SD12B_8000"
}

A live test on Oct 28, 2026 for IT & Cyber contracts of $5M or more ending in 6–18 months returned 100 leads (capped by maxItems) in about 22 seconds.

Use cases

  • Small and mid-size contractors building a capture pipeline.
  • Teaming and partnership outreach to incumbents ahead of recompetes.
  • BD consultants packaging recompete lists for clients.

Data source and caveats

The data comes from the USAspending.gov API (U.S. Department of the Treasury). It is public U.S. government data, and no key is required. The end date is the current period-of-performance end. Unexercised options, extensions or bridge contracts can move it, and an expiring order on an IDIQ may be re-issued under the same vehicle rather than openly re-competed. The USAspending API returns at most 10,000 results per sort order. The Actor reads from both ends of the window, and the run summary's windowFullyCovered tells you whether a very broad search was truncated. If it was, narrow the filters.

Scheduling

Run weekly with onlyNew: true. The first run returns your full window; later runs return only new or changed contracts.

How much does it cost?

Pay per event: you pay only for the events below plus Apify's $0.00005 run-start fee. Platform compute is included in the price.

  • $0.01 per expiring-contract lead delivered.

Real examples from our test runs:

  • Quick-start input (10 contracts): 10 × $0.01 = about $0.10.
  • IT & Cyber, $5M+, ending in 6-18 months: our Oct 28 test hit the 100-lead cap in about 22 seconds = $1.00 for 100 leads.
  • Weekly incremental run: only new or changed contracts are charged, usually a small fraction of the first run.

Use maxItems and Apify's per-run spending limit to cap spend; the Actor stops cleanly when the limit is reached.

Limits

  • USAspending pages through at most 10,000 results per sort order. The Actor reads from both ends of the date window, so it covers up to 20,000 contracts per search; broader searches are truncated and flagged in the summary and status message.
  • samSearchUrl is a SAM.gov search for the contract number, not a guaranteed match: many task orders were never posted on SAM.gov.
  • The set-aside filter uses USAspending's set-aside field; contracts awarded without one only appear when setAsides is empty.
  • The same company can appear under several names or UEIs.

FAQ

What is a recompete?
When a federal contract ends, the agency usually competes the work again. Knowing the end date 6-18 months ahead gives you time to prepare a bid.

Where does the data come from?
The official USAspending.gov API. No key is needed.

Is the end date final?
No. It is the current period-of-performance end. Options, extensions and bridge contracts can move it, and some orders are re-issued on the same vehicle instead of openly re-competed.

Can I filter by PSC code, set-aside or incumbent?
Yes. pscCodes takes full codes (D399) or prefixes (D3, R4, 70). setAsides takes groups such as 8(a), sdvosb or wosb, or raw codes. incumbents takes company names (partial match) or UEIs, so you can watch a competitor's contracts as they near their end date.

How do I find the SAM.gov notice for a contract?
Open samSearchUrl. It searches SAM.gov Contract Opportunities, active and archived, for the contract number, which finds the award notice and often the follow-on notice. To track the follow-on solicitation itself, use Federal Opportunities Monitor with the agency and NAICS.

How do I know a broad search was complete?
The run summary includes windowFullyCovered. If it is false, the search matched more than the 20,000 contracts the Actor can read per search; narrow your filters.

Reliability

Measured on Apify as of Oct 29, 2026: 3 of 3 of our own test runs succeeded (100%), with a median run time of 28 seconds (longest 82 s) on small test inputs. It is a small sample from a new Actor; we will update it as runs accumulate. Local tests: IT & Cyber $5M+ returned 100 leads in about 22 seconds with 0 API errors.

Use it from AI agents (MCP)

Add this Actor as a tool in Claude Desktop, Cursor or any MCP client through the Apify MCP server:

{
"mcpServers": {
"federal-recompete-finder": {
"url": "https://mcp.apify.com?tools=fedsignals/federal-recompete-finder",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Use it from code (API)

One call runs the Actor and returns the dataset items. maxTotalChargeUsd caps what the run can charge.

Python:

import requests
items = requests.post(
"https://api.apify.com/v2/acts/fedsignals~federal-recompete-finder/run-sync-get-dataset-items",
params={"maxTotalChargeUsd": 1},
headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},
json={"categories": ["IT & Cyber"], "minAwardAmount": 5000000, "onlyNew": False, "maxItems": 10, "maxScan": 2000},
timeout=300,
).json()
print(len(items), "items")

JavaScript (Node 18+):

const res = await fetch(
"https://api.apify.com/v2/acts/fedsignals~federal-recompete-finder/run-sync-get-dataset-items?maxTotalChargeUsd=1",
{
method: "POST",
headers: { Authorization: "Bearer YOUR_APIFY_TOKEN", "Content-Type": "application/json" },
body: JSON.stringify({"categories": ["IT & Cyber"], "minAwardAmount": 5000000, "onlyNew": false, "maxItems": 10, "maxScan": 2000}),
}
);
const items = await res.json();
console.log(items.length, "items");

Feedback

Found a bug or need a filter or source? Open an issue on the Issues tab or email fedsignals.alerts@gmail.com.

This Actor is not affiliated with or endorsed by the U.S. government or USAspending.gov.