SAM.gov Opportunities & USAspending Awards Scraper avatar

SAM.gov Opportunities & USAspending Awards Scraper

Pricing

from $1.60 / 1,000 contract opportunities

Go to Apify Store
SAM.gov Opportunities & USAspending Awards Scraper

SAM.gov Opportunities & USAspending Awards Scraper

Find federal contract opportunities from SAM.gov (solicitations, RFIs, set-asides, deadlines, contracting officer contacts) and contract awards from USAspending.gov (winners, amounts, competition). Filter by keyword, NAICS, PSC, agency, set-aside and state. No API key.

Pricing

from $1.60 / 1,000 contract opportunities

Rating

0.0

(0)

Developer

ThisIsB3

ThisIsB3

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Categories

Share

Find US federal contract opportunities from SAM.gov and contract awards from USAspending.gov in one run. Get solicitations, RFIs and sources-sought notices with deadlines, set-asides, NAICS and PSC codes, places of performance and contracting officer contacts, plus signed contracts with winners, amounts, dates and competition details (offers received, extent competed, set-aside, potential value, parent IDIQ/GWAC). Filter both by keyword, NAICS, PSC, agency, set-aside and state. No SAM.gov API key, no login, no browser. Export to JSON, CSV or Excel, or use it through the Apify API.

What does it do?

It reads two official, public US government data sources:

  • Contract opportunities from SAM.gov. The Actor downloads SAM.gov's own public "Contract Opportunities" data file, which SAM.gov publishes every day for bulk use (SAM.gov Data Services and data.gov). It never scrapes the SAM.gov website and never needs an API key. The file is sorted newest first, so the Actor reads only the part your date window needs and stops.
  • Contract awards from USAspending.gov. The Actor uses the official USAspending.gov API, the government's record of federal spending. It covers prime contract awards: definitive contracts, purchase orders, delivery and task orders, and BPA calls, from fiscal year 2008 on.

Every row has a type field, opportunity or award, so one run can return both. The dataset has an Opportunities view and an Awards view.

Who is it for?

  • Small businesses looking for bids. Get every new solicitation in your NAICS codes and set-aside category (8(a), HUBZone, SDVOSB, WOSB...) with the deadline and the contracting officer's email. Schedule it daily with "Posted in the last (days)" set to 1 for a bid alert in your inbox, Slack or Google Sheet.
  • Government contracting consultants and capture managers. Build opportunity pipelines for several clients at once, and pull the sources-sought and presolicitation notices that come before the RFP.
  • Competitor and incumbent research. See who wins in your market: recipient, amount, agency, contract type, end date and, with competition details, how many offers were received, whether it was competed, which set-aside was used and which IDIQ or GSA schedule the order went through. Search by company name or UEI to see a competitor's or teaming partner's contracts.
  • Market sizing. Pull a fiscal year of awards for a NAICS code, agency or state, sorted by size, and add up the money. "Any activity" date mode includes older contracts that are still spending.
  • Recompete planning. Awards come with endDate and potentialEndDate, so you can find contracts that expire soon and prepare before the follow-on is announced.

It is built to be reliable: official data only (nothing that breaks when a website changes), automatic slowdown when a server asks for it, a resumable download, and an automated test every day.

How to use it

  1. Click Try for free.
  2. Pick the sources (opportunities, awards or both) and add filters: keywords, NAICS codes, PSC codes, agencies, set-asides, states. All filters are optional.
  3. Set the date windows and limits for each source.
  4. Click Start. Most runs finish in seconds.

You can also call it from the Apify API or an AI agent (MCP), schedule it, or connect it to Make, Zapier, Google Sheets, Slack and other integrations.

How much does it cost?

You pay only for the rows you receive. There is no monthly fee and no charge per run.

RowEventPrice
Contract opportunity (SAM.gov notice with contacts and description)opportunity$2.00 per 1,000
Contract award (USAspending: recipient, amount, dates, agency, codes, place of performance)award$1.50 per 1,000
Contract award with competition details ("Include competition details" on)award-detailed$4.00 per 1,000, charged instead of award

Examples:

  • A daily bid alert for two NAICS codes that finds about 20 new notices a day costs about $0.04 a day, roughly $1.20 a month.
  • 500 opportunities plus 500 awards with competition details cost $1.00 + $2.00 = $3.00.
  • A fiscal year of 10,000 awards for market sizing costs $15.

Apify's free plan includes monthly platform credit, enough for thousands of rows every month. Larger Apify plans get automatic discounts. Set a maximum cost per run in the run options and the Actor stops exactly at that budget.

