TenderFeed: EU Public Tenders Scraper (TED API) avatar

TenderFeed: EU Public Tenders Scraper (TED API)

Pricing

from $2.00 / 1,000 results

Go to Apify Store
TenderFeed: EU Public Tenders Scraper (TED API)

TenderFeed: EU Public Tenders Scraper (TED API)

Search EU public procurement tenders from TED (Tenders Electronic Daily) by keyword, CPV, country, date and value. Normalized JSON/CSV with buyers, deadlines, values. GDPR-safe defaults. MCP-ready.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

TenderFeed

TenderFeed

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

EU Public Tenders Scraper (TED API) by TenderFeed

Search EU public procurement tenders from TED (Tenders Electronic Daily), the official journal of every public contract above EU thresholds across the 27 EU member states plus EEA countries. Filter by keyword, CPV code, buyer country, notice type, publication date, deadline and estimated value, and get clean, normalized JSON, CSV or Excel with buyer organisation, deadlines, values and document links (contact person details optional, off by default for GDPR).

Built by TenderFeed (tenderfeedhq.com) on the official TED Search API v3. No API key, no login, no HTML scraping, no CAPTCHAs.

What can you do with it?

  • Find new EU tenders daily for your industry (IT, construction, medical, consulting, energy...) and send them to Slack, email, Google Sheets or your CRM.
  • Lead generation for B2G sales teams: buyer organisation and city in every row; contact name, email and phone on request (includeBuyerContacts).
  • Competitive intelligence: pull contract award notices (result) to see who wins which contracts, and for how much.
  • Market research: count tenders by CPV code, country and value to size public-sector demand.
  • AI agents and RAG: call this Actor as an MCP tool (via the Apify MCP server) so Claude, ChatGPT or your own agent can search live EU tenders.

Why TenderFeed?

  • Official data only: the free TED Search API v3 from the EU Publications Office.
  • One schema across countries: the same fields as our ../sam-gov-opportunities and ../uk-tenders Actors, so you can merge US, UK and EU tenders in one sheet.
  • English-first: picks titles and descriptions in your preferred languages and falls back to the original.
  • Value normalisation: a numeric estimatedValue + currency (procedure estimate, total value, or the sum of lot estimates).
  • Robust: cursor pagination (beyond the 15,000-result page limit), retries with backoff, and rate-limit handling.

Input

FieldExampleNotes
keywords["software", "cloud"]Full-text search in any language
keywordModeanyany or all
cpvCodes["72000000"]Parent codes include children (72000000 = all IT services)
countries["DE", "FR", "NL"]ISO alpha-2 buyer countries
noticeTypes["competition"]competition (calls for tender), result (awards), planning, change...
publishedFrom / publishedTo"14 days", 2026-10-01Default: last 30 days
onlyOpentrueOnly tenders with a deadline today or later
minValue / maxValue1000000In the notice currency (mostly EUR)
maxResults2500 = no limit
customQueryclassification-cpv IN (72000000) AND buyer-country=DEUTED expert query, overrides the filters
{
"keywords": ["software", "cloud"],
"countries": ["DE", "FR", "NL"],
"noticeTypes": ["competition"],
"publishedFrom": "14 days",
"onlyOpen": true,
"maxResults": 250
}

Output

One row per notice. Real example from a live run (2026-10-29):

{
"source": "ted",
"sourceId": "711842-2026",
"url": "https://ted.europa.eu/en/notice/-/detail/711842-2026",
"title": "ITDZ Berlin: Zutrittskontrollsystem",
"noticeType": "cn-standard",
"status": "active",
"procedureType": "open",
"contractType": "supplies",
"buyerName": "IT-Dienstleistungszentrum Berlin (AöR)",
"buyerCountry": "DE",
"buyerCity": "Berlin",
"cpvCodes": ["35113300", "72250000"],
"publishedAt": "2026-10-15",
"deadlineAt": "2026-11-16",
"estimatedValue": 442600.0,
"currency": "EUR",
"documentsUrl": "https://www.meinauftrag.rib.de/public/DetailsByPlatformIdAndTenderId/platformId/2/tenderId/211194"
}

Full field list (shared TenderFeed schema): source, sourceId, ocid, url, title, description, noticeType, status, procedureType, contractType, buyerName, buyerCountry, buyerCity, buyerContactName, buyerContactEmail, buyerContactPhone, cpvCodes, naicsCodes, otherClassificationCodes, placeOfPerformance, publishedAt, deadlineAt, estimatedValue, currency, setAside, documentsUrl, submissionUrl, awardedValue, awardees, scrapedAt.

Export as JSON, CSV, Excel, XML or RSS, or read it via the Apify API. The example uses the default includeBuyerContacts: false; with true, this notice also carries "buyerContactEmail": "ausschreibungen@itdz-berlin.de".

Buyer contacts and GDPR (includeBuyerContacts)

By default (includeBuyerContacts: false) the Actor returns organisation-level data only: buyer name, country, city, documents and submission links. Contact person names, email addresses and phone numbers are removed from the output, from the optional raw payload, and email addresses embedded in description text are masked as [email removed].

Set includeBuyerContacts: true to keep the contact name, email and phone exactly as the authority published them. Only do this if you have a lawful basis under the GDPR (for example legitimate interest for B2G sales) and will honour objection and erasure requests. In a live test (40 TED notices, 2026-10-29) contacts-on returned an email on 40/40 rows, a phone on 40/40 and a named person on 23/40; contacts-off returned 0 of each while keeping buyerName on 40/40.

Daily alerts ("only new" monitoring mode)

Turn on onlyNew and give the search a monitoringId (e.g. "it-tenders-daily"), then schedule the Actor daily. Each run returns, and charges for, only notices you have not received before. Pair it with an Apify integration (Slack, email, Google Sheets, Zapier, Make) to get a ready-made tender alert.

Pricing

Pay per result: $2.00 per 1,000 tenders ($0.002 per row), plus Apify's small run-start fee. A daily alert returning 50 new tenders costs about $3 a month. Set Max cost per run to cap spending; the Actor stops cleanly at your limit.

Use it as an MCP tool for AI agents

Add the Apify MCP server (https://mcp.apify.com) to Claude Desktop, Cursor or any MCP client and enable this Actor. Your agent can then ask: "Find open IT tenders in Germany above EUR 500k closing this month".

FAQ

Is this legal? Yes. TED data is published by the EU Publications Office for re-use (Commission Decision 2011/833/EU). Personal contact details are excluded unless you set includeBuyerContacts: true; if you do, you are the controller for that data and must process it in line with the GDPR.

How fresh is the data? TED publishes new notices every working day; the Actor queries the live API at run time.

Can I schedule it? Yes, use Apify Schedules (e.g. every morning) with publishedFrom: "1 day".

Something missing? Open an issue on the Actor page. TenderFeed answers within one business day.