Publications Office of the European Unionv3 current; v2 supported until v4Verified 2026-10-29

free EU tenders API for AI agents, TED API no key

The EU Publications Office’s official, free Search API over Tenders Electronic Daily (TED): one POST with an expert query returns published procurement notices from all EU member states as JSON. No key; the TED fair-usage policy allows 700 HTTP requests a minute.

Verified factsChecked 2026-10-29

PriceFree. The Search API is open to the general public, with no paid tier.3 [Verified 2026-10-29]
API key / authNone for searching or retrieving published notices; a key is needed only for endpoints that handle unpublished notices. Our keyless POST on 2026-10-29 returned HTTP 200.1 [Verified 2026-10-29]
Rate limitTED’s fair-usage policy: 700 HTTP requests in the last minute, 600 notice views or downloads in under 6 minutes from one IP, and 3 concurrent package downloads. Our responses carried no rate-limit headers.4 [Verified 2026-10-29]
Result capsUp to 250 notices and 10,000 fields (notices × fields) per page. Page-number mode stops at 15,000 notices per query; ITERATION mode with a token has no total cap. Our limit=251 request returned 400 SEARCH_EXCEEDS_MAX_LIMIT.3 [Verified 2026-10-29]
License / termsUnless otherwise noted, notices published in the OJ S can be freely reused for commercial or non-commercial purposes (Commission reuse decision of 12 December 2011). Site editorial content is CC BY 4.0 and metadata CC0; the TED logo needs permission.5 [Verified 2026-10-29]
Version statusv3 is current at the unified api.ted.europa.eu gateway; v2 stays supported until a v4 ships, with advance notice promised.1 [Verified 2026-10-29]
Query rulesquery and fields are required; scope is LATEST (current OJ S issue), ACTIVE or ALL (default); checkQuerySyntax=true validates a query without running it.3 [Verified 2026-10-29]

FeaturesChecked 2026-10-29

YesNoN/ANot published
CapabilityValueNote
StatusOne unified version for all TED APIs at api.ted.europa.eu; v4 plans will be announced in advance.v3 current; v2 supported until v41 [Verified 2026-10-29 on https://docs.ted.europa.eu/api/latest/index.html]One unified version for all TED APIs at api.ted.europa.eu; v4 plans will be announced in advance.
API key requiredNo key. Keyless POST /v3/notices/search returned HTTP 200 on 2026-10-29; keys are only for unpublished-notice endpoints.No2 [Verified 2026-10-29 by test request to https://api.ted.europa.eu/v3/notices/search]No key. Keyless POST /v3/notices/search returned HTTP 200 on 2026-10-29; keys are only for unpublished-notice endpoints.
Free tierFree. Open to the general public with no paid tier.Yes3 [Verified 2026-10-29 on https://api.ted.europa.eu/api-v3.yaml]Free. Open to the general public with no paid tier.
Rate limit600 notice views or downloads per 6 minutes per IP; 3 concurrent package downloads. 250 notices per page, 15,000 per query in page mode. No rate-limit headers in our responses.700 requests/min (fair use)4 [Verified 2026-10-29 on https://ted.europa.eu/en/news/fair-usage-policy-on-ted]600 notice views or downloads per 6 minutes per IP; 3 concurrent package downloads. 250 notices per page, 15,000 per query in page mode. No rate-limit headers in our responses.
Official MCP serverNo official MCP server from the Publications Office; an independent one at ted-mcp.eu (riigihanked.eu) answered keyless search calls in our test.Not published1 [Not published by vendor: checked 2026-10-29 on https://docs.ted.europa.eu/api/latest/index.html]No official MCP server from the Publications Office; an independent one at ted-mcp.eu (riigihanked.eu) answered keyless search calls in our test.
Official SDKNo official client SDK for search; the eForms SDK is for building and validating notices. Swagger spec at api.ted.europa.eu/swagger.Not published1 [Not published by vendor: checked 2026-10-29 on https://docs.ted.europa.eu/api/latest/index.html]No official client SDK for search; the eForms SDK is for building and validating notices. Swagger spec at api.ted.europa.eu/swagger.
Data license / termsNotices can be reused freely unless otherwise noted; site text CC BY 4.0, metadata CC0; TED logo needs consent.Free reuse (EU reuse policy)5 [Verified 2026-10-29 on https://ted.europa.eu/en/legal-notice]Notices can be reused freely unless otherwise noted; site text CC BY 4.0, metadata CC0; TED logo needs consent.
Commercial use allowedAllowed. The legal notice says OJ S procurement notices can be freely reused for commercial or non-commercial purposes.Yes5 [Verified 2026-10-29 on https://ted.europa.eu/en/legal-notice]Allowed. The legal notice says OJ S procurement notices can be freely reused for commercial or non-commercial purposes.
CORS / browser useNo CORS header. Preflight and POST with a third-party Origin on 2026-10-29 returned no Access-Control-Allow-Origin.No2 [Verified 2026-10-29 by test request to https://api.ted.europa.eu/v3/notices/search]No CORS header. Preflight and POST with a third-party Origin on 2026-10-29 returned no Access-Control-Allow-Origin.
Freshness / coverageNotices appear on TED by 09:00 CET on their OJ S publication date; scope LATEST returns only the current issue.Each OJ S issue; all EU member states1 [Verified 2026-10-29 on https://docs.ted.europa.eu/api/latest/index.html]Notices appear on TED by 09:00 CET on their OJ S publication date; scope LATEST returns only the current issue.

What it does

Tenders Electronic Daily (TED) is the online version of the Supplement to the Official Journal of the EU (OJ S), where public buyers across the EU publish calls for tender, contract awards and related procurement notices. TED API v3 (api.ted.europa.eu) is run by the Publications Office. Everything that touches unpublished notices, such as submitting or validating, needs an API key from the TED Developer Portal, but the Search API over published notices is anonymous. An agent sends POST /v3/notices/search with an expert query (the same syntax as TED’s Expert Search page, for example classification-cpv=72000000 AND publication-date>=today(-7)) and a list of fields to return, and gets back matching notices with links to the HTML, PDF and XML versions in every EU language. Buyer names and titles come back as language-keyed objects, so an agent may need to pick a language or translate. There is no official MCP server; an independent operator runs one over the same data (see alternatives).

Working exampleRun 2026-10-29

ShellRequest
curl -sS -X POST "https://api.ted.europa.eu/v3/notices/search" \
  -H "Content-Type: application/json" \
  -d '{"query":"classification-cpv=72000000 AND publication-date>=today(-7)",
       "fields":["publication-number","notice-title","buyer-name","buyer-country","deadline-receipt-tender-date-lot"],
       "limit":2}'

Response (trimmed)

HTTP responseResponse
HTTP 200 (run 2026-10-29, no key; links and non-English titles trimmed)
{"totalNoticeCount":1416, "iterationNextToken":null, "timedOut":false,
 "notices":[
  {"publication-number":"730007-2026", "buyer-country":["ESP"],
   "buyer-name":{"spa":["Consorci de Serveis Universitaris de Catalunya (CSUC)"]},
   "notice-title":{"eng":"Spain – IT services: consulting, software development, Internet and support – ..."},
   "links":{...}},
  {"publication-number":"730047-2026", "buyer-country":["HUN"],
   "buyer-name":{"hun":["Magyar Nemzeti Bank"]},
   "deadline-receipt-tender-date-lot":["2026-11-24+02:00"],
   "notice-title":{"eng":"Hungary – Software-related services – ..."},
   "links":{...}}]}

Agent setup

Prompt to give your agent

Prompt
Use the TED Search API (POST https://api.ted.europa.eu/v3/notices/search, JSON body, no key). Find notices published in the last 7 days with CPV code 72000000 (IT services) from buyers in Germany, Austria or the Netherlands. Use the query "classification-cpv=72000000 AND publication-date>=today(-7) AND buyer-country IN (DEU AUT NLD)", fields publication-number, notice-title, buyer-name, buyer-country and deadline-receipt-tender-date-lot, limit 50. For each notice give the English title, the buyer, the country, the tender deadline (or "not stated") and the link https://ted.europa.eu/en/notice/-/detail/<publication-number>. Do not invent values, deadlines or eligibility rules that are not in the notice.

Agent / MCP-style tool snippet

JSONTool snippet
// Tool definition for Claude, OpenAI or any function-calling agent
{
  "name": "ted_search",
  "description": "Search published EU public procurement notices on TED (Tenders Electronic Daily). Read-only, no key. Uses TED expert query syntax.",
  "input_schema": {
    "type": "object",
    "properties": {
      "query": { "type": "string", "description": "Expert query, e.g. classification-cpv=72000000 AND buyer-country=FRA AND publication-date>=today(-7)" },
      "fields": { "type": "array", "items": { "type": "string" }, "description": "e.g. publication-number, notice-title, buyer-name, deadline-receipt-tender-date-lot" },
      "limit": { "type": "integer", "maximum": 250 },
      "page": { "type": "integer", "minimum": 1 },
      "scope": { "type": "string", "enum": ["LATEST", "ACTIVE", "ALL"] }
    },
    "required": ["query", "fields"]
  }
}
// Implementation: POST https://api.ted.europa.eu/v3/notices/search with the input as the JSON body

Fit and safety

Good for

  • Daily alerts for new EU tenders in your CPV codes and countries
  • Listing a buyer’s past contract awards before you bid
  • Feeding open calls for tender with deadlines into a bid-pipeline agent

Watch out

  • Do not call it from browser code. Our preflight and POST with a third-party Origin on 2026-10-29 returned no Access-Control-Allow-Origin header, so call it from a server or agent runtime.
  • Do not page past 15,000 results with page numbers. Switch to paginationMode ITERATION and pass iterationNextToken, or use TED’s daily and monthly bulk packages for full mirrors.
  • Do not treat the API response as the legal text. TED says only the electronically signed notices in the OJ S are authentic; link users to the notice before they bid.
  • Do not assume it covers every public contract. It returns notices published in the OJ S; tenders a buyer posts only on a national portal will not appear.
  • Do not use the TED logo or imply endorsement. The legal notice says the logos need the Publications Office’s prior consent.

Alternatives

TED MCP (ted-mcp.eu, third party)Independent hosted MCP over the same notices by riigihanked.eu; search_notices and get_notice worked without a key in our 2026-10-29 test, while analytics and AI tools need a riigihanked.eu subscription. Not run by the EU.
SEC EDGAR APIAnother free, keyless government API, for U.S. company filings instead of EU tenders.
FinancialFilings MCPCompany reports from 60 markets, useful for checking the suppliers that win European tenders.
NPPES NPI Registry APIA free, keyless U.S. government lookup API with similar plain-JSON ergonomics.

FAQ

Does the TED API need an API key?

Not for search. The Search API (POST https://api.ted.europa.eu/v3/notices/search) and other endpoints for published notices are anonymous; only endpoints for submitting or validating unpublished notices need a key.

What is the TED API rate limit?

TED’s fair-usage policy allows 700 HTTP requests a minute and 600 notice views or downloads in under 6 minutes per IP. Each search page returns at most 250 notices.

Can I reuse TED notices commercially?

Yes. TED’s legal notice says OJ S procurement notices can be freely reused for commercial or non-commercial purposes unless otherwise noted.

Is there an MCP server for TED?

Not from the EU. An independent operator runs one at https://ted-mcp.eu/mcp whose basic search tools work without a key.

Compare

Put TED Search API (EU public tenders) side by side with other free agent tools on keys, limits, MCP support, licensing and CORS. Open the comparison grid →

SourcesFootnotes