Input

All fields are optional. Within one filter, values are combined with OR; different filters are combined with AND.

FieldApplies toDescription
Sourcesbothopportunities, awards or both (default: both).
KeywordsbothWords or phrases. Opportunities: whole-word match in title, description and solicitation number. Awards: USAspending keyword search (3+ characters).
NAICS codesboth2 to 6 digits; 5415 covers every code that starts with it.
Product or service codes (PSC)bothExact 4-character codes, e.g. D302, R499.
AgenciesbothCodes such as DOD, VA, GSA, HHS, DHS (46 agencies in the form).
Set-asidesbothSBA, 8A, HZC, SDVOSBC, WOSB, EDWOSB, VSA, ... (19 types in the form).
Place of performance (states)bothTwo-letter state or territory codes.
Notice typesopportunitiesSolicitation, Combined Synopsis/Solicitation, Presolicitation, Sources Sought, Special Notice, Award Notice, ...
Posted in the last (days)opportunitiesDefault 14. Use 1 for a daily alert; 0 reads every active notice.
Skip notices whose deadline has passedopportunitiesDefault on. Notices without a deadline are kept.
Include the notice descriptionopportunitiesDefault on (up to about 32,000 characters per notice, as SAM.gov publishes it).
Max opportunitiesopportunitiesDefault 100; 0 = no limit.
Awards signed in the last (days)awardsDefault 365. Ignored when you set the dates below.
Award date from / toawardsAn explicit range (YYYY-MM-DD), e.g. a fiscal year. Earliest 2007-10-01.
Which awards count as in the date rangeawardsnew (first signed in the range, default) or activity (any transaction in the range).
Minimum / maximum award amountawardsObligated amount in USD.
RecipientsawardsCompany names or UEIs.
Award orderawardsnewest (default) or largest.
Include competition detailsawardsAdds offers received, extent competed, set-aside, pricing type, potential value and end date, parent contract, contracting office, parent company.
Max awardsawardsDefault 100; 0 = no limit.
Maximum resultsbothStop after this many rows in total (default 1,000; 0 = no limit).
Max concurrencyawardsParallel USAspending requests (default 3).

Example input: IT services opportunities for SDVOSB firms, plus last fiscal year's largest VA awards in the same codes, with competition details.

{
"sources": ["opportunities", "awards"],
"naicsCodes": ["541512", "541519"],
"setAsides": ["SDVOSBC"],
"noticeTypes": ["solicitation", "combined", "presolicitation", "sources-sought"],
"postedWithinDays": 30,
"agencies": ["VA"],
"awardDateFrom": "2025-10-01",
"awardDateTo": "2026-09-30",
"awardsSortBy": "largest",
"includeAwardDetails": true,
"maxOpportunities": 200,
"maxAwards": 200
}

Output

Opportunity rows (type: "opportunity")

FieldDescription
noticeId, title, solicitationNumber, urlThe notice and its page on SAM.gov.
noticeType, baseNoticeTypeSolicitation, Combined Synopsis/Solicitation, Sources Sought, Award Notice, ...
postedDate, responseDeadline, archiveDateDates; the deadline keeps the agency's time zone offset.
setAsideCode, setAsideSet-aside code and description.
naicsCode, pscCodeIndustry and product or service codes.
agency, agencyCode, subAgency, office, officeCode, officeCity ... officeCountryThe buying department, sub-agency and contracting office.
popAddress, popCity, popState, popZip, popCountryPlace of performance, when the notice lists one.
awardId, awardDate, awardAmount, awardeeOn award and justification notices.
primaryContactName, primaryContactTitle, primaryContactEmail, primaryContactPhoneThe government point of contact listed on the notice (also secondaryContact...).
descriptionThe notice text, when "Include the notice description" is on.

A real opportunity row (description shortened):

