Track EU Public Tenders (TED) as JSON: Buyer, Deadline and CPV Codes Without a Scraper
Description and use
Automated retrieval of TED tenders as JSON without scraping, using an Apify Actor and an n8n workflow to update a Google Sheet daily.
Problem
Missing a bid deadline in EU public procurement leads to lost revenue, but TED’s UI is human‑centric and not script‑friendly.
Outcome
Automated retrieval of TED tenders as clean JSON, eliminating the need for manual browsing or HTML scraping, and enabling daily updates in a spreadsheet.
Workflow
- 1. Create an Apify token (free tier works).
- 2. Send a POST request to https://api.apify.com/v2/acts/steadfetch~ted-tender-monitor/run-sync-get-dataset-items with Authorization header and JSON body containing query and maxResults.
- 3. Receive a JSON array of tender items, each validated against a schema and containing buyer, title, publication and deadline dates, CPV codes, notice link, and estimated value.
- 4. Optionally import the provided n8n workflow to run daily at 07:00 and append each tender to a Google Sheet.
- 5. Use the data for triage or further automation.
Evidence
Every morning, thousands of new procurement notices land on TED (Tenders Electronic Daily), the official journal of EU public procurement.
The Actor queries the official TED public procurement notices and returns one dataset item per tender, validated against a schema before it is stored.
It runs on Apify's pay-per-event model: 2.00 USD per 1,000 tenders (0.002 USD per validated tender delivered) plus a 0.00005 USD charge per run start.
Both snippets come straight from the examples repository, where each Steadfetch Actor has a folder with a README, an API call, JavaScript and Python clients, and a real example of the output.
If you would rather not write code at all, the same folder ships an n8n workflow you can import and activate: it runs daily at 07:00, calls the Actor, and appends one row per tender to a Google Sheet.
- Record date: 2026-10-27T05:11:39.796Z