USAspending Expiring Contracts Finder
Pricing
from $3.00 / 1,000 new or amended records
USAspending Expiring Contracts Finder
Unofficial tool, not affiliated with U.S. Treasury/USAspending.gov. Find US federal contracts whose period of performance ends within your chosen window, filtered by NAICS, amount and PSC/NAICS code keywords.
Pricing
from $3.00 / 1,000 new or amended records
Rating
0.0
(0)
Developer
Two Five Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Not affiliated with or endorsed by the U.S. Department of the Treasury or USAspending.gov. This is an independent tool from Two Five Labs that reads publicly available data. No government seals or logos are used.
What it does
Requests a USAspending.gov award download for contracts with a transaction in your look-back period and at or above your minimum amount. It waits for the file, then keeps the contracts whose current period-of-performance end date falls between today and monthsAhead months from now. Only new or changed contracts are output on later runs.
Useful for spotting possible recompetes. It does not predict whether a contract will be re-competed, extended or ended.
Who it's for
Federal contractors and capture teams planning future bids.
Input
| Field | Description |
|---|---|
monthsAhead | integer, default 6. End-date window: today to this many months ahead. |
actionLookbackMonths | integer, default 1. Only contracts with a transaction in this many past months. |
minAmount | integer, default 10,000,000 (USD). Skips smaller awards; lower values make the download larger and slower. |
naics | list. NAICS codes, prefixes allowed (e.g. 5415). |
keywords | list. Matches the record title, i.e. the standard PSC/NAICS code descriptions (not free text). |
includeDescriptions | boolean, default false. Off: no free-text description is output. On: the description is added in extra.description, trimmed to remove contact names (marked [contact details removed]). Leave it off unless you need it. |
maxPolls / pollIntervalMs | default 60 / 5000. How many times, and how often (in ms, at least 5000), to check whether the download is ready. The wait between checks starts at 5 seconds and grows 1.5x per check, up to 30 seconds. |
maxSpendUsd, emitUnchanged, stateStoreName | see "How runs work". |
Contract award types only (A, B, C, D).
No API key is needed for this source.
Run it via API
curl -X POST "https://api.apify.com/v2/acts/flamelit_constellation~usaspending-expiring-contracts-finder/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"maxSpendUsd": 1.0}'
Use your own Apify token.
How runs work
- First run: returns every matching record in the look-back window, all marked
changeType: "new". A first run can find many contracts, so setmaxSpendUsdand the filters to fit your budget. Records the cap stops are output on later runs. - Later runs: return only records that are new, or whose content changed since they were last seen (
amended). The actor keeps a content hash per record in a key-value store. A second run over the same data outputs nothing. stateStoreName: give each saved search its own name so each one tracks its own history.emitUnchanged: truealso outputs unchanged records (changeType: "same"), which are never charged.- Spend cap:
maxSpendUsd(default 1.0) is a hard cap. When it is reached, the actor stops charging and stops output. Records not yet output are kept for the next run. - Errors and rate limits: network errors, HTTP 429 and 5xx responses are retried up to 3 times with backoff.
Retry-Afteris honoured in both its seconds and date forms; if the source asks for a wait longer than 2 minutes, the run stops instead of waiting.
Output
Tender-style record: id, source ("usaspending"), title (standard PSC/NAICS code descriptions plus the award ID, never free text), buyer (agency / sub-agency), naics[], region (place-of-performance state), value, currency ("USD"), posted (period start), deadline (current period-of-performance end), url, changeType, extra{awardId, incumbent, periodOfPerformanceEnd, excludedIndividual, attribution, description (only with includeDescriptions, max 1,000 chars)}.
Excerpt from a live run (descriptions off):
{"id": "CONT_AWD_49100422F0033_4900_GS00F354CA_4732","source": "usaspending","title": "SPECIAL STUDIES/ANALYSIS- SCIENTIFIC DATA — ADMINISTRATIVE MANAGEMENT AND GENERAL MANAGEMENT CONSULTING SERVICES (49100422F0033)","buyer": "National Science Foundation / National Science Foundation","naics": ["541611"],"region": "NC","value": 12641467,"currency": "USD","posted": "2022-04-01T00:00:00.000Z","deadline": "2027-03-31T00:00:00.000Z","url": "https://www.usaspending.gov/award/CONT_AWD_49100422F0033_4900_GS00F354CA_4732/","changeType": "new","extra": {"awardId": "49100422F0033","incumbent": "RESEARCH TRIANGLE INSTITUTE","periodOfPerformanceEnd": "2027-03-31","attribution": "Source: USAspending.gov (U.S. Department of the Treasury), https://www.usaspending.gov. Data filtered and normalized by this actor."}}
Sole proprietors excluded: awards that USAspending flags as sole proprietorships are dropped entirely. When that flag is missing, a fallback name rule is used, and it can miss some individuals.
Descriptions: award descriptions are off by default. If you turn them on: Contact names after role labels are removed; other names in free text may remain. Long descriptions may be shortened, sometimes before any contact details, to remove contact names.
Pricing
Pay per event: one run-start charge per run and one new-item charge per new or amended record output. Current prices are shown on this actor's Apify Store page.
Limits
- Requests are spaced at least 1.1 seconds apart, and download status checks are at least 5 seconds apart. This is far under the contributor-stated limit of 1,000 requests per 300 seconds. The default run used 3–5 requests, including 1–3 download status checks.
- With the default inputs, the download is small and a run normally finishes well within the time limit below.
- Larger custom scopes can take several minutes. If the download is not ready after 60 checks (about 29 minutes of waiting), the run stops with an error. To avoid this, narrow the scope: shorten
actionLookbackMonths, setnaics, or raiseminAmount. - Default memory is 2048 MB. You can change it in the run options.
Data source and terms
- Source: USAspending.gov (U.S. Department of the Treasury),
https://www.usaspending.gov. Data filtered and normalized by this actor. Each record carries this inextra.attribution. - No formal API terms-of-use page was found. Endpoints "do not currently require any authorization".
- Not affiliated with or endorsed by the U.S. Department of the Treasury or USAspending.gov.
FAQ
Does it return every record? The first run returns everything matching. After that it returns only new or changed records.
How often should I run it? Daily is enough.
Can I cap spend? Yes. maxSpendUsd is a hard cap, and records it stops are output on the next run.
What do keywords match? The title, which is built from standard PSC/NAICS code descriptions plus the award ID. Use words from those code titles, e.g. "management consulting".
Does it need a key? No.
Support
Questions or problems: please use the Issues tab on this actor's Apify page first.
Publisher: Two Five Labs, contact twofivelabs@gmail.com.
Requests to the source identify themselves with a contact address: flamelit-constellation-actors/0.1 (+mailto:twofivelabs@gmail.com).