{
"type": "opportunity",
"noticeId": "9ca676975d1142ef94affba1452edc04",
"title": "Snow Removal Washington ARTCC & Potomac TRACON/FAA Command Center",
"solicitationNumber": "697DCK26R00029",
"noticeType": "Solicitation",
"baseNoticeType": "Solicitation",
"postedDate": "2026-10-06",
"responseDeadline": "2026-10-07T15:00:00-04:00",
"archiveDate": "2026-10-22",
"setAsideCode": "SDVOSBC",
"setAside": "Service-Disabled Veteran-Owned Small Business (SDVOSB) Set-Aside (FAR 19.14)",
"naicsCode": "561730",
"pscCode": "S218",
"agency": "TRANSPORTATION, DEPARTMENT OF",
"agencyCode": "DOT",
"subAgency": "FEDERAL AVIATION ADMINISTRATION",
"office": "697DCK REGIONAL ACQUISITIONS SVCS",
"officeCode": "697DCK",
"officeCity": "FORT WORTH",
"officeState": "TX",
"officeZip": "76177",
"officeCountry": "USA",
"popAddress": null,
"popCity": "Leesburg",
"popState": "VA",
"popZip": "20176",
"popCountry": "USA",
"awardId": null,
"awardDate": null,
"awardAmount": null,
"awardee": null,
"primaryContactName": "Jennifer Walker-Gomez",
"primaryContactTitle": null,
"primaryContactEmail": "aaq530proposals@faa.gov",
"primaryContactPhone": null,
"secondaryContactName": null,
"secondaryContactTitle": null,
"secondaryContactEmail": null,
"secondaryContactPhone": null,
"description": "Amendment 0002 -Reponse to submitted questions The Federal Aviation Administration (FAA), Eastern Acquisitions, College Park, GA, is issuing Screening Information Request (SIR) Number 697DCK…",
"url": "https://sam.gov/opp/9ca676975d1142ef94affba1452edc04/view",
"scrapedAt": "2026-10-07T12:00:00.000Z"
}

Award rows (type: "award")

FieldDescription
awardId, usaspendingId, urlContract number (PIID) and the award's page on USAspending.gov.
description, contractTypeWhat was bought; definitive contract, purchase order, delivery order or BPA call.
awardAmount, totalOutlaysObligated amount and money paid out (USD).
awardDate, startDate, endDate, lastModifiedDateSigned, period of performance, last update.
agency, agencyCode, subAgency, fundingAgency, fundingSubAgencyAwarding and funding agencies.
recipientName, recipientUei, recipientCity, recipientState, recipientZip, recipientCountry, recipientUrlThe winning company and its USAspending profile.
naicsCode, naicsDescription, pscCode, pscDescriptionIndustry and product or service codes.
popCity, popState, popZip, popCountry, popCounty, popCongressionalDistrictPlace of performance.
detailsIncludedTrue when the competition details below were fetched.
numberOfOffers, extentCompeted, setAsideCode, setAside, pricingType, solicitationId, solicitationProceduresCompetition details.
currentValue, potentialValue, potentialEndDateValue with exercised options, value with all options, and the last possible end date.
parentAwardId, parentAwardType, office, recipientParentName, recipientParentUei, subawardCount, subawardAmount, businessCategoriesParent IDIQ/GWAC/schedule, contracting office, parent company, subawards and business categories.

Without competition details these detail fields are null. A real award row with competition details:

{
"type": "award",
"awardId": "36C10B23F0346",
"usaspendingId": "CONT_AWD_36C10B23F0346_3600_47QSWA18D008Q_4732",
"description": "VA CYBERSECURITY OPERATIONS CENTER NEXT GENERATION II (CSOC NG II) SUPPORT",
"contractType": "DELIVERY ORDER",
"awardAmount": 219083824.48,
"totalOutlays": 147432546.43,
"awardDate": "2023-09-28",
"startDate": "2023-09-29",
"endDate": "2027-09-28",
"lastModifiedDate": "2026-09-25",
"agency": "Department of Veterans Affairs",
"agencyCode": "VA",
"subAgency": "Department of Veterans Affairs",
"office": "TECHNOLOGY ACQUISITION CENTER NJ (36C10B)",
"fundingAgency": "Department of Veterans Affairs",
"fundingSubAgency": "Department of Veterans Affairs",
"recipientName": "MAVERIS LLC",
"recipientUei": "NEKWPBM5VT33",
"recipientParentName": "MAVERIS LLC",
"recipientParentUei": "NEKWPBM5VT33",
"recipientCity": "MCLEAN",
"recipientState": "VA",
"recipientZip": "22102",
"recipientCountry": "USA",
"naicsCode": "541511",
"naicsDescription": "CUSTOM COMPUTER PROGRAMMING SERVICES",
"pscCode": "R499",
"pscDescription": "SUPPORT- PROFESSIONAL: OTHER",
"popCity": "MARTINSBURG",
"popState": "WV",
"popZip": "25401",
"popCountry": "USA",
"popCounty": "BERKELEY",
"popCongressionalDistrict": "WV-02",
"detailsIncluded": true,
"currentValue": 219083824.48,
"potentialValue": 331158125.88,
"potentialEndDate": "2028-12-28",
"numberOfOffers": 3,
"extentCompeted": "FULL AND OPEN COMPETITION",
"setAsideCode": "SDVOSBC",
"setAside": "SERVICE DISABLED VETERAN OWNED SMALL BUSINESS SET-ASIDE",
"pricingType": "FIRM FIXED PRICE",
"solicitationId": null,
"solicitationProcedures": "SUBJECT TO MULTIPLE AWARD FAIR OPPORTUNITY",
"parentAwardId": "47QSWA18D008Q",
"parentAwardType": "FSS",
"subawardCount": 25,
"subawardAmount": 76546267.95,
"businessCategories": [
"Category Business",
"Corporate Entity Not Tax Exempt",
"Limited Liability Corporation",
"Not Designated a Small Business",
"Special Designations",
"U.S.-Owned Business"
],
"url": "https://www.usaspending.gov/award/CONT_AWD_36C10B23F0346_3600_47QSWA18D008Q_4732",
"recipientUrl": "https://www.usaspending.gov/recipient/28acf7d6-a03e-98b2-ae85-d99bbd8c3f6c-C/latest",
"scrapedAt": "2026-10-07T19:31:01.614Z"
}

