TED EU Procurement Notice Search
tedapi/search-notices
Searches the Tenders Electronic Daily (TED) database of EU public procurement notices and returns the matching notices with the fields you pick. The query uses TED's expert-search syntax: field=value terms joined with AND, OR and NOT, for example buyer-country=DEU AND publication-date>=20260101 (dates are yyyymmdd or today(-7)), or notice-title~"school" for words in a title. Fields are chosen from a fixed list; titles and buyer names come back in English when the notice has it, otherwise the first language it carries, as {language, value}. Each notice carries links to its English page, English PDF and XML. Returns at most 10 notices per page and up to 100 pages; the total count of matching notices is included. A query the parser cannot read is refused as a bad request. Notices from the Publications Office of the European Union, served by Eden Engine; not an official TED product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
Publications Office of the European Union
Procurement notices from Tenders Electronic Daily (TED), Publications Office of the European Union, passed through with language variants and link lists reduced. Served by Eden Engine; not an official TED product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "tedapi/search-notices" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "tedapi/search-notices" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "tedapi/search-notices", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "tedapi/search-notices", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 25, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 100,
"minimum": 1,
"description": "Page number, 1 to 100. Default 1."
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "Notices per page, 1 to 10. Default 5."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "TED expert-search query, at most 500 characters, for example buyer-country=DEU AND publication-date>=20260101. Dates are yyyymmdd or today(-7). Use ~ for a word match, for example notice-title~\"school\"."
},
"fields": {
"type": "array",
"items": {
"enum": [
"notice-identifier",
"publication-number",
"notice-title",
"publication-date",
"buyer-name",
"buyer-country",
"notice-type",
"procedure-type",
"contract-nature",
"classification-cpv",
"deadline-receipt-tender-date-lot",
"estimated-value-lot",
"estimated-value-cur-lot"
],
"type": "string"
},
"default": [
"notice-identifier",
"publication-number",
"notice-title",
"publication-date",
"buyer-name"
],
"maxItems": 13,
"minItems": 1,
"description": "The fields to return for each notice. Defaults to notice-identifier, publication-number, notice-title, publication-date and buyer-name.",
"uniqueItems": true
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"totalNoticeCount",
"timedOut",
"notices"
],
"properties": {
"notices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"pdf": {
"type": [
"string",
"null"
],
"description": "English PDF, null when the notice has none."
},
"xml": {
"type": [
"string",
"null"
],
"description": "Notice XML, null when the notice has none."
},
"html": {
"type": [
"string",
"null"
],
"description": "English notice page, null when the notice has none."
}
},
"description": "Links to the notice: html and pdf in English, xml.",
"additionalProperties": true
},
"publication-date": {
"type": "string",
"description": "The publication date with offset, for example 2026-01-02+01:00."
},
"notice-identifier": {
"type": "string",
"description": "The notice's unique id."
},
"publication-number": {
"type": "string",
"description": "The publication number, for example 2-2026."
}
},
"additionalProperties": true
},
"description": "The notices on this page, with the requested fields and a links object."
},
"timedOut": {
"type": "boolean",
"description": "True when the service stopped counting early."
},
"totalNoticeCount": {
"type": "integer",
"description": "How many notices match the query in all."
}
}
}