Government Tender Scraper - SAM.gov & TED EU Procurement
Pricing
from $4.00 / 1,000 tenders
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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
| Field | Meaning |
|---|---|
keywords | Return notices matching any of these in title, description, or CPV/NAICS codes |
excludedKeywords | Drop notices mentioning any of these |
sources | Any of sam.gov, ted.europa.eu, find-tender.service.gov.uk. All three by default |
samApiKey | Free key from sam.gov. Required only for SAM.gov; TED and Find a Tender need none |
countries | ISO codes to restrict TED results to, e.g. DEU, FRA, ESP |
daysBack | How far back to look for newly published tenders. Default 7 |
onlyNew | Return only tenders not seen in previous runs. Default true |
minValue / maxValue | Contract value bounds |
includeExpired | Keep tenders whose deadline has passed. Default false |
maxResults | Cap 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
- Set
keywordsto the work you actually bid on — for example["asbestos", "demolition"] - Leave
onlyNewon - Schedule the Actor to run every morning
- 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.