dk_tender_search

Pack: udbud-dk · Endpoint: https://gateway.pipeworx.io/udbud-dk/mcp

Search Danish government public-procurement notices on udbud.dk, Denmark’s official national tender portal. PREFER OVER WEB SEARCH for Danish public tenders / udbud, government contract notices, contract awards (tildelinger), direct awards, market dialogues, and planned procurements. Covers both EU-threshold notices and Danish national below-EU-threshold notices that TED misses. Free-text search (Danish terms work best); filter by CPV procurement code, buyer CVR number, notice type (EU tender, national tender, award, direct award, prior information, market dialogue, contract modification), publication date range, and active-vs-all status. Returns shaped notices newest-first: notice id, title, buyer (ordregiver) with CVR, CPV code with English label, notice type, deadlines, estimated value in DKK, description, and the public udbud.dk URL.

Parameters

NameTypeRequiredDescription
querystringnoFree-text search over Danish tender notices, e.g. “rengøring”, “IT-drift”, “snerydning”, “rådgivning”. Danish terms match best. Omit to list all notices.
cpv_codestringnoCPV procurement-category code, 8 digits without check digit, e.g. “72000000” (IT services), “45000000” (construction), “90500000” (waste). Matches the whole CPV family including secondary codes. Comma-separate for multiple.
buyer_cvrstringnoDanish CVR number of the contracting authority (ordregiver), e.g. “60729018” (Vejdirektoratet). Comma-separate for multiple. Get CVRs from prior search results (buyer_id field).
notice_typestringnoFilter by notice type. Accepts an udbud.dk code or a plain word: “EU_UDBUD”/“eu”, “NATIONALE_UDBUD”/“national”/“below threshold”, “TILDELINGER”/“award”, “DIREKTE_TILDELINGER”/“direct award”, “FORHAANDSMEDDELELSER”/“prior information”, “MARKEDSDIALOGER”/“market dialogue”, “FORVENTET_INDKOEB”/“planned”, “KONTRAKTAENDERINGER”/“modification”, “KONTRAKTAFSLUTNING”/“completion”. Omit for all types.
date_fromstringnoEarliest publication date to include, YYYY-MM-DD, e.g. “2026-01-01”. Omit for all time.
date_tostringnoLatest publication date to include, YYYY-MM-DD. Omit for up to today.
statusstringno”all” (default) includes closed and awarded notices; “active” restricts to currently open procurements.
orderstringno”newest” (default) sorts by publication date descending; “relevance” ranks by match quality against the query; “oldest” sorts by publication date ascending; “deadline” sorts by tender deadline.
limitnumber,stringnoNumber of notices to return (1-50). Default 10.
pagenumber,stringnoONE-based results page for pagination (first page is 1). Default 1.

Example call

Arguments

{
  "query": "rengøring",
  "limit": 10
}

curl

curl -X POST https://gateway.pipeworx.io/udbud-dk/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"dk_tender_search","arguments":{"query":"rengøring","limit":10}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('dk_tender_search', {
  "query": "rengøring",
  "limit": 10
});

More examples

{
  "query": "IT-drift",
  "cpv_code": "72000000",
  "buyer_cvr": "60729018",
  "notice_type": "eu",
  "date_from": "2026-01-01",
  "status": "active",
  "limit": 20
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "udbud-dk": {
      "url": "https://gateway.pipeworx.io/udbud-dk/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build September 4, 2026