GnistAI GnistAI
Log in

Public Procurement

Find government tenders across Norway and the EU/EEA. Search by keyword, sector, or date across Doffin and TED databases simultaneously.

Overview   |   MCP   |   REST API   |   OpenAPI   |   CLI   |   Tutorial   |   Toolkits   |   Home
status: healthy status status healthy healthy tools: 4 tools tools 4 4 type: dataset aggregator type type dataset aggregator dataset aggregator lifecycle: maintained lifecycle lifecycle maintained maintained Government

Data source: Doffin, TED

MCP Endpoint (Streamable HTTP) https://context.gnist.ai/mcp/public-procurement/
Authentication

All requests require a Gnist-API-Key header (or api_key query parameter).

Free tier: 100 calls/day. Get your API key.

Tools (4)

search_tenders

Search for public procurement tenders across Doffin (Norway) and TED (EU/EEA).

Results are deduplicated when the same tender appears on both platforms.
Sorted by publication date (most recent first).

Examples:
search_tenders(query="software development")
search_tenders(query="construction", country="NOR", cpv_code="45000000")
search_tenders(query="IT consulting", published_after="2026-01-01", max_results=10)

ParameterTypeRequiredDescription
querystringrequiredSearch query — keywords, buyer name, or topic.
max_resultsintegeroptionalMaximum number of results. (default: 20)
countryanyoptionalISO 3166-1 alpha-3 country code (e.g. NOR, DEU, FRA). Omit for all countries.
cpv_codeanyoptionalCPV code to filter by sector (8 digits, e.g. 72000000 for IT).
published_afteranyoptionalOnly tenders published after this date (YYYY-MM-DD).
published_beforeanyoptionalOnly tenders published before this date (YYYY-MM-DD).
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_tenders",
    "arguments": {
      "query": "example"
    }
  }
}
get_tender

Look up a specific procurement notice by ID across all sources.

Accepts either a Doffin notice ID (e.g. '2026-105515') or a TED
publication number (e.g. '555-2026'). If the tender exists on both
platforms, the results are merged into a single enriched record.

Examples:
get_tender(notice_id="2026-105515")
get_tender(notice_id="555-2026")

ParameterTypeRequiredDescription
notice_idstringrequiredNotice ID — Doffin format (YYYY-NNNNNN) or TED format (NNNN-YYYY).
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_tender",
    "arguments": {
      "notice_id": "example"
    }
  }
}
list_procurement_sources

List all registered procurement data sources and their status.

Shows which sources are available and whether they are currently enabled.

Examples:
list_procurement_sources()

JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "list_procurement_sources",
    "arguments": {}
  }
}
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")
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "report_feedback",
    "arguments": {
      "feedback": "example"
    }
  }
}

Quick Start

Shell
curl -X POST "https://context.gnist.ai/mcp/public-procurement/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_tenders", "arguments": {"query": "example"}}}'
Python
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/public-procurement/",
    headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_tenders",
    "arguments": {
      "query": "example"
    }
  }
},
)
print(resp.json())

Related Toolkits (Government)

Resources