USA Government Contract Scraper
Pricing
Pay per usage
USA Government Contract Scraper
USA Government Contract Scraper that finds and extracts government RFPs, RFQs, IFBs, and contract opportunities from major procurement platforms. Get structured data including deadlines, agencies, values, contacts, categories, and bid documents.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Sigma Dev
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does USA Government Contracts Scraper do?
USA Government Contracts Scraper extracts federal contract opportunities from SAM.gov and contract awards from USASpending.gov — with no API key and no account on either site. Filter by keyword, NAICS, PSC, set-aside type, agency, place of performance and date, and get clean JSON with the full notice description, points of contact (name, email, phone), attachment download links, award amounts, recipients and more.
Run it once for a data pull, or put it on a schedule with "Only new records" turned on and connect an integration (email, Slack, Google Sheets, webhook…) to get alerted about new solicitations that match your business. Every run is available via the Apify API and can be exported as JSON, CSV, Excel or XML.
Why use USA Government Contracts Scraper?
- Find opportunities to bid on — open solicitations, combined synopses, presolicitations and sources-sought notices filtered to your NAICS codes, set-aside status and agencies.
- Research incumbents and competitors — who won what, from which agency, for how much, under which NAICS/PSC and set-aside; optional award details add competition type, pricing type, parent IDV and the recipient's parent company.
- Build capture pipelines and CRMs — contracting officer emails and phone numbers come straight from the notice; attachment URLs let you pull the RFP documents.
- Monitor without noise —
onlyNewremembers what previous runs returned so a scheduled run only outputs genuinely new notices. - Scale from a quick check to a full snapshot — the search API answers targeted queries in seconds; bulk mode streams SAM.gov's daily extract of all ~50,000 active notices for full downloads.
- No API key, no rate-limit lottery — the official SAM.gov API caps personal keys at 10 requests per day; this Actor doesn't need one.
How to scrape SAM.gov opportunities and USASpending awards
- Open the Actor in Apify Console and choose the Data source: contract opportunities, contract awards, or both.
- Add filters — a couple of keywords, your NAICS codes, set-aside types or agencies are usually enough. Leave the date window at the default (last 7 days) or widen it.
- Click Start. A run with the default settings finishes in a minute or two.
- Open the Output tab, or download the dataset as JSON, CSV or Excel. Use the Opportunities and Awards views to see the relevant columns.
- To monitor for new notices, enable Only new records, then create a Schedule (e.g. every morning) and add an integration to deliver results.
Input
All fields are optional. The defaults return opportunities modified in the last 7 days (solicitations, combined synopses, presolicitations and sources sought), with details and attachments, capped at 500 records.
| Field | Description |
|---|---|
dataSource | opportunities (SAM.gov), awards (USASpending) or both. |
keywords, keywordMode | Search terms; any word, all words, or the exact phrase. |
naicsCodes | 2–6 digit NAICS codes; shorter codes act as prefixes (5415 = all computer services). |
pscCodes | Product/Service Codes; prefixes allowed (DA = IT and telecom services, 70 = IT products). |
setAsideCodes | SBA, SBP, 8A, 8AN, HZC, HZS, SDVOSBC, SDVOSBS, WOSB, WOSBSS, EDWOSB, EDWOSBSS, LAS, IEE, ISBEE, BICiv, VSA, VSS. |
agencies | Department or sub-agency names or abbreviations: Department of Defense, DoD, VA, Army, Bureau of Prisons, NASA… |
states | Place-of-performance state codes or names. |
postedWithinDays / postedFrom / postedTo | Rolling or absolute date window (opportunities: last modified date; awards: action date). postedWithinDays: 0 disables the window. |
maxItems | Cap per run (default 500; 0 = unlimited). |
noticeTypes, activeOnly, responseDeadlineFrom/To | Opportunity-only filters. |
includeDetails, includeAttachments | Fetch the full notice (description, contacts, NAICS, PSC, place of performance) and the attachment list. On by default. |
awardTypes, awardAmountMin/Max, recipientSearch, includeAwardDetails | Award-only filters and enrichment. |
onlyNew | Output only records not returned by earlier runs with the same filters. |
bulkMode | Read opportunities from SAM.gov's daily CSV extract instead of the search API (full snapshots, >10,000 results). |
proxyConfiguration | Optional; both sources work without a proxy. |
Example — new small-business IT solicitations from the Department of Veterans Affairs:
{"dataSource": "opportunities","naicsCodes": ["5415"],"setAsideCodes": ["SBA", "SDVOSBC"],"agencies": ["Department of Veterans Affairs"],"noticeTypes": ["o", "k"],"postedWithinDays": 7,"onlyNew": true}
Example — cybersecurity contracts awarded by DoD in the last 90 days, with award details:
{"dataSource": "awards","keywords": ["cybersecurity"],"agencies": ["DoD"],"postedWithinDays": 90,"includeAwardDetails": true,"maxItems": 1000}
Output
Each dataset item is either an opportunity (recordType: "opportunity") or an award (recordType: "award"). Shared fields (id, title, agency, naicsCodes, pscCode, setAside, placeOfPerformance, url) sit at the top level so CSV/Excel exports line up. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Opportunity example (shortened):
{"recordType": "opportunity","source": "sam.gov","id": "a4465f9866914944bcc89ad83ac6b023","title": "PKB 90 SFG Armory Camera System (Commodity)","solicitationNumber": "FA461326Q1060","noticeType": { "code": "k", "name": "Combined Synopsis/Solicitation" },"status": "active","postedDate": "2026-09-01T22:28:46Z","modifiedDate": "2026-09-01T22:28:46Z","responseDeadline": "2026-09-14T16:00:00Z","archiveDate": "2026-09-29","agency": { "department": "DEPT OF DEFENSE", "subTier": "DEPT OF THE AIR FORCE", "office": "FA4613 90 CONS PK", "organizationId": "500038326" },"naicsCodes": ["561621"],"pscCode": "6350","setAside": { "code": "SBA", "name": "Total Small Business Set-Aside (FAR 19.5)" },"placeOfPerformance": { "city": "FE Warren AFB", "state": "WY", "zip": "82005", "country": "USA" },"description": "Combined Synopsis/Solicitation\n\nSolicitation Number: FA461326Q1060 …","descriptionHtml": "<p>Combined Synopsis/Solicitation</p> …","contacts": [{ "type": "primary", "name": "1st Lt Shane Yurkus", "email": "shane.yurkus@us.af.mil", "phone": "3077734750", "title": null }],"attachments": [{ "name": "Attachment 5 - PWS 1 Sep 26.pdf", "url": "https://sam.gov/api/prod/opps/v3/opportunities/resources/files/faf6da35ff9c4552b2bace4f6bb5bca2/download", "type": "file", "sizeBytes": 585939, "mimeType": "application/pdf", "postedDate": "2026-09-01T22:28:46Z", "access": "public" }],"award": null,"parentNoticeId": null,"url": "https://sam.gov/opp/a4465f9866914944bcc89ad83ac6b023/view","scrapedAt": "2026-09-02T20:41:03Z"}
Award example (shortened):
{"recordType": "award","source": "usaspending.gov","id": "CONT_AWD_36C24222P1517_3600_-NONE-_-NONE-","title": "EMS MACHINE MAINTENENCE","awardId": "36C24222P1517","solicitationNumber": "36C24222Q1079","awardType": { "code": "B", "name": "Purchase Order" },"status": "active","recipient": { "name": "AMERICAN CUSTODIAL INC", "uei": "CSNWZH2EKLJ9", "parentName": "AMERICAN CUSTODIAL INC", "parentUei": "CSNWZH2EKLJ9", "city": "BUFFALO", "state": "NY", "country": "USA", "recipientId": "d8c83545-…-C" },"agency": { "department": "Department of Veterans Affairs", "subTier": "Department of Veterans Affairs", "office": "242-NETWORK CONTRACT OFFICE 02 (36C242)", "organizationId": null },"fundingAgency": { "department": "Department of Veterans Affairs", "subTier": "Department of Veterans Affairs" },"amounts": { "obligated": 85265.0, "baseAndAllOptions": 85265.0, "baseAndExercisedOptions": 85265.0, "totalOutlays": null },"dates": { "start": "2022-09-20", "end": "2027-08-31", "lastModified": "2026-08-31", "signed": "2022-09-20" },"naicsCodes": ["811310"],"naicsName": "COMMERCIAL AND INDUSTRIAL MACHINERY AND EQUIPMENT (EXCEPT AUTOMOTIVE AND ELECTRONIC) REPAIR AND MAINTENANCE","pscCode": "J079","pscName": "MAINT/REPAIR/REBUILD OF EQUIPMENT- CLEANING EQUIPMENT AND SUPPLIES","setAside": { "code": "SBA", "name": "Total Small Business Set-Aside (FAR 19.5)" },"extentCompeted": "FULL AND OPEN COMPETITION","pricingType": "FIRM FIXED PRICE","parentAwardId": null,"placeOfPerformance": { "city": "BUFFALO", "state": "NY", "zip": "14215", "country": "USA" },"url": "https://www.usaspending.gov/award/CONT_AWD_36C24222P1517_3600_-NONE-_-NONE-","scrapedAt": "2026-09-02T20:45:12Z"}
Opportunity fields
| Field | Description |
|---|---|
id, url | SAM.gov notice id and public notice page. |
title, solicitationNumber, noticeType | Notice title, solicitation number and type (o Solicitation, k Combined Synopsis/Solicitation, p Presolicitation, r Sources Sought, a Award Notice, s Special Notice, u Justification, g Sale of Surplus Property, i Intent to Bundle). |
status | active, inactive, cancelled, archived or deleted. |
postedDate, modifiedDate, responseDeadline, archiveDate | ISO-8601 timestamps (UTC). |
agency | Department, sub-tier, contracting office and SAM.gov organization id. |
naicsCodes, pscCode, setAside | Industry and product/service codes, set-aside code and name. |
placeOfPerformance | City, state, ZIP and country. |
description, descriptionHtml | Full notice text (plain and original HTML). |
contacts | Points of contact with name, email, phone and title. |
attachments | Name, direct download URL, type, size, MIME type, posted date and access level of each attachment. |
award | For award notices: contract number, date, amount and awardee (name, UEI, CAGE, location). |
Award fields
| Field | Description |
|---|---|
id, awardId, url | USASpending internal id, contract number (PIID) and award page. |
title | Award description. |
awardType | BPA Call, Purchase Order, Delivery Order, Definitive Contract, or the IDV type. |
status | active while the period of performance is open, completed afterwards. |
recipient | Name, UEI, parent company, location; with details also business categories and officers. |
agency, fundingAgency | Awarding and funding department / sub-agency (office with details). |
amounts | Obligated amount, base and all options, exercised options, outlays. |
dates | Period of performance start/end, last modified, date signed. |
naicsCodes, naicsName, pscCode, pscName | Industry and product/service codes with descriptions. |
setAside, extentCompeted, pricingType, parentAwardId, solicitationNumber | Competition details (require includeAwardDetails). |
placeOfPerformance | City, state, ZIP and country. |
How much does it cost to scrape SAM.gov and USASpending?
The Actor uses pay-per-event pricing:
| Event | Price |
|---|---|
| Actor start | $0.01 per run |
| Opportunity scraped | $0.002 per record (details and attachments included) |
| Award scraped | $0.001 per record (award details included) |
A daily monitor returning 50 new notices costs about $0.11 per run; a 1,000-award research pull costs about $1.01. Apify's free plan includes enough monthly credit to try the Actor.
Tips
- Keep
maxItemsreasonable for exploratory runs, then raise it. Every opportunity with details costs two requests (detail + attachment list); turning offincludeAttachmentshalves that. - Use NAICS and set-aside filters instead of only keywords — they run server-side and cut the number of notices to enrich.
- Search API limit: a single SAM.gov query returns at most 10,000 notices. The Actor automatically splits wide date windows into smaller ones; for a full snapshot use bulk mode with
postedWithinDays: 0. - Bulk mode reads the daily extract of active notices (refreshed nightly). Attachments still require one request per notice, so combine bulk mode with narrow filters or disable
includeAttachments. - Keyword modes: on SAM.gov
anymatches any single word,allrequires every word,exactmatches the phrase. USASpending keywords must be at least 3 characters;all/exactare applied after fetching. - Agency names: departments and the main sub-tiers are resolved to server-side filters; anything else is matched by name after fetching, which uses a few more requests but stays correct.
- Department of Defense awards appear with a ~90-day delay on USASpending (DoD withholds contract data for 90 days). A DoD award search over the last few weeks will legitimately return nothing — widen the window to 90+ days.
onlyNewstate is stored in the named key-value storeusa-gov-contracts-state, keyed by a hash of your filters (dates andmaxItemsexcluded). Delete that record to reset a monitor.- The run's key-value store contains a
RUN_SUMMARYrecord with request counts and how many records each filter dropped.
FAQ, disclaimers and support
Is this legal? SAM.gov and USASpending publish this data as public information of the U.S. Government. The Actor reads the same endpoints the public websites use, at a polite rate, and stores only what the agencies publish (including contracting officers' business contact details, which agencies publish so vendors can respond to solicitations). Make sure your own use of the data complies with the sites' terms and applicable law.
Why did my run return fewer records than expected? Check the RUN_SUMMARY record: filters that can't run server-side (state, PSC on SAM.gov; exact phrases on USASpending) are applied after fetching and reported there. onlyNew also hides records returned by earlier runs.
Are attachment files downloaded? Not in this version — you get direct download URLs that work without a login. File storage and an FPDS award-modification feed are on the roadmap.
Does it cover state and local procurement, or grants? No — federal contracts only. Grants.gov and state portals are separate sources.
Found an issue or need a custom field, source or integration? Open a ticket in the Issues tab of the Actor, or contact the author for a custom solution.