Tenders Scraper: EU TED, UK Find a Tender & AusTender
Pricing
from $1.60 / 1,000 tender notices
Tenders Scraper: EU TED, UK Find a Tender & AusTender
Scrape public tenders from the official EU TED, UK Find a Tender, UK Contracts Finder and AusTender APIs. Filter by keyword, country, CPV code and notice type; get normalized JSON with deadlines, values and buyers, only-new monitoring and webhooks. Pay per tender ($0.002).
Pricing
from $1.60 / 1,000 tender notices
Rating
0.0
(0)
Developer
Owlabee
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
Share

What it does
Tenders Scraper collects public tenders and contract award notices from four official open procurement APIs and returns them as one normalized JSON record shape:
- EU TED (Tenders Electronic Daily): above-threshold public procurement in the 27 EU countries, the EEA and partner countries, searched with TED's own full-text search.
- UK Find a Tender: UK above-threshold notices (Procurement Act 2023 and earlier regimes).
- UK Contracts Finder: UK central government and below-threshold notices, with the "suitable for SMEs" flag.
- AusTender: Australian Commonwealth contract notices (awards).
It is built for bid teams, procurement consultants and suppliers who sell to government and want a daily list of new calls for competition in their sector: filter by keyword, buyer country, CPV or UNSPSC code and notice type, run it on a schedule with Only new or updated since last run, and get only the notices you have not seen yet, by dataset, API, webhook or the Apify MCP server. Every record carries the deadline, estimated value and currency, the buyer, the CPV or UNSPSC classifications, lots, links to the notice, the procurement documents and the e-submission page, and the source's licence and attribution line. No API key, no login and no proxy are needed.
The record shape is the same as the opportunity records of Grants.gov API & SAM.gov Scraper (opportunityId, title, agency, postedDate, closeDate, noticeType, classifications, estimatedValue), so US and international results can be merged into one table.
How to use
- Enter one or more Keywords (or
*for every notice in the window) and pick the Sources. - Optionally narrow by Notice types, Buyer countries (TED), CPV codes or UNSPSC codes (AusTender), and set Published within (days) and Max results.
- Click Start. For alerts, save the input as a task, turn on Only new or updated since last run, and schedule it daily with a Webhook URL or an Apify integration (Slack, email, Google Sheets).
Quick start input
{"keywords": ["software"],"sources": ["ted"],"noticeTypes": ["bid"],"postedWithinDays": 7,"maxResults": 20}
More inputs
- IT services tenders in Germany and France:
{"keywords": ["*"], "sources": ["ted"], "countries": ["DE", "FR"], "cpvCodes": ["72000000"], "postedWithinDays": 3} - UK cleaning contracts, open tenders and awards:
{"keywords": ["cleaning"], "sources": ["findATender", "contractsFinder"], "noticeTypes": ["bid", "award"], "postedWithinDays": 14} - Australian Government consulting contracts awarded this week:
{"keywords": ["*"], "sources": ["ausTender"], "unspscCodes": ["80100000"], "postedWithinDays": 7}
Coverage
| Source | sources value | What it returns | Keyword search | Licence |
|---|---|---|---|---|
| EU TED | ted | Calls for competition, award and direct-award notices, prior information notices | TED full-text search, on the server | CC BY 4.0 (Commission Decision 2011/833/EU) |
| UK Find a Tender | findATender | Tender, award and planning notices (OCDS) | Matched by the Actor in the date window | Open Government Licence v3.0 |
| UK Contracts Finder | contractsFinder | Tender, award and pipeline notices (OCDS), SME suitability | Matched by the Actor in the date window | Open Government Licence v3.0 |
| AusTender | ausTender | Contract notices (awards) with value, dates and UNSPSC code | Matched by the Actor in the date window | CC BY 3.0 AU |
The UK and Australian APIs have no keyword parameter: the Actor reads their date window once per run and keeps notices whose title, description, buyer name or code descriptions contain every word of the keyword. AusTender's open approaches to market are not in its open API, so AusTender returns awarded contracts only. countries narrows TED; the UK and Australian sources are national.
Input
| Field | Type | Required | Description |
|---|---|---|---|
keywords | string[] | yes | Search terms; * = every notice in the window. One search run per source and keyword |
sources | string[] | no | ted, findATender, contractsFinder, ausTender (default ted) |
noticeTypes | string[] | no | bid, award, planning (default bid) |
countries | string[] | no | Buyer countries for TED, two- or three-letter ISO codes |
cpvCodes | string[] | no | CPV codes or prefixes (TED and UK); 72000000 matches the whole 72 branch |
unspscCodes | string[] | no | UNSPSC codes or prefixes (AusTender) |
postedWithinDays | integer | no | 1–90 (default 7) |
maxResults | integer | no | Items per run across all keywords and sources (default 200) |
maxPagesPerSource | integer | no | Pages per source (default 10, max 50) |
fetchDetails | boolean | no | One more TED request per notice for lots, documents and submission links (default off) |
maxDetails | integer | no | Cap on TED detail requests (default 50) |
omitContacts | boolean | no | Leave out buyer contact persons (default on) |
includeIndividualRecipients | boolean | no | Name award winners who read as private individuals (default off) |
onlyNewSinceLastRun | boolean | no | Monitor mode: only new or changed notices (default off) |
stateStoreName | string | no | Key-value store for the monitor snapshots (default tenders-scraper-state) |
webhookUrl | string | no | POST target for the run summary and up to 500 notices |
Output example

A TED call for competition with details fetched (description shortened):
{"source": "ted","recordType": "opportunity","keyword": "*","opportunityId": "ted:779189-2026","noticeId": "779189-2026","title": "Slovakia – Financial transaction processing and clearing-house services – Akceptácia platobných kariet prostredníctvom internetu","titleOriginal": "Akceptácia platobných kariet prostredníctvom internetu","agency": "Železničná spoločnosť Slovensko, a.s.","status": "open","postedDate": "2026-11-09","closeDate": "2026-12-08","deadline": "2026-12-08","url": "https://ted.europa.eu/en/notice/-/detail/779189-2026","fetchedAt": "2026-11-09T06:02:33.288Z","jurisdiction": "Slovakia","country": "SK","buyerCountries": ["SK"],"noticeType": "bid","type": "cn-standard","procurementMethod": "open","contractNature": ["services"],"description": "Predmetom zákazky je poskytovanie služby platobnej brány …","estimatedValue": 2794882,"currency": "EUR","awardedValue": null,"classifications": [{ "scheme": "CPV", "code": "66172000", "description": null }],"buyer": { "name": "Železničná spoločnosť Slovensko, a.s.", "id": null, "country": "SK", "city": "Bratislava", "website": null },"awardees": [],"placeOfPerformance": ["anyw"],"documentsUrl": "https://www.uvo.gov.sk/vyhladavanie/vyhladavanie-zakaziek/dokumenty/566107","submissionUrl": "https://zssk.eranet.sk/#/tenderPublicDetails/85","lots": [{ "lotId": "LOT-0001", "title": "Akceptácia platobných kariet prostredníctvom internetu", "estimatedValue": 2794882, "currency": "EUR", "deadline": "2026-12-08", "durationValue": 48, "durationUnit": "MONTH" }],"sourceLicense": "CC-BY-4.0 (Commission Decision 2011/833/EU)","attribution": "© European Union, 1998–2026, data from TED (Decision 2011/833/EU)","detailsFetched": true}
noticeType is bid, award, planning, intent-to-award (TED direct-award transparency notices) or other; type keeps the source's own notice type. In monitor mode records also carry isNew and isUpdated. Error items look like { "source": "ted", "keyword": "...", "error": "TED_HTTP_503", "errorMessage": "...", "sourceLicense": "...", "attribution": "..." } and are charged as one tender notice, because the work to find the problem was done. The run's SUMMARY record lists the charges, the sources that stopped at a page cap, the attribution lines and the request count.
Pricing
Pay per event. You only pay for what the Actor produces; set a maximum cost per run in the run options to cap spend.
| Event | Price | Notes |
|---|---|---|
| Tender notice | $0.002 | Per dataset item, including error items |
| TED notice detail | $0.003 | Per TED detail request, only with Fetch TED notice details on |
| Search run | $0.005 | Per source and keyword searched, whatever it returns (notices, nothing, only already-seen notices, an error) |
| Actor start | $0.00005 | Apify platform event |
Store discounts: Silver pays $0.0018 / $0.0027 / $0.0045 and Gold $0.0016 / $0.0024 / $0.00425 for the three events.
Example: 1,000 TED notices for one keyword ≈ 1,000 × $0.002 + $0.005 = $2.01. A daily monitor of 3 keywords on TED that finds 20 new notices a day ≈ 3 × $0.005 + 20 × $0.002 = $0.055 a day. Platform compute and transfer are included in the event prices; the default run memory is 512 MB.
Limits and fair use
- Requests are spaced at least 0.5 s apart per host and retried with backoff on 429 and 5xx; each request has a 20 s deadline including retries, and a source that produces nothing for 60 s is abandoned with a charged error item. Each source-and-keyword search has a 300 s time budget. After two failed keywords the rest of that source's keywords get an error item without new requests.
- TED reads up to Max pages per source pages of 100 notices per keyword (default 10). The shared UK and Australian windows read at most 3 Find a Tender pages, 5 Contracts Finder pages or 7 AusTender days per keyword in the run; the summary says when a cap was hit. Narrow the window or the codes to see more.
- Monitor mode keeps one snapshot per source and keyword (notice ids and fingerprints only) in your own key-value store. The first run is a baseline and emits and charges for everything it finds; later runs read at most 3 pages and stop at the first page already seen.
- Only the official public APIs are used: no login, no proxy, no browser. The User-Agent identifies the Actor with the contact
data@owlabee.com.
Related Actors
- Grants.gov API & SAM.gov Scraper — Federal Grants Feed — US federal grants, SAM.gov contract opportunities and state and local bids in the same record shape.
- Grant Matching & RFP Bid/No-Bid Scorer (AI) — score US grant and contract opportunities for bid/no-bid against your company profile.
Use from AI agents (MCP)
Pin this Actor in the Apify MCP server with https://mcp.apify.com?tools=owlabee/tenders-scraper, or let the agent find it with search-actors. It is pay-per-event with limited permissions. Prompts that map onto the input:
- "Find EU tenders for cybersecurity services published this week in Germany, Austria and the Netherlands, with deadlines and estimated values."
- "Every morning, send my webhook the new UK Find a Tender and Contracts Finder notices for facilities management."
- "Which Australian Government contracts for IT consulting were awarded in the last 14 days, to whom and for how much?"
FAQ
Does this need proxies or an API key? No. All four sources are official open APIs that need no key or account. The Actor runs on Apify's standard infrastructure without proxies.
How is cost controlled? Every run is bounded by Max results, Max pages per source, Max detail fetches and the run's maximum total charge; the Actor stops cleanly when any is reached. Each search run is charged once, so the number of sources × keywords sets the fixed part of the cost.
Why does a UK or Australian keyword cost a search run when nothing matches? Those APIs have no keyword search, so the Actor still reads the date window to look. The search run pays for that reading.
Why are buyer contact names missing? Contact persons are personal data under the GDPR and UK GDPR, so Omit buyer contact persons is on by default. Turn it off to get the official contact exactly as the notice publishes it; you are then responsible for processing it lawfully. Supplier contacts are never included.
Why is an award winner's name null? When a winner's name reads as a private individual (a sole trader), it is withheld with nameWithheld: true; company winners are always named. Include award winners who are individuals turns this off if you have a lawful basis.
Can I get only new tenders every day? Yes: turn on Only new or updated since last run and schedule the task. Use a different State store name per schedule.
Support
Questions, bugs or a source you'd like added? Open an issue on the Actor's Issues tab, or email jacob@owlabee.com.
Changelog
- 0.1 (2026-11-09): first version: EU TED, UK Find a Tender, UK Contracts Finder and AusTender; CPV and UNSPSC filters; TED notice details; monitor mode; webhooks.
Legal
The records are public procurement notices as published by the sources. Keep the source's attribution with any redistribution; every record and the run summary carry it in sourceLicense and attribution:
- TED: "© European Union, 1998–2026, data from TED (Decision 2011/833/EU)", reusable under Commission Decision 2011/833/EU (CC BY 4.0).
- Find a Tender and Contracts Finder: "Contains public sector information licensed under the Open Government Licence v3.0."
- AusTender: "© Commonwealth of Australia, CC BY 3.0 AU."
owlabee imposes no further restriction on the data; the fee is for the run, not a licence on the records. Unofficial: not affiliated with or endorsed by the European Union, the Publications Office of the EU, the UK Cabinet Office, Crown Commercial Service or the Australian Department of Finance; the names identify the source of the records.
Buyer contact persons and award winners who are individuals are left out by default (see the FAQ). If you turn either on, you are the controller of that personal data and responsible for a lawful basis, including for any direct marketing. Not a consumer report. Not for employment, credit, insurance, housing or tenant-screening decisions.