Tips

  • Daily bid alert: set "Posted in the last (days)" to 1, pick your NAICS codes and set-asides, choose only the opportunities source, and schedule the Actor every morning. Connect the dataset to email, Slack or Google Sheets.
  • Biddable notices only: pick the notice types Solicitation, Combined Synopsis/Solicitation, Presolicitation and Sources Sought, and keep "Skip notices whose deadline has passed" on.
  • Incumbent research: search awards with the same NAICS code and agency as an opportunity, sorted by largest, with competition details on. endDate and potentialEndDate show when a contract runs out.
  • Competitor tracking: put company names or UEIs in Recipients and schedule a weekly run with "Awards signed in the last (days)" set to 7.
  • Fiscal years: the federal fiscal year runs from October 1 to September 30. FY2026 is 2025-10-01 to 2026-09-30.
  • Smaller exports: turn off "Include the notice description" for compact opportunity rows; keywords still search the description.

FAQ

Is this legal? Does it scrape SAM.gov? It does not scrape the SAM.gov website. SAM.gov's terms prohibit automated scraping of the site, so the Actor uses only the channels the government provides for bulk use: the public Contract Opportunities data file that SAM.gov publishes for download (SAM.gov Data Services and data.gov, public access), and the official USAspending.gov API. Both are free public data and need no login or API key. Federal procurement records are public information, and works of the US federal government are not protected by copyright in the United States. You are responsible for how you use the data and for following the laws that apply to you.

Why are there names, emails and phone numbers in the opportunity rows? They are the government points of contact that agencies list on their public notices, usually the contracting officer or contract specialist, so that vendors can ask questions and submit offers. They are federal employees acting in their official role, and contacting them about the notice is exactly what they are listed for. The Actor does not collect any other personal data: award rows contain company information only (recipient city, state and ZIP, no street address), and the executive compensation that USAspending lists for some companies is deliberately left out.

How fresh is the data? SAM.gov refreshes its public opportunities file once a day (around midnight US Eastern time), so notices posted today appear in tomorrow's runs. Notices that SAM.gov has archived or deleted are not in the file. USAspending updates awards daily, but agencies report with a delay, and Department of Defense awards appear about 90 days after signing (a DoD reporting delay).

Why does the state filter return few opportunities? Many SAM.gov notices do not list a place of performance, and the state filter only keeps notices that do. Filter by agency, NAICS code or keyword instead, or leave the state filter empty and check officeState and popState in the results.

Can I get bid documents (attachments)? The public data file does not include attachments. Each row has a url to the notice on SAM.gov, where the attachments can be downloaded.

Do I need a SAM.gov API key? No. The official SAM.gov API needs a personal key and allows only 10 requests a day without a registered entity role. This Actor needs neither.

Why did an opportunities run read many megabytes? SAM.gov publishes all active notices in one file, newest first. The Actor reads only as far as your "Posted in the last (days)" window and stops as soon as it has "Max opportunities" rows. A long window with very narrow filters has to read more of the file before it finds matches. Setting 0 reads every active notice (about 75,000 notices).

Does it include grants or subcontracts? Not yet: it covers prime contract awards. Open an issue on the Issues tab if you need grants or subawards.

The run returned fewer results than expected. Remove one filter at a time; each filter narrows the results. Check that keywords are spelled as notices write them (e.g. "cybersecurity" and "cyber security" are different words), and that NAICS codes have 2 to 6 digits. If something looks wrong, open an issue on the Issues tab and it will be looked at quickly.