Skip to content
onelayer.
All tools

Tool detail

TED Tender Monitor

Returns EU public-procurement tender notices from the TED v3 API, filtered by CPV code, country and keywords over a recent publication window.

Categories: Government public data

Use when

  • find recent EU tenders for a specific CPV product or service code
  • monitor new EU public procurement notices by country and keyword
  • get structured tender data (buyer, deadline, CPV codes) instead of browsing TED by hand

Not for

  • not non-EU procurement data
  • not full notice text or attachments — structured fields plus a link to the notice

Inputs

GET query params, all optional: country (ISO3 codes, default DEU), cpv (8-digit codes, default 45262670), days (1-90, default 14), keywords, max (1-500, default 100).

Admitted input schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "minLength": 0,
      "maxLength": 4096,
      "pattern": "^[A-Z]{3}(,[A-Z]{3})*$",
      "description": "Comma-separated ISO 3166-1 alpha-3 country codes for the place of performance, e.g. DEU, AUT, FRA. Default: DEU.",
      "default": "DEU",
      "examples": [
        "DEU",
        "DEU,AUT"
      ]
    },
    "cpv": {
      "type": "string",
      "minLength": 0,
      "maxLength": 4096,
      "pattern": "^\\d{8}(,\\d{8})*$",
      "description": "Comma-separated CPV codes (8-digit EU Common Procurement Vocabulary) to filter notices by, e.g. 45262670 = metal structures. Default: 45262670.",
      "default": "45262670",
      "examples": [
        "45262670",
        "45262670,44316000"
      ]
    },
    "days": {
      "type": "string",
      "minLength": 0,
      "maxLength": 4096,
      "pattern": "^\\d{1,2}$",
      "description": "Look-back window in days over the notice publication date. Integer 1-90; values above 90 are capped. Default: 14.",
      "default": "14",
      "examples": [
        "14",
        "30"
      ]
    },
    "keywords": {
      "type": "string",
      "minLength": 0,
      "maxLength": 4096,
      "description": "Optional comma-separated free-text keywords; a notice is kept if its title or description contains at least one (case-insensitive). Empty = no keyword filter.",
      "examples": [
        "CNC,Fräsen",
        "Stahlbau"
      ]
    },
    "max": {
      "type": "string",
      "minLength": 0,
      "maxLength": 4096,
      "pattern": "^\\d{1,3}$",
      "description": "Maximum number of tenders to return. Integer 1-500; values above 500 are capped. Default: 100.",
      "default": "100",
      "examples": [
        "100",
        "500"
      ]
    }
  },
  "required": [],
  "additionalProperties": false
}

Endpoint

Method
GET
URL
https://4yearcycle.com/x402/tenders

Payment

Protocol
x402
Listed price
0.01 USDC per call on Base
Payment method
exact
Network
eip155:8453
Asset
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Listed terms are catalog metadata. The caller supplies inputs and calls the tool outside Onelayer. If payment is required, the caller uses a compatible wallet to pay.

Source

Record
GET https://4yearcycle.com/x402/tenders
Retrieved
2026-09-30T20:37:07.382Z
Catalog file SHA-256
6837ccddf886f0007cf3727ea9d27faaa5047b51b4f425345c554ce1c271a524
Catalog built
2026-09-30T22:31:58.034Z