Public Procurement (Útboð)

SkillSearch

Icelandic public procurement — TED API and OCDS bulk data, 3,494+ tenders, award tracking, CPV search.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Public Procurement (Útboð) skill

What this skill tells your AI

The instructions your AI receives, as published by jokull/icelandic-data in .agents/skills/tenders/SKILL.md and read by ahel’s review.

Requires: Tier 0 (core).

Icelandic public tender data from three sources: TED API (EU-threshold, real-time), OCDS bulk data (historical), and utbodsvefur.is (domestic, web-only).

Data Sources

SourceCoverageAccessTenders
TED APIEEA-threshold (>€215k services)REST API, no auth~1,481 ISL
OCDS (OpenTender)2006–2023, all publishedBulk download (JSONL/CSV)~3,494
utbodsvefur.isCurrent/active domesticWeb UI only (WordPress)varies
reykjavik.is2018–2024 result PDFsWeb scrapingReykjavík only

TED Search API

Base URL: https://api.ted.europa.eu/v3/notices/search

No authentication required. POST with JSON body, returns paginated results.

Search all Icelandic tenders

curl -s -X POST "https://api.ted.europa.eu/v3/notices/search" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "organisation-country-buyer=ISL",
    "fields": ["notice-title","publication-date","buyer-city","classification-cpv","tender-value","tender-value-cur","organisation-name-buyer","description-lot","title-proc","deadline-receipt-tender-date-lot"],
    "limit": 20,
    "page": 1
  }'

Search by buyer city

curl -s -X POST "https://api.ted.europa.eu/v3/notices/search" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "organisation-country-buyer=ISL AND buyer-city=\"Reykjav*\"",
    "fields": ["notice-title","publication-date","organisation-name-buyer","tender-value","classification-cpv"],
    "limit": 50, "page": 1
  }'

Search by CPV code

curl -s -X POST "https://api.ted.europa.eu/v3/notices/search" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "organisation-country-buyer=ISL AND classification-cpv=90610000",
    "fields": ["notice-title","publication-date","organisation-name-buyer","tender-value"],
    "limit": 50, "page": 1
  }'

Available query fields

FieldDescription
organisation-country-buyerISO3 country code (ISL)
organisation-name-buyerBuyer org name (supports wildcards)
buyer-cityCity of buyer
classification-cpvCPV code (8-digit)
notice-titleTitle text search
publication-dateFormat: YYYYMMDD, supports ranges
estimated-value-lotEstimated value
tender-valueAward value
tender-value-curCurrency (EUR/ISK)
description-lotLot description text
title-proc / title-gloProcedure/global title
deadline-receipt-tender-date-lotSubmission deadline
description-gloGlobal description

Pagination: page (1-indexed) + limit (max 100). Country code must be ISO3 (ISL, not IS).

OCDS Bulk Data (OpenTender)

Download URL: https://data.open-contracting.org/en/publication/57/download?name=full.jsonl.gz

License: CC BY-NC-SA 4.0. Coverage: Jan 2006 – Nov 2023 (updated ~every 6 months).

Formats

FormatURL paramSize
JSONL (gzipped)?name=full.jsonl.gz~1.6MB
CSV?name=full.csv.gz~1.9MB
Excel?name=full.xlsx~2.7MB
Year-specific?name=2023.jsonl.gzvaries

OCDS Schema (key fields)

{
  "ocid": "ocds-...",
  "buyer": {"name": "Reykjavíkurborg"},
  "tender": {
    "title": "...",
    "value": {"amount": 50000000, "currency": "ISK"},
    "items": [{"classification": {"id": "90610000", "scheme": "CPV"}}]
  },
  "awards": [{
    "value": {"amount": 48000000, "currency": "ISK"},
    "suppliers": [{"name": "Hreinsitækni ehf", "id": "..."}]
  }],
  "parties": [
    {"name": "...", "roles": ["buyer"], "address": {"locality": "Reykjavík"}}
  ]
}

Of ~3,494 tenders, ~1,759 have award + supplier data. 659 from Reykjavík.

utbodsvefur.is (Web Scraping)

National tender portal. WordPress site, no API.

  • Search by: buyer dropdown (79+ orgs), tender type (Framkvæmd/Vörukaup/Þjónusta/Leiguhúsnæði), free text
  • Active tenders only — no historical archive
  • Use Playwright if scraping needed (follow skatturinn.md pattern)
  • For historical data, prefer TED/OCDS instead

Reykjavík Tender Results (reykjavik.is)

Annual result pages with linked PDFs showing winner, bidders, amounts:

YearURL
2018https://reykjavik.is/en/nidurstodur-utboda-2018
2019https://reykjavik.is/en/tender-results-2019
2020https://reykjavik.is/en/tender-results-2020
2021https://reykjavik.is/en/tender-results-2021
2022https://reykjavik.is/en/tender-results-2022
2023https://reykjavik.is/en/tender-results-2023
2024https://reykjavik.is/en/economy-tenders-procurement-results-tenders/nidurstodur-utboda-og-verdfyrirspurna-2024

Scraped by scripts/reykjavik_tenders.pydata/processed/reykjavik_winter_tenders.csv. Result PDFs have winner/bidder/amount detail not available in TED or OCDS.

Key Buyers

Major Icelandic public buyers (OCDS counts):

BuyerOCDS tenders
Ríkiskaup / Fjársýslan~1,655 combined
Reykjavíkurborg~522
Vegagerðin~147
Landsvirkjun~96
Landsnet~89
OR (Orkuveita Reykjavíkur)~54
Isavia~52
Kópavogsbær~32

CPV Code Reference

Common CPV codes for municipal services:

CPVDescription
90610000Street cleaning
90620000Snow clearing
90630000Ice clearing
44113600Bitumen
34350000Tires
45233141Road maintenance

CLI Usage

# Download OCDS bulk data
uv run python scripts/tenders.py download-ocds

# Search TED for Reykjavik tenders
uv run python scripts/tenders.py search --buyer "Reykjav" --limit 20

# Search by CPV code (street cleaning)
uv run python scripts/tenders.py search --cpv 90610000

# Export awards with suppliers to CSV
uv run python scripts/tenders.py awards --buyer "Reykjav" -o data/processed/reykjavik_awards.csv

# List top buyers from OCDS data
uv run python scripts/tenders.py buyers

# Scrape reykjavik.is tender results (existing script)
uv run python scripts/reykjavik_tenders.py

Data Caveats

  • TED only has above-EEA-threshold tenders (~€215k for services)
  • OCDS updated every ~6 months, not real-time
  • utbodsvefur.is covers domestic below-threshold tenders but no API
  • Supplier names inconsistent between sources (e.g. "Hreinsitækni ehf" vs "Hreinsitækni ehf.")
  • Award values sometimes EUR, sometimes ISK — check currency field
  • Reykjavík appears under 3+ different buyer names in OCDS

Related Skills

Signals

GitHub stars
54
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
tenders
Source
github.com/jokull/icelandic-data