Government Tender Scraper - SAM.gov & TED EU Procurement avatar

Government Tender Scraper - SAM.gov & TED EU Procurement

Pricing

from $4.00 / 1,000 tenders

Go to Apify Store
Government Tender Scraper - SAM.gov & TED EU Procurement

Government Tender Scraper - SAM.gov & TED EU Procurement

Scrape government tenders and public procurement notices from SAM.gov (US federal) and TED (European Union) in one run. Filter by keyword, country, and contract value. Remembers what it already returned, so scheduled runs deliver only new tenders instead of the same list every time.

Pricing

from $4.00 / 1,000 tenders

Rating

0.0

(0)

Developer

Phupatchara Treenuson

Phupatchara Treenuson

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Government Tender Scraper — SAM.gov & TED EU Procurement Notices

Scrape government tenders and public procurement notices from SAM.gov (US federal contract opportunities), TED (Tenders Electronic Daily, the European Union's procurement journal), and Find a Tender (the UK's central procurement platform) in a single run. Filter by keyword, country, contract value, and deadline. Export to JSON, CSV, or Excel.

Unlike other tender scrapers, this one remembers what it already returned. Schedule it daily and you receive only the new tenders published since your last run — not the same list every morning with the diffing left to you.

What this Actor does

  • Scrape US government contracts from the official SAM.gov opportunities API
  • Scrape EU public tenders from the official TED API v3, covering all 27 member states
  • Scrape UK public contracts from the official Find a Tender OCDS API
  • Search three jurisdictions in one run, with one deduplication state across all of them
  • Get only new tenders — built-in deduplication across scheduled runs
  • Filter tenders by keyword, so you see only contracts matching what you sell
  • Filter by contract value and by country
  • Exclude irrelevant notices with negative keywords
  • One normalised schema across all sources, so US, EU, and UK notices arrive identically shaped

Who uses this

  • Contractors and suppliers bidding on government contracts who want a daily feed of relevant opportunities without paying $50–500/month for a tender alert service
  • AI agents and MCP tools that need public procurement data as a callable tool
  • Market researchers tracking public spending in a sector or country
  • Lead generation for companies selling into the public sector

Example output

One record per notice, identical shape regardless of source:

{
"uid": "3f9a1c2b7d4e5f60",
"source": "ted.europa.eu",
"source_id": "547030-2026",
"title": "Malta – Pipes and fittings – Supply and delivery of ductile iron pipes",
"buyer": "Water Services Corporation",
"country": "MLT",
"published": "2026-08-07",
"deadline": "2026-09-16",
"value_amount": 1155475.0,
"value_currency": "EUR",
"categories": ["44163000", "44163100", "42131280"],
"description": "The subject of this tender is the supply and delivery of ductile iron pipes...",
"url": "https://ted.europa.eu/en/notice/-/detail/547030-2026"
}

Input parameters

FieldMeaning
keywordsReturn notices matching any of these in title, description, or CPV/NAICS codes
excludedKeywordsDrop notices mentioning any of these
sourcesAny of sam.gov, ted.europa.eu, find-tender.service.gov.uk. All three by default
samApiKeyFree key from sam.gov. Required only for SAM.gov; TED and Find a Tender need none
countriesISO codes to restrict TED results to, e.g. DEU, FRA, ESP
daysBackHow far back to look for newly published tenders. Default 7
onlyNewReturn only tenders not seen in previous runs. Default true
minValue / maxValueContract value bounds
includeExpiredKeep tenders whose deadline has passed. Default false
maxResultsCap on notices per run, and therefore on cost. Split evenly across the selected sources so every jurisdiction is represented

How to scrape government tenders daily

  1. Set keywords to the work you actually bid on — for example ["asbestos", "demolition"]
  2. Leave onlyNew on
  3. Schedule the Actor to run every morning
  4. Connect the dataset to email, Slack, or a webhook

Each run delivers only tenders published since the last one.

How to get a SAM.gov API key

Free. Register at sam.gov, then request a public API key from your account details page. Registered keys allow 1,000 requests per day. TED and Find a Tender require no key at all, so you can run the EU and UK sources with no setup.

Behaviour worth knowing

Tenders with no published value are kept. Most notices publish no contract value, so filtering them out would hide the majority of the market. Filter on value_amount yourself if you disagree.

Tenders with no deadline are kept. Several notice types carry none, and missing a live opportunity is worse than seeing one extra row.

Partial results beat no results. If one source fails mid-run, whatever it returned is kept and the other sources still report.

Already-awarded UK contracts are excluded. The Find a Tender feed mixes open opportunities with contracts already awarded. Awards are dropped, since they are decisions already made rather than work you can bid on.

State commits only after delivery. A run that fails before pushing results re-reports them next time rather than losing them.

Seen-state is forgotten after 180 days, so stored state cannot grow without bound.

Data sources

All three are official public APIs intended for programmatic access. No login-walled scraping, no circumvention of access controls, no personal data.

Pricing

Pay per event: you are charged per tender delivered. A run that finds nothing new costs nothing beyond platform compute. Cap your spend with maxResults.

Development

python -m venv .venv
./.venv/bin/pip install pytest httpx
./.venv/bin/python -m pytest tests/ -q

Parsing, filtering, and deduplication are pure functions with no network access, so the suite runs offline in under a second. Only src/main.py touches the network.