EU Tenders API (TED): Public Procurement Search avatar

EU Tenders API (TED): Public Procurement Search

Pricing

$3.00 / 1,000 tender notice returneds

Go to Apify Store
EU Tenders API (TED): Public Procurement Search

EU Tenders API (TED): Public Procurement Search

Search EU public procurement notices in TED by keyword, buyer country, CPV code and date. Flat records with buyer, deadline, value and winners.

Pricing

$3.00 / 1,000 tender notice returneds

Rating

0.0

(0)

Developer

Data and Beyond

Data and Beyond

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 minutes ago

Last modified

Share

Search EU public procurement notices in TED (Tenders Electronic Daily) by keyword, country, CPV code and date. Each notice comes back as one flat record with buyer, deadline, value and winners.

Example input

{
"cpvCodes": [
"72000000"
],
"countries": [
"DE"
],
"publishedWithinDays": 14,
"maxResults": 20
}

How it works

  • All filters are optional and combined with AND: keywords (full text), countries (buyer country, ISO-2), cpvCodes, publishedWithinDays (default 30) or publishedFrom, and onlyOpenCalls.
  • If you know TED's expert query syntax, pass it as rawQuery.
  • Results are newest first. Each record links to the notice and its PDF.

Output

One JSON record per result with: publicationNumber, title, buyerName, buyerCountry, buyerCity, publicationDate, noticeType, procedureType, contractNature, cpvCodes, tenderDeadline, estimatedValue, estimatedValueCurrency, awardedTotalValue, winners, placeOfPerformance, url, pdfUrl, source.

Limitations

  • Only what TED publishes: notices above the EU thresholds plus whatever national buyers choose to publish there. Many smaller national tenders are not in TED.
  • Values and deadlines are often missing in the notices themselves.
  • On Apify's free plan, start one run at a time. Several runs started at once can be refused with HTTP 402 (memory limit for concurrent runs).

Invalid input

Text fields or list items that contain only spaces stop the run with a clear error before any external API is called. Nothing is charged.

No results

A query with no hits gives one row: {"query": ..., "status": "NOT_FOUND", "message": "No results for ..."}. It is not charged.

When something goes wrong

If the upstream API is down, times out or rejects the request, the run fails with a status message that says which API failed and why. You won't get an empty "success" that looks like "no results".

Price

$0.003 per notice. No start fee. Apify's free plan includes a small monthly credit, so testing costs next to nothing.

Using it from an MCP client

Apify's MCP server exposes it as a tool. You need an Apify account and API token (the free plan is enough to try it):

{ "mcpServers": { "apify": { "url": "https://mcp.apify.com/?tools=dataandbeyond/eu-tenders", "headers": { "Authorization": "Bearer <APIFY_TOKEN>" } } } }

Or call it over HTTP and get the rows back directly:

curl -X POST "https://api.apify.com/v2/acts/dataandbeyond~eu-tenders/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" -H 'Content-Type: application/json' -d '{"cpvCodes": ["72000000"], "countries": ["DE"], "publishedWithinDays": 14, "maxResults": 20}'

Source and license

TED API v3 (Publications Office of the EU). Reuse, including commercial, under Commission Decision 2011/833/EU. Each record has a source field. Follow the source license if you redistribute the data.

Contact

Mark, Data and Beyond ApS (Denmark). Open an issue on the Actor page if something is wrong or missing.