US Federal Contracts Feed: SAM.gov & USAspending avatar

US Federal Contracts Feed: SAM.gov & USAspending

Pricing

from $2.00 / 1,000 opportunity returneds

Go to Apify Store
US Federal Contracts Feed: SAM.gov & USAspending

US Federal Contracts Feed: SAM.gov & USAspending

Get US federal contract opportunities from the official SAM.gov API with the buyer's last-12-month award history from USAspending. Filter by NAICS, PSC, set-aside, notice type, agency, state and keywords. Works without a key in USAspending-only mode (recent awards).

Pricing

from $2.00 / 1,000 opportunity returneds

Rating

0.0

(0)

Developer

Offera Studio

Offera Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does US Federal Contracts Feed do?

US Federal Contracts Feed gives you open US federal contract opportunities from the official SAM.gov Get Opportunities API and, for every opportunity, the buyer's award history from the official USAspending API. No scraping: both are government APIs, and the rows use the same field names as our EU Tenders Feed, so a US and EU pipeline can share one schema.

Each row has:

  • notice ID, title, notice type (solicitation, presolicitation, sources sought, award notice, ...) and solicitation number
  • agency, sub-tier agency and office
  • NAICS code, PSC code and set-aside (small business, 8(a), WOSB, SDVOSB, HUBZone ...)
  • posted date and response deadline
  • place of performance (city, state, country)
  • point of contact exactly as SAM.gov publishes it
  • the SAM.gov link and the attachment links
  • buyerAwardsLast12m: how many contracts the same sub-tier agency awarded in the same NAICS code in the last 12 months, and their total obligated value (USAspending)

Who is it for?

  • Government contractors and bid teams: a daily list of new solicitations in your NAICS codes and set-asides, with a sense of how much the buyer really spends.
  • Capture managers: sources sought and presolicitations early, with the contracting officer as published.
  • Small and disadvantaged businesses: filter by 8(a), WOSB, SDVOSB, HUBZone or small business set-asides.
  • Market intelligence and sales teams: which agencies buy what, and how much.

How to use it

  1. Click Start with the default input: yesterday's open opportunities from the SAM.gov daily cache. If the cache is not available, it returns recent contract awards from USAspending (the last 7 days) and one free info row that says so.
  2. Add filters: NAICS codes or prefixes (5415 matches the whole IT services group), PSC codes, set-asides, notice types, agency, state, keywords, response deadline.
  3. Schedule it daily. With no dates set the Actor reads yesterday's postings.

Two modes

ModeWhenWhat you get
SAM.govThe daily SAM.gov cache (a small Cloudflare Worker run by the Actor owner) answersOpen opportunities posted in your date range, with buyer award history
USAspending onlyThe cache is unreachable or has no data for your datesRecent contract awards (who got what), in the same row format, with a free sam-key-missing info row

Why a cache? SAM.gov gives a personal API key without a SAM role only 10 requests per day. So the Actor never calls SAM.gov itself: the owner's Worker fetches the previous day's opportunities once a day (1 to 3 requests) and the Actor reads that cache and filters locally. You never need a key, and your runs never use up the daily quota. The date range is limited to the cache window (30 days, counted from the day the cache started); days it does not have are listed in the run log.

In USAspending-only mode source is usaspending, the title is the award description, awardee and awardAmount are filled, and noticeType is Contract award (USAspending).

Input example

{
"postedFrom": "7 days",
"naicsCodes": ["5415"],
"setAsides": ["small-business", "8a"],
"noticeTypes": ["solicitation", "sources-sought"],
"state": "VA",
"responseDeadlineAfter": "2026-10-20",
"maxResults": 100
}
FieldMeaning
postedFrom, postedTo2026-10-01 or relative (7 days). Empty = yesterday. At most 365 days.
naicsCodes2 to 6 digits. Prefixes match every code that starts with them.
pscCodesProduct and Service Codes or prefixes (D302, D3).
setAsidessmall-business, 8a, wosb, sdvosb, hubzone.
noticeTypessolicitation, presolicitation, sources-sought, award (SAM.gov mode).
agencyPart of an agency, sub-tier or office name.
statePlace of performance, two letters.
keywordsSAM.gov mode: title or solicitation number contains any keyword. USAspending mode: award text.
responseDeadlineAfterOnly notices due on or after this date.
includeBuyerHistoryAdd buyerAwardsLast12m (default on).
maxResultsUp to 5,000 (default 50).

Output example

Real output of a local run on 7 October 2026 with the default input, which ran in USAspending-only mode because the SAM.gov cache Worker was not deployed yet in the test environment. The first four contract awards:

Award IDSub-tier agencyNAICSPostedAwardeeAmount (USD)
36C25227F0018Department of Veterans Affairs3345102026-10-04INSPIRE MEDICAL SYSTEMS, INC.25,075.38
36C25227F0017Department of Veterans Affairs3345102026-10-04INSPIRE MEDICAL SYSTEMS, INC.25,075.38
36C24627P0008Department of Veterans Affairs6232202026-10-04MYROVER-REESE FELLOWSHIP HOMES, INC.321,000.00
47QSWA27F00P1Federal Acquisition Service4238402026-10-03GIGA, INC.35.82

The buyer history was checked live against USAspending for three agencies (contracts in NAICS 541512, 7 Oct 2025 to 7 Oct 2026): Department of the Army 535 contracts / $1.36 billion, Federal Acquisition Service 320 / $6.36 billion, Department of the Navy 4,395 / $1.32 billion.

An opportunity row in SAM.gov mode looks like this (illustrative: the cache Worker and its SAM.gov key were not available when this README was written, so this row was built from the documented response format with made-up values; it was run through the Actor with a local stand-in for the cache):

{
"source": "sam.gov",
"noticeId": "0123456789abcdef0123456789abcdef",
"title": "Cloud migration support services",
"noticeType": "Solicitation",
"solicitationNumber": "EXAMPLE-26-R-0001",
"agency": "DEPT OF THE ARMY",
"subTierAgency": "DEPT OF THE ARMY",
"office": "W912 EXAMPLE CONTRACTING OFFICE",
"naicsCode": "541512",
"pscCode": "D302",
"setAside": "Total Small Business Set-Aside (FAR 19.5)",
"postedDate": "2026-10-06",
"responseDeadline": "2026-10-27T14:00:00-04:00",
"placeOfPerformance": { "city": "Fort Example", "state": "VA", "country": "USA" },
"pointOfContact": [{ "type": "primary", "fullName": "Example Officer", "email": "contracting.officer@example.gov", "phone": "5555550100", "title": "Contracting Officer" }],
"samUrl": "https://sam.gov/opp/0123456789abcdef0123456789abcdef/view",
"attachmentLinks": ["https://sam.gov/api/prod/opps/v3/opportunities/resources/files/aaaa/download"],
"buyerAwardsLast12m": {
"count": 535,
"totalValue": 1362571312.68,
"currency": "USD",
"agency": "Department of Defense / Department of the Army",
"naics": "541512",
"periodFrom": "2025-10-07",
"periodTo": "2026-10-07",
"scope": "Contracts of the same sub-tier agency in the same NAICS code"
}
}

How much does it cost?

This Actor uses pay per event:

EventPrice
Opportunity (or award) returned, one row each$0.002
Info rows, error rows and "no results" rowsfree
  • 1,000 rows cost $2. The default run (50 rows at most) costs up to $0.10.
  • SAM.gov and USAspending are free government APIs. Apify charges a tiny standard start fee per run.
  • Set Maximum cost per run and the Actor stops when it is reached.

Limitations

  • SAM.gov data comes from a daily cache: it holds yesterday's and earlier days' notices (up to 30 days, from the day the cache started), updated once a day. A notice posted today appears tomorrow. Dates outside the cache are not available.
  • Buyer history is at sub-tier agency level, not office level: the USAspending search cannot filter by contracting office. The scope field says exactly what was counted. It is matched by agency name; when the name cannot be matched, buyerAwardsLast12m is null.
  • The value is obligated dollars in the period, not the face value of multi-year contracts.
  • All filters are applied by the Actor on the cached notices (NAICS prefixes, PSC, set-asides, notice types, agency, state, keywords, deadline).
  • Keywords search the title and solicitation number in SAM.gov mode, not the long description.
  • Points of contact are published by the agency; the Actor does not add or guess any.
  • Awards reach USAspending with a delay of days, so USAspending-only mode shows the last 7 days by default.

FAQ

Is this official data?

Yes. Opportunities come from the SAM.gov Get Opportunities API v2 and award history from the USAspending API. Both are US government data, free to use.

Do I need a SAM.gov key?

No. You do not enter anything. The owner's cache Worker holds the key and makes about 1 to 3 SAM.gov requests a day. If the cache is down, the Actor returns recent awards from USAspending instead.

Why is buyerAwardsLast12m empty on some rows?

The agency name in the notice could not be matched to a USAspending agency, or you turned includeBuyerHistory off.

Is this the same schema as the EU tenders Actor?

The main fields (noticeId, title, noticeType, buyer, dates, links, retrievedAt, error, errorMessage) follow the same conventions, with US-specific fields added (NAICS, PSC, set-aside, place of performance).

More tools from the same developer

All pay-per-result, no proxy or login needed, built and maintained by the same developer:

Website audits

Company data and compliance

Media and AI

Market signals

Feedback

Missing a field you want to track? Open an issue on the Issues tab.