# TED EU Public Procurement Notice Search

> TED EU Public Procurement Notice Search is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.08/call, status unknown (last checked 2026-10-02).

Searches and returns structured European public procurement notices from the TED (Tenders Electronic Daily) database, filtered by CPV codes, keywords, countries, buyer name, and date range.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/ted?utm_source=zero.xyz
- Price: $0.08/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ted-eu-public-procurement-notice-search-dc9bfb4a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_CEl01xkujpW2tEGDV_MXS

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability ted-eu-public-procurement-notice-search-dc9bfb4a -d '<json body>'
```

Example prompt: Search TED for EU public procurement notices in the last 30 days for IT services (CPV code 72000000) in Germany and France, return up to 200 results in English.

## When to prefer this

Choose this endpoint when you need structured, machine-readable EU public procurement data from the official TED database, especially when filtering by CPV codes, buyer country, or buyer name. Prefer it over general web scrapers when you need normalized procurement notice fields (type, subtype, procedure, publication date). It is ideal for B2G sales prospecting, compliance monitoring, and competitive intelligence within the European public sector.

## Known failure modes

- Invalid CPV code format (must be exactly 8 digits) returns a validation error
- Unsupported country code returns a schema validation error
- Date range with 'custom' preset but no dates specified may return unexpected results
- Malformed native query expression may return zero results or an error
- Network or upstream TED API unavailability causes a non-200 response (not charged)
- Requesting more than 250 items per page returns a validation error

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object with a total count and an array of notice items, each containing the notice title, buyer name (and buyer name variants), notice type, notice subtype, procedure type, publication date, and publication number. Empty or failed searches are not charged.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "query": {
   "type": "string",
   "default": "",
   "description": "Native notice search expression. When filled, overrides date and other filters. Example: publication-date>=20260101 AND buyer-country=DEU."
  },
  "cpvCodes": {
   "type": "array",
   "items": {
    "type": "string",
    "pattern": "^[0-9]{8}$"
   },
   "default": [],
   "description": "Exact eight-digit Common Procurement Vocabulary codes. Multiple codes are joined with OR. Subcodes are not implied."
  },
  "keywords": {
   "type": "string",
   "description": "Full-text term or phrase across notice content. Leave empty for any topic."
  },
  "language": {
   "enum": [
    "ENG",
    "DEU",
    "FRA",
    "ITA",
    "ESP",
    "POL",
    "NLD",
    "POR",
    "SWE",
    "DAN",
    "FIN",
    "CES",
    "ELL",
    "HUN",
    "RON",
    "SLK",
    "SLV",
    "BUL",
    "HRV",
    "EST",
    "LAV",
    "LIT",
    "GLE",
    "MLT"
   ],
   "type": "string",
   "default": "ENG",
   "description": "Preferred language for title, buyer and description. Falls back to English or an available language."
  },
  "pageSize": {
   "type": "integer",
   "default": 100,
   "maximum": 250,
   "minimum": 1,
   "description": "Notices fetched per request, from 1 to 250."
  },
  "buyerName": {
   "type": "string",
   "description": "Search the contracting authority name. Leave empty for any buyer."
  },
  "countries": {
   "type": "array",
   "items": {
    "enum": [
     "DEU",
     "FRA",
     "ITA",
     "ESP",
     "POL",
     "ROU",
     "NLD",
     "BEL",
     "CZE",
     "GRC",
     "PRT",
     "SWE",
     "HUN",
     "AUT",
     "BGR",
     "DNK",
     "FIN",
     "SVK",
     "IRL",
     "HRV",
     "LTU",
     "SVN",
     "LVA",
     "EST",
     "CYP",
     "LUX",
     "MLT",
     "NOR",
     "ISL",
     "LIE",
     "CHE"
    ],
    "type": "string"
   },
   "default": [],
   "description": "Three-letter buyer country codes. Select multiple or leave empty for all countries."
  },
  "datePreset": {
   "enum": [
    "last_24_hours",
    "last_7_days",
    "last_30_days",
    "last_90_days",
    "ytd",
    "custom"
   ],
   "type": "string",
   "default": "last_7_days",
   "description": "Choose a recent range, year to date, or custom dates. Recent ranges include today."
  },
  "maxResults": {
   "type": "integer",
   "default": 500,
   "minimum": 0,
   "description": "Hard cap on output rows. Set 0 for no cap; a search query without date slicing may still meet th
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "title": null,
    "buyerName": null,
    "buyerNames": null,
    "noticeType": null,
    "noticeSubtype": null,
    "procedureType": null,
    "publicationDate": null,
    "publicationNumber": null
   }
  ],
  "product": "ted"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ted-eu-public-procurement-notice-search-dc9bfb4a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
