EU Tenders Monitor (TED official API)
Pricing
from $4.00 / 1,000 new tender notices
EU Tenders Monitor (TED official API)
Weekly EU tender alert for bid consultants: new TED calls for tender filtered by CPV code, country and title keywords, one clean row per notice with buyer, deadline, value and link. Official TED API, no scraping. You pay only for notices you have not seen before.
Pricing
from $4.00 / 1,000 new tender notices
Rating
0.0
(0)
Developer
Colby Ham
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
A weekly EU tender alert. It pulls new calls for tender from TED (Tenders Electronic Daily, the EU's official procurement journal), filters them by CPV code, country and title keywords, and returns one clean row per notice: buyer, deadline, estimated value, CPV codes and a link to the notice. Schedule it weekly with Only new notices on and you only get, and only pay for, notices you have not seen before.
Who it is for
- Bid and tender consultants who sweep TED every week for clients in a few CPV families and countries.
- Sales teams at IT, engineering and services firms that sell to the public sector in the EU.
- Anyone who wants TED results in a spreadsheet, CRM, Slack or email digest, not in a browser tab.
What it does
- Queries TED's official Search API with your CPV prefixes, countries (place of performance), keywords and publication window.
- Normalises each notice into one flat row (English title where TED provides one).
- With Only new notices on (off by default; turn it on for schedules), keeps a bookmark per feed name: the last TED publication number it delivered. The next run fetches only notices published after it, oldest first, so a weekly schedule becomes an alert that never double-bills, and a paused or capped run catches up with no gap. Each feed name has its own bookmark, so several tasks with different filters never mute each other.
- Writes a
SUMMARYrecord (query, matched, new, run time) to the run's key-value store.
Input example
{"cpv": ["72", "48"],"countries": ["DEU", "NLD"],"keywords": [],"days": 7,"noticeTypes": ["cn-standard", "cn-social"],"onlyNew": true,"feedName": "de-nl-software","maxRows": 500}
cpv: CPV prefixes, e.g.72IT services,48software packages,45construction,79business services. Empty = all.countries: ISO-3 codes for place of performance (DEU,FRA,NLD, ...). Empty = all.keywords: optional title words, any language (titles are in the buyer's language, so add local terms).days: publication window, default 7.noticeTypes: default open calls for tender; addpin-onlyfor prior information orcan-standardfor awards.onlyNew: default off, turn on for scheduled alerts; the bookmark lives in a named key-value storeted-feed-<feedName>in your account.feedName: one bookmark per name (defaultdefault). Give each task its own name; use a new name to start over or after changing filters.maxRows: hard cap per run, which also caps cost.
Output example
Real rows from a local run on 2026-09-27 (input above, 200 notices matched):
[{"noticeId": "648029-2026","title": "Netherlands – Information technology services – Datafundament gemeente Den Helder","buyer": "Gemeente Den Helder","buyerCountry": "NLD","placeOfPerformance": ["NLD"],"cpv": ["30236200", "72222300"],"noticeType": "cn-standard","published": "2026-09-21","deadline": "2026-11-20","estimatedValue": 1845000.0,"currency": "EUR","url": "https://ted.europa.eu/en/notice/-/detail/648029-2026","pdf": "https://ted.europa.eu/en/notice/648029-2026/pdf"},{"noticeId": "648136-2026","title": "Netherlands – Software-related services – Softwarebroker","buyer": "Gemeente Nieuwegein","buyerCountry": "NLD","placeOfPerformance": ["NLD"],"cpv": ["72260000", "72266000", "72268000"],"noticeType": "cn-standard","published": "2026-09-21","deadline": "2026-09-29","estimatedValue": 1040000.0,"currency": "EUR","url": "https://ted.europa.eu/en/notice/-/detail/648136-2026","pdf": "https://ted.europa.eu/en/notice/648136-2026/pdf"}]
deadline is empty and estimatedValue/currency are null when the notice does not state them.
Pricing
Pay per event: notice = $0.004 per new notice delivered ($4 per 1,000). Notices already delivered to you are skipped and not charged, so re-running the same window costs nothing but the start. Example: 2 CPV families in 2 countries is typically 100-300 new notices a week, about $0.40-$1.20.
Suggested schedule
Create a schedule (Apify Console > Schedules) running weekly, e.g. Monday 06:00 UTC (cron 0 6 * * 1), with days: 7, onlyNew: true and its own feedName. Connect the dataset to Google Sheets, Slack, email or a webhook via Integrations.
Why this and not a scraper
It reads TED's official Search API (https://api.ted.europa.eu/v3/notices/search), not the website, so it does not break when the site changes and it stays inside TED's terms.
Data source and licence
- TED API docs (docs.ted.europa.eu, fetched 2026-09-26): "The Search API does not require a key."
- TED legal notice (ted.europa.eu/en/legal-notice, fetched 2026-09-26): procurement notices are reusable under the Commission Decision of 12 December 2011 on the reuse of Commission documents, freely reusable for commercial or non-commercial purposes unless otherwise noted; editorial content CC BY 4.0; metadata CC0; the TED logo may not be used without consent.
- Attribution: "Source: TED, Publications Office of the European Union." No TED logo is used. No personal data is requested or stored.
- This Actor is not affiliated with or endorsed by the Publications Office of the European Union.
Development
Local run: PATH=.venv/bin:$PATH apify run -p -i '<json input>' (no login needed). Check: .venv/bin/python test_main.py. Publish steps: see PUBLISH.md. Terms re-read quarterly (brainstorm terms-watch).