US Federal Contracts Scraper
Pricing
from $0.85 / 1,000 contracts
US Federal Contracts Scraper
Search US federal contract awards by keyword, agency, recipient, NAICS code, and date. Export award values, recipients, agencies, and performance details.
Pricing
from $0.85 / 1,000 contracts
Rating
0.0
(0)
Developer
Trove Vault
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract structured US federal contract award records from USAspending.gov. Search by keywords, recipient, awarding agency, NAICS code and date range, then download rows with award IDs, recipients, amounts, descriptions, agencies, dates, procurement classifications and public record URLs.
This is a source scraper. It preserves the fields reported by USAspending and does not claim that a contract is open for bids, available for subcontracting or newly created unless the selected date filter supports that interpretation. Use newAwardsOnly when you need awards whose base transaction falls inside the period; an ordinary action-date search can return modifications to older awards.
Who uses this Actor?
- GovCon research teams export a focused award sample for analysis.
- Business-development teams search historical awards by service, agency or NAICS code.
- Analysts build a dated recipient or agency dataset for internal reporting.
- Other Actors consume the normalized rows through an Apify dataset.
How do I run it?
{"keywords": ["cybersecurity"],"startDate": "2026-06-01","endDate": "2026-09-05","newAwardsOnly": true,"maxResults": 3}
startDate and endDate are required. The endpoint supports data from 1 October 2007 onward and this Actor limits one search to 366 days. Results are sorted by award amount descending. maxResults accepts 1–1000 rows.
What input can I use?
| Field | Description |
|---|---|
keywords | Optional award-description terms, up to 10. Example: cybersecurity. |
recipientSearchText | Optional recipient name text. |
naicsCodes | Optional NAICS codes, up to 25. |
agencies | Optional top-tier awarding agency names, up to 25. |
startDate, endDate | Required inclusive date range in YYYY-MM-DD. |
newAwardsOnly | Uses the base transaction date so the period focuses on newly established awards. |
dateType | action_date, date_signed, last_modified_date or new_awards_only; default is action_date. |
awardTypeCodes | USAspending codes; default A, B, C, D selects procurement contracts. |
maxResults | Rows returned, 1–1000; default 100. |
datasetId | Optional Apify dataset to append the same rows to. |
runId | Optional client or pipeline reference copied to each row. |
Set newAwardsOnly: true for base-transaction filtering; it takes precedence over dateType because the Apify form may supply the date-type default automatically. Inputs are validated before the upstream request. Invalid input fails with a clear message in RUN_SUMMARY.
What data does the Actor return?
One row is written per award returned by the source. A typical row looks like:
{"awardId": "47QFCA26F0024","recipientName": "GENERAL DYNAMICS INFORMATION TECHNOLOGY, INC.","awardAmount": 19613720.41,"description": "ENTERPRISE NETWORK OPERATIONS AND CYBERSECURITY SUPPORT ENOCS","awardingAgency": "General Services Administration","startDate": "2026-06-29","endDate": "2027-06-30","awardDateSigned": "2026-06-29","naicsCode": "541512","naicsDescription": "Computer Systems Design Services","sourceRecordUrl": "https://www.usaspending.gov/award/CONT_AWD_47QFCA26F0024_4732_47QTCK18D0003_4732"}
The dataset also includes recipient identifiers, funding agency, award type, PSC fields, place-of-performance codes, contract award type, set-aside type and extent competed when the source supplies them. Missing source fields are omitted from a row. RUN_SUMMARY records result count, pagination and source messages.
How can I integrate it?
curl --request POST \'https://api.apify.com/v2/acts/trovevault~federal-contracts-scraper/run-sync-get-dataset-items' \--header "Authorization: Bearer ${APIFY_TOKEN}" \--header 'Content-Type: application/json' \--data '{"keywords":["cybersecurity"],"startDate":"2026-06-01","endDate":"2026-09-05","newAwardsOnly":true,"maxResults":3}'
What are the source limits?
The Actor uses the public USAspending API over HTTPS and does not require an API key. Search fields and date semantics follow USAspending's API contract. The site's own documentation warns that data availability and reporting timing vary by agency; Department of Defense procurement data may be delayed. An award record is not a solicitation and does not indicate that the recipient is seeking partners.
The new_awards_only date type refers to a base transaction, while action_date commonly refers to the latest transaction. This distinction matters when a recent modification belongs to an older contract. Always inspect awardDateSigned, startDate, endDate and the description before making a commercial or compliance decision.
The Actor performs one bounded API request and does not crawl award attachments, SAM.gov notices, private systems or login-protected pages. USAspending can return a hasNextPage indication when more rows match than maxResults; rerun with a narrower filter or use pagination in a downstream workflow.
How do I troubleshoot a run?
| Issue | Likely cause | What to do |
|---|---|---|
| No awards are returned | The filters are too narrow or the agency has not reported matching data | Broaden the date range or remove one optional filter, then retry. |
| A recent search includes an older award | action_date can select a recent modification to an existing award | Enable newAwardsOnly when you need newly established awards. |
| Fewer rows appear than the source reports | USAspending can repeat the same award across result records | The Actor removes duplicate award records; inspect duplicateCount in RUN_SUMMARY. |
| The upstream request fails | USAspending may be temporarily unavailable or rate-limiting requests | Retry later; the error remains available in RUN_SUMMARY. |
Frequently asked questions
Does it find open opportunities? No. It extracts awards already recorded by USAspending. Use an opportunities source for solicitations and deadlines.
Does it include grants? The default award codes select contracts. Change awardTypeCodes only when you intentionally need other USAspending award types.
Can I schedule it? Yes. Use an Apify Schedule with a rolling date range and a runId to identify each collection. The Actor does not create its own schedule.
Can I append to an existing dataset? Yes, provide datasetId and ensure the running account can write to that dataset. The default dataset is populated as well.
For a suspected source or normalization issue, open an Actor issue with sanitized input, the award ID and the observed field. Do not include tokens or confidential information.
Changelog
- 0.1.0: USAspending contract award extraction with keyword, recipient, agency, NAICS, date and award-type filters; normalized procurement fields; dataset and workflow integration.