Lánamál ríkisins (Government Debt Management Iceland)

SkillDev tools

Government Debt Management Iceland (lanamal.is) — RIKB/RIKS government bond market yields, no auth, JSON API.

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 Lánamál ríkisins (Government Debt Management Iceland) skill

What this skill tells your AI

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

Market data for Icelandic government bonds — yields, prices, chart history. Publishes the RIKB (óverðtryggð, non-indexed) and RIKS (verðtryggð, indexed) series that lanamal.is quotes on its /markadsyfirlit pages.

API

No auth, plain JSON. Discovered by loading a /markadsyfirlit/?type=bond page in a real browser and reading the network log — the page is ASP.NET WebForms with a React island, and the bond detail panel calls:

GET https://www.lanamal.is/api/market/LoadIndexedDetail?orderbookId={ID}&lang=is

{ID} is the orderbook id in the page's own URL query string, e.g. RIKB_28_1115 (case-insensitive upstream, but the response echoes it uppercased). Requires a browser-like User-Agent — a bare curl with no headers gets blocked; a Referer pointing at the matching /markadsyfirlit page plus a normal UA is enough, no cookies/session needed.

Response encoding is UTF-16, not UTF-8 — httpx/requests auto-detect it fine from the BOM, but a raw curl dump looks like garbage without decoding.

curl -s -A "Mozilla/5.0" \
  -H "Referer: https://www.lanamal.is/markadsyfirlit/?type=bond&orderbookid=rikb_31_0124" \
  "https://www.lanamal.is/api/market/LoadIndexedDetail?orderbookId=RIKB_31_0124&lang=is"

Response shape

A one-element JSON array:

[{
  "closingYield": "7,54%", "closingPrice": "94,08",
  "bidYield": "7,55%", "askYield": "7,52%",
  "lastValidYield": "7,54%", "totalValueTraded": "94", "tradeCount": 1,
  "orderbookId": "RIKB_31_0124", "shortName": "RIKB 31 0124",
  "longName": "Óverðtryggð ríkisbréf",
  "attributes": [
    {"name": "ISIN númer", "value": "IS0000031234"},
    {"name": "Innlausnardagur", "value": "24.01.2031"},
    {"name": "Nafnvextir", "value": "5,00"}
  ],
  "chartData": {
    "header": "Ávöxtunarkr. í lok dags",
    "chartData": [["2025-08-18T00:00:00", 7.31], ["2025-08-19T00:00:00", 7.30], ...]
  }
}]

attributes is a flat list of Icelandic-labelled key/value pairs (maturity date, ISIN, coupon, issue size, etc.) — parse by name, not by list position.

Known quirk: closingYield can be stale — use chartData instead

The top-level closingYield/bidYield/askYield/lastValidYield fields reflect the last actual trade, and these bonds trade thinly — one observed response had tradeCount: 1 for the whole lookback. That trade can be days or weeks old and priced off a stale bid/ask spread, while chartData.chartData (labelled "Ávöxtunarkr. í lok dags" — end-of-day yield) is the market-maker's daily fixing, updated every business day regardless of whether a trade happened. For "what is the yield today," read the last point of chartData, not the top-level yield fields.

chartData covers roughly the trailing 12 months, daily, ascending by date — enough to diff against a recent prior value for a day-over-day change without a second request.

Bond catalog (non-indexed / óverðtryggð, RIKB)

Fetch the orderbook id list from any /markadsyfirlit/?type=bond page's links (href="/markadsyfirlit/?type=bond&orderbookid=..."). As of 2026-08, the outstanding RIKB series:

Orderbook IDMaturityNotes
RIKB_26_1015Oct 2026near maturity
RIKB_27_0415Apr 2027
RIKB_28_1115Nov 2028
RIKB_29_0416Apr 2029
RIKB_31_0124Jan 2031closest to a 5y horizon as of 2026
RIKB_35_0917Sep 2035
RIKB_38_0215Feb 2038
RIKB_42_0217Feb 2042longest outstanding non-indexed bond — Iceland does not issue a 30y non-indexed bond, so this is the long-end proxy

Indexed (verðtryggð, RIKS) series exist too (riks_29_0917, riks_30_0701, riks_33_0321, riks_37_0115, riks_50_0915) — same API, type=bond, different id prefix. Not currently consumed by anything in this repo.

This catalog will drift — bonds mature and new ones are auctioned. Re-scan a /markadsyfirlit page's links if an orderbook id starts 404ing.

Used by

scripts/lanamal.pyfetch pulls every outstanding RIKB/RIKS orderbook from the catalog into data/processed/lanamal.csv (long format, daily fixings per bond). list rescans the market page for the live catalog.

Signals

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