GnistAI GnistAI
Log in

Getting Started with TED (EU/EEA Public Procurement)

EU/EEA public procurement notices from TED (Tenders Electronic Daily) — search tenders, contract notices, awards, and modifications across all EU/EEA member states including Norway.

All Tutorials   |   Overview   |   Playground   |   MCP   |   REST API   |   Home
Government

Data source: TED (Tenders Electronic Daily) — Publications Office of the EU

Overview

TED (EU/EEA Public Procurement) wraps TED (Tenders Electronic Daily) — Publications Office of the EU, handling authentication, pagination, and rate limits for you. This tutorial covers all 3 tools with working code examples you can copy and run.

Prerequisites

  1. Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
  2. Choose your integration method: MCP protocol or REST API.

Connect via MCP

Add to your MCP client config (Claude Desktop, Cursor, etc.):

MCP Config
{
  "mcpServers": {
    "gnist-ted": {
      "url": "https://context.gnist.ai/mcp/ted/",
      "headers": {
        "Gnist-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Tools (3)

search_notices

Search EU/EEA public procurement notices on TED (Tenders Electronic Daily). Covers all EU/EEA member states including Norway, Iceland, and Liechtenstein. Includes contract notices, awards, prior information notices, and modifications for procurement above EU threshold values. At least one filter parameter is required. Combine filters to narrow results (e.g. country='NOR' + cpv_code='72000000' for Norwegian IT procurement). Returns: Paginated list of procurement notices with title, buyer, deadline, estimated value, CPV codes, and TED URL. Use publication_number with get_notice for full details including lot descriptions and award information.

ParameterTypeRequiredDescription
textanyoptionalFree text search across notice titles and descriptions (e.g. "software", "construction", "consulting").
countryanyoptionalFilter by buyer country using 3-letter ISO code (e.g. 'NOR' for Norway, 'DEU' for Germany, 'FRA' for France, 'SWE' for Sweden).
cpv_codeanyoptionalFilter by CPV (Common Procurement Vocabulary) code — 8-digit EU classification (e.g. '72000000' for IT services, '45000000' for construction).
published_afteranyoptionalFilter notices published on or after this date (YYYY-MM-DD or YYYYMMDD).
published_beforeanyoptionalFilter notices published on or before this date (YYYY-MM-DD or YYYYMMDD).
notice_typeanyoptionalFilter by notice type: 'cn-standard' (contract notice), 'can-standard' (contract award), 'pin-only' (prior information), 'can-modif' (modification), 'veat' (voluntary transparency), 'corr' (corrigendu
procedure_typeanyoptionalFilter by procedure: 'open', 'restricted', 'neg-w-call' (negotiated with call), 'neg-wo-call' (negotiated without call), 'comp-dial' (competitive dialogue), 'innovation'.
pageintegeroptionalPage number (default 1). (default: 1)
page_sizeintegeroptionalResults per page (1-50, default 20). (default: 20)
curl -X POST "https://context.gnist.ai/mcp/ted/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_notices", "arguments": {"text": "software"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ted/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'text': 'software'}, 'name': 'search_notices'}},
)
print(resp.json())

get_notice

Get detailed information about a specific TED procurement notice. Returns the full notice including lot-level descriptions, buyer identity, award winners, contract values, and links to the official TED page. Returns: Detailed notice with buyer, lots, winners, values, and dates. Returns found=false if the publication number is not found.

ParameterTypeRequiredDescription
publication_numberstringrequiredTED publication number in format NNNN-YYYY (e.g. "555-2026", "96926-2016"). Found in search results.
curl -X POST "https://context.gnist.ai/mcp/ted/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_notice", "arguments": {"publication_number": "555-2026"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ted/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'publication_number': '555-2026'},
            'name': 'get_notice'}},
)
print(resp.json())

report_feedback

Report a bug, feature request, or general feedback for this data source. Use this when something doesn't work as expected, when you'd like a new feature, or when you have suggestions for improvement. Args: feedback: Describe the issue or suggestion. feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: general)
curl -X POST "https://context.gnist.ai/mcp/ted/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "report_feedback", "arguments": {"feedback": "example"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ted/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'feedback': 'example'}, 'name': 'report_feedback'}},
)
print(resp.json())

Common Patterns

Search then retrieve
Use search_notices to find items, then get_notice to get full details. This two-step pattern is common for exploring data before drilling down.
Pagination
Several tools support limit, offset, or page parameters. Start with small limits during development, then increase for production queries.

FAQ

What data does TED (EU/EEA Public Procurement) provide?

EU/EEA public procurement notices from TED (Tenders Electronic Daily) — search tenders, contract notices, awards, and modifications across all EU/EEA member states including Norway. It exposes 3 tools: search_notices, get_notice, report_feedback.

What do I need to get started?

A Gnist API key (free tier: 100 calls/day). Sign up at https://context.gnist.ai/signup.

What format does the TED (EU/EEA Public Procurement) API return?

JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.

Next Steps

Related Tutorials