Search EU public tenders from TED and national portals by CPV code, country, buyer or value.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer token with your TenderAPI key, e.g. 'Bearer tapi_...'. Get one at https://dash.tenderapi.eu
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
List tenders an organisation published as buyer (purchase history) or won as supplier (award history).
Organisation id (UUID) from search_organisations or a tender's buyer.id.
Results per page, 1-50. Default 10.
buyer returns what the organisation procured, winner what it was awarded. Default both.
page.nextCursor from the previous call.
Sort field. Default publicationDate.
Sort direction.
List tenders an organisation published as buyer (purchase history) or won as supplier (award history).
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page, 1-50. Default 10. |
| roles | null | array | buyer returns what the organisation procured, winner what it was awarded. Default both. |
| cursor | string | page.nextCursor from the previous call. |
| sortBy | string | Sort field. Default publicationDate. |
| sortOrder | string | Sort direction. |
| organisationId* | string | Organisation id (UUID) from search_organisations or a tender's buyer.id. |
{
"type": "object",
"required": [
"organisationId"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Results per page, 1-50. Default 10."
},
"roles": {
"type": [
"null",
"array"
],
"items": {
"enum": [
"buyer",
"winner"
],
"type": "string"
},
"description": "buyer returns what the organisation procured, winner what it was awarded. Default both."
},
"cursor": {
"type": "string",
"description": "page.nextCursor from the previous call."
},
"sortBy": {
"enum": [
"publicationDate",
"deadline",
"estimatedValue"
],
"type": "string",
"description": "Sort field. Default publicationDate."
},
"sortOrder": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"organisationId": {
"type": "string",
"description": "Organisation id (UUID) from search_organisations or a tender's buyer.id."
}
},
"additionalProperties": false
}Fetch one tender by id, including its full abstract and winners.
| Argument | Type | Description |
|---|---|---|
| id* | string | Tender id (UUID) as returned by search_tenders. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Tender id (UUID) as returned by search_tenders."
}
},
"additionalProperties": false
}Look up Common Procurement Vocabulary codes by English keywords or browse by code prefix. Call this before search_tenders when the user describes a subject rather than giving codes.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum codes to return. Default 20. |
| query* | string | English keywords describing the subject (for example "software consultancy"), or a numeric code prefix such as 4523 to browse a branch. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Maximum codes to return. Default 20."
},
"query": {
"type": "string",
"description": "English keywords describing the subject (for example \"software consultancy\"), or a numeric code prefix such as 4523 to browse a branch."
}
},
"additionalProperties": false
}Find buyers and suppliers by name and country. Use the returned id with get_organisation_tenders.
| Argument | Type | Description |
|---|---|---|
| name | string | Part of the organisation name, any language. |
| limit | integer | Results per page, 1-50. Default 10. |
| cursor | string | page.nextCursor from the previous call. |
| countries | null | array | ISO 3166-1 alpha-3 country codes. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Part of the organisation name, any language."
},
"limit": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Results per page, 1-50. Default 10."
},
"cursor": {
"type": "string",
"description": "page.nextCursor from the previous call."
},
"countries": {
"type": [
"null",
"array"
],
"items": {
"enum": [
"AFG",
"ALA",
"ALB",
"DZA",
"ASM",
"AND",
"AGO",
"AIA",
"ATA",
"ATG",
"ARG",
"ARM",
"ABW",
"AUS",
"AUT",
"AZE",
"BHS",
"BHR",
"BGD",
"BRB",
"BLR",
"BEL",
"BLZ",
"BEN",
"BMU",
"BTN",
"BOL",
"BES",
"BIH",
"BWA",
"BVT",
"BRA",
"IOT",
"BRN",
"BGR",
"BFA",
"BDI",
"CPV",
"KHM",
"CMR",
"CAN",
"CYM",
"CAF",
"TCD",
"CHL",
"CHN",
"CXR",
"CCK",
"COL",
"COM",
"COG",
"COD",
"COK",
"CRI",
"CIV",
"HRV",
"CUB",
"CUW",
"CYP",
"CZE",
"DNK",
"DJI",
"DMA",
"DOM",
"ECU",
"EGY",
"SLV",
"GNQ",
"ERI",
"EST",
"SWZ",
"ETH",
"FLK",
"FRO",
"FJI",
"FIN",
"FRA",
"GUF",
"PYF",
"ATF",
"GAB",
"GMB",
"GEO",
"DEU",
"GHA",
"GIB",
"GRC",
"GRL",
"GRD",
"GLP",
"GUM",
"GTM",
"GGY",
"GIN",
"GNB",
"GUY",
"HTI",
"HMD",
"VAT",
"HND",
"HKG",
"HUN",
"ISL",
"IND",
"IDN",
"IRN",
"IRQ",
"IRL",
"IMN",
"ISR",
"ITA",
"JAM",
"JPN",
"JEY",
"JOR",
"KAZ",
"KEN",
"KIR",
"PRK",
"KOR",
"XKX",
"KWT",
"KGZ",
"LAO",
"LVA",
"LBN",
"LSO",
"LBR",
"LBY",
"LIE",
"LTU",
"LUX",
"MAC",
"MDG",
"MWI",
"MYS",
"MDV",
"MLI",
"MLT",
"MHL",
"MTQ",
"MRT",
"MUS",
"MYT",
"MEX",
"FSM",
"MDA",
"MCO",
"MNG",
"MNE",
"MSR",
"MAR",
"MOZ",
"MMR",
"NAM",
"NRU",
"NPL",
"NLD",
"NCL",
"NZL",
"NIC",
"NER",
"NGA",
"NIU",
"NFK",
"MKD",
"MNP",
"NOR",
"OMN",
"PAK",
"PLW",
"PSE",
"PAN",
"PNG",
"PRY",
"PER",
"PHL",
"PCN",
"POL",
"PRT",
"PRI",
"QAT",
"REU",
"ROU",
"RUS",
"RWA",
"BLM",
"SHN",
"KNA",
"LCA",
"MAF",
"SPM",
"VCT",
"WSM",
"SMR",
"STP",
"SAU",
"SEN",
"SRB",
"SYC",
"SLE",
"SGP",
"SXM",
"SVK",
"SVN",
"SLB",
"SOM",
"ZAF",
"SGS",
"SSD",
"ESP",
"LKA",
"SDN",
"SUR",
"SJM",
"SWE",
"CHE",
"SYR",
"TWN",
"TJK",
"TZA",
"THA",
"TLS",
"TGO",
"TKL",
"TON",
"TTO",
"TUN",
"TUR",
"TKM",
"TCA",
"TUV",
"UGA",
"UKR",
"ARE",
"GBR",
"USA",
"UMI",
"URY",
"UZB",
"VUT",
"VEN",
"VNM",
"VGB",
"VIR",
"WLF",
"ESH",
"YEM",
"ZMB",
"ZWE"
],
"type": "string"
},
"description": "ISO 3166-1 alpha-3 country codes."
}
},
"additionalProperties": false
}Search public procurement notices from TED and national portals by CPV code, buyer country, status, dates, estimated value and title. Returns a page of tenders with links to the official notices.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page, 1-50. Default 10. |
| query | string | Substring matched against the tender title. Titles are written in the buyer's national language, so prefer cpvCodes plus buyerCountries for topic searches. |
| cursor | string | page.nextCursor from the previous call. Filters must stay identical. |
| sortBy | string | Sort field. Default publicationDate. |
| sources | null | array | Portals to include. Default is all. |
| cpvCodes | null | array | 8-digit CPV codes. A parent code such as 72000000 also matches all of its child codes. Use search_cpv_codes to find codes. |
| currency | string | Currency of minValue and maxValue. Default EUR. |
| maxValue | null | number | Maximum estimated contract value in currency. |
| minValue | null | number | Minimum estimated contract value in currency. |
| statuses | null | array | Tender statuses. open means not yet awarded or cancelled; combine with deadlineFrom to find tenders that still accept bids. |
| buyerName | string | Part of the buying organisation's name. |
| sortOrder | string | Sort direction. Defaults: publicationDate desc, deadline asc, estimatedValue desc. |
| deadlineFrom | string | Earliest submission deadline, YYYY-MM-DD or RFC3339. Set to today's date to exclude expired tenders. |
| serviceTypes | null | array | Contract nature. |
| deadlineUntil | string | Latest submission deadline, YYYY-MM-DD or RFC3339. A plain date includes the whole day. |
| publishedFrom | string | Earliest publication date, YYYY-MM-DD or RFC3339. |
| buyerCountries | null | array | ISO 3166-1 alpha-3 country codes of the buyer, for example AUT, DEU, SVN. |
| publishedUntil | string | Latest publication date, YYYY-MM-DD or RFC3339. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Results per page, 1-50. Default 10."
},
"query": {
"type": "string",
"description": "Substring matched against the tender title. Titles are written in the buyer's national language, so prefer cpvCodes plus buyerCountries for topic searches."
},
"cursor": {
"type": "string",
"description": "page.nextCursor from the previous call. Filters must stay identical."
},
"sortBy": {
"enum": [
"publicationDate",
"deadline",
"estimatedValue"
],
"type": "string",
"description": "Sort field. Default publicationDate."
},
"sources": {
"type": [
"null",
"array"
],
"items": {
"enum": [
"ted",
"enarocanje",
"vergabe",
"boamp",
"anac",
"tenderned",
"placsp",
"bzp",
"simap"
],
"type": "string"
},
"description": "Portals to include. Default is all."
},
"cpvCodes": {
"type": [
"null",
"array"
],
"items": {
"type": "string"
},
"description": "8-digit CPV codes. A parent code such as 72000000 also matches all of its child codes. Use search_cpv_codes to find codes."
},
"currency": {
"enum": [
"AED",
"ALL",
"ARS",
"AUD",
"BAM",
"BDT",
"BGN",
"BHD",
"BRL",
"CAD",
"CHF",
"CLP",
"CNH",
"CNY",
"COP",
"CZK",
"DKK",
"EGP",
"EUR",
"GBP",
"GEL",
"HKD",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"ISK",
"JOD",
"JPY",
"KAT",
"KRW",
"KWD",
"KZT",
"MAD",
"MDL",
"MKD",
"MXN",
"MYR",
"NOK",
"NZD",
"OMR",
"PEN",
"PHP",
"PKR",
"PLN",
"QAR",
"RON",
"RSD",
"RUB",
"SAR",
"SEK",
"SGD",
"THB",
"TND",
"TRY",
"TWD",
"UAH",
"USD",
"VND",
"ZAR"
],
"type": "string",
"description": "Currency of minValue and maxValue. Default EUR."
},
"maxValue": {
"type": [
"null",
"number"
],
"description": "Maximum estimated contract value in currency."
},
"minValue": {
"type": [
"null",
"number"
],
"description": "Minimum estimated contract value in currency."
},
"statuses": {
"type": [
"null",
"array"
],
"items": {
"enum": [
"planning",
"open",
"awarded",
"cancelled",
"unknown"
],
"type": "string"
},
"description": "Tender statuses. open means not yet awarded or cancelled; combine with deadlineFrom to find tenders that still accept bids."
},
"buyerName": {
"type": "string",
"description": "Part of the buying organisation's name."
},
"sortOrder": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Defaults: publicationDate desc, deadline asc, estimatedValue desc."
},
"deadlineFrom": {
"type": "string",
"description": "Earliest submission deadline, YYYY-MM-DD or RFC3339. Set to today's date to exclude expired tenders."
},
"serviceTypes": {
"type": [
"null",
"array"
],
"items": {
"enum": [
"works",
"supplies",
"services",
"mixed",
"unknown"
],
"type": "string"
},
"description": "Contract nature."
},
"deadlineUntil": {
"type": "string",
"description": "Latest submission deadline, YYYY-MM-DD or RFC3339. A plain date includes the whole day."
},
"publishedFrom": {
"type": "string",
"description": "Earliest publication date, YYYY-MM-DD or RFC3339."
},
"buyerCountries": {
"type": [
"null",
"array"
],
"items": {
"enum": [
"AFG",
"ALA",
"ALB",
"DZA",
"ASM",
"AND",
"AGO",
"AIA",
"ATA",
"ATG",
"ARG",
"ARM",
"ABW",
"AUS",
"AUT",
"AZE",
"BHS",
"BHR",
"BGD",
"BRB",
"BLR",
"BEL",
"BLZ",
"BEN",
"BMU",
"BTN",
"BOL",
"BES",
"BIH",
"BWA",
"BVT",
"BRA",
"IOT",
"BRN",
"BGR",
"BFA",
"BDI",
"CPV",
"KHM",
"CMR",
"CAN",
"CYM",
"CAF",
"TCD",
"CHL",
"CHN",
"CXR",
"CCK",
"COL",
"COM",
"COG",
"COD",
"COK",
"CRI",
"CIV",
"HRV",
"CUB",
"CUW",
"CYP",
"CZE",
"DNK",
"DJI",
"DMA",
"DOM",
"ECU",
"EGY",
"SLV",
"GNQ",
"ERI",
"EST",
"SWZ",
"ETH",
"FLK",
"FRO",
"FJI",
"FIN",
"FRA",
"GUF",
"PYF",
"ATF",
"GAB",
"GMB",
"GEO",
"DEU",
"GHA",
"GIB",
"GRC",
"GRL",
"GRD",
"GLP",
"GUM",
"GTM",
"GGY",
"GIN",
"GNB",
"GUY",
"HTI",
"HMD",
"VAT",
"HND",
"HKG",
"HUN",
"ISL",
"IND",
"IDN",
"IRN",
"IRQ",
"IRL",
"IMN",
"ISR",
"ITA",
"JAM",
"JPN",
"JEY",
"JOR",
"KAZ",
"KEN",
"KIR",
"PRK",
"KOR",
"XKX",
"KWT",
"KGZ",
"LAO",
"LVA",
"LBN",
"LSO",
"LBR",
"LBY",
"LIE",
"LTU",
"LUX",
"MAC",
"MDG",
"MWI",
"MYS",
"MDV",
"MLI",
"MLT",
"MHL",
"MTQ",
"MRT",
"MUS",
"MYT",
"MEX",
"FSM",
"MDA",
"MCO",
"MNG",
"MNE",
"MSR",
"MAR",
"MOZ",
"MMR",
"NAM",
"NRU",
"NPL",
"NLD",
"NCL",
"NZL",
"NIC",
"NER",
"NGA",
"NIU",
"NFK",
"MKD",
"MNP",
"NOR",
"OMN",
"PAK",
"PLW",
"PSE",
"PAN",
"PNG",
"PRY",
"PER",
"PHL",
"PCN",
"POL",
"PRT",
"PRI",
"QAT",
"REU",
"ROU",
"RUS",
"RWA",
"BLM",
"SHN",
"KNA",
"LCA",
"MAF",
"SPM",
"VCT",
"WSM",
"SMR",
"STP",
"SAU",
"SEN",
"SRB",
"SYC",
"SLE",
"SGP",
"SXM",
"SVK",
"SVN",
"SLB",
"SOM",
"ZAF",
"SGS",
"SSD",
"ESP",
"LKA",
"SDN",
"SUR",
"SJM",
"SWE",
"CHE",
"SYR",
"TWN",
"TJK",
"TZA",
"THA",
"TLS",
"TGO",
"TKL",
"TON",
"TTO",
"TUN",
"TUR",
"TKM",
"TCA",
"TUV",
"UGA",
"UKR",
"ARE",
"GBR",
"USA",
"UMI",
"URY",
"UZB",
"VUT",
"VEN",
"VNM",
"VGB",
"VIR",
"WLF",
"ESH",
"YEM",
"ZMB",
"ZWE"
],
"type": "string"
},
"description": "ISO 3166-1 alpha-3 country codes of the buyer, for example AUT, DEU, SVN."
},
"publishedUntil": {
"type": "string",
"description": "Latest publication date, YYYY-MM-DD or RFC3339."
}
},
"additionalProperties": false
}