The official layer

Live— last harvest 2026-08-06T05:20:04Z

File interest

00 · Register

Pre-launch · The harvest is running

What is going on and where it is heading, clear enough that action can be taken now.

A search engine for the official layer of the Nordics. Every figure receipted. This page reads the live spine on every request.

Places 1,124 Live
Source
api.v1_counters · communes + countries
Read
2026-08-06T08:45:10Z
Method
live sum · two columns of one row
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>
Vitals rows 24,962 Live
Source
api.v1_counters · vitals_rows
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2016-01-01 → 2025-12-31
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>
Tenders 45,034 Live
Source
api.v1_counters · tenders
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2021-01-04 → 2026-08-06
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>
Decisions 25,005 Live
Source
api.v1_counters · decisions
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2024-01-08 → 2026-08-13 · end = last scheduled meeting on record
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>
Pattern observations 278 Live
Source
api.v1_counters · pattern_observations
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2026-08-05 → 2026-08-06
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>

Coverage: Denmark · Vitals 2016–2025 · Tenders 2021–2026 · Decisions 5 of 99 communes since 2024

01 · The spine

One record: subject, place, time, value, receipt.

Institutions, places, documents. 1,119 communes seeded across five countries. Denmark harvested first. The gate: no country two until Denmark is green.

NO 357 Seed
Source
spine.places · seed constant
Read
seeded, not read — constant of the commune seed
Method
seed · communes per country
FI 309 Seed
Source
spine.places · seed constant
Read
seeded, not read — constant of the commune seed
Method
seed · communes per country
SE 290 Seed
Source
spine.places · seed constant
Read
seeded, not read — constant of the commune seed
Method
seed · communes per country
DK 99 Seed
Source
spine.places · seed constant
Read
seeded, not read — constant of the commune seed
Method
seed · communes per country
IS 64 Seed
Source
spine.places · seed constant
Read
seeded, not read — constant of the commune seed
Method
seed · communes per country

02 · The record

Danish vitals and tenders: harvested. Decisions: five communes walked, ninety-four to go.

Vitals rows · DK 2016→2025 24,962 Live
Source
api.v1_counters · vitals_rows
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2016-01-01 → 2025-12-31
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>
Tenders 45,034 Live
Source
api.v1_counters · tenders
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2021-01-04 → 2026-08-06
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>
Named winners 14,681 Live · backfill running
Source
api.v1_counters · tenders_with_winners
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2021-01-04 → 2026-08-06 · mid-backfill — re-read every render
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>
Award lots 32,142 Live · backfill running
Source
api.v1_counters · tender_award_lots
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2021-01-04 → 2026-08-06 · mid-backfill — re-read every render
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>

Decisions — Randers · Vejle · Aarhus · Odense · Horsens

Randers 6,191 Live
Source
api.v1_decisions · exact count per place
Read
2026-08-06T08:45:10Z
Method
count=exact · meeting_date ≥ 2024-01-01
View the request
HEAD /rest/v1/v1_decisions?select=decision_uid&place_id=eq.8da8ae95-286c-8c0e-af02-b76ab35710de&meeting_date=gte.2024-01-01
Prefer: count=exact
apikey: <anon>
authorization: Bearer <anon>
Vejle 6,017 Live
Source
api.v1_decisions · exact count per place
Read
2026-08-06T08:45:10Z
Method
count=exact · meeting_date ≥ 2024-01-01
View the request
HEAD /rest/v1/v1_decisions?select=decision_uid&place_id=eq.b9ee2a53-9ed7-8dd7-a5e4-07f938dd7851&meeting_date=gte.2024-01-01
Prefer: count=exact
apikey: <anon>
authorization: Bearer <anon>
Aarhus 4,947 Live
Source
api.v1_decisions · exact count per place
Read
2026-08-06T08:45:10Z
Method
count=exact · meeting_date ≥ 2024-01-01
View the request
HEAD /rest/v1/v1_decisions?select=decision_uid&place_id=eq.fc71b4f8-eeb9-8b09-abfd-0fc1554c7f33&meeting_date=gte.2024-01-01
Prefer: count=exact
apikey: <anon>
authorization: Bearer <anon>
Odense 4,369 Live
Source
api.v1_decisions · exact count per place
Read
2026-08-06T08:45:10Z
Method
count=exact · meeting_date ≥ 2024-01-01
View the request
HEAD /rest/v1/v1_decisions?select=decision_uid&place_id=eq.7bc3b48f-c007-8114-aab1-6757c1a6707d&meeting_date=gte.2024-01-01
Prefer: count=exact
apikey: <anon>
authorization: Bearer <anon>
Horsens 3,481 Live
Source
api.v1_decisions · exact count per place
Read
2026-08-06T08:45:10Z
Method
count=exact · meeting_date ≥ 2024-01-01
View the request
HEAD /rest/v1/v1_decisions?select=decision_uid&place_id=eq.bd51ffc5-f477-84dc-a98c-d35c3a8949ef&meeting_date=gte.2024-01-01
Prefer: count=exact
apikey: <anon>
authorization: Bearer <anon>

03 · The join answers

You asked how many council decisions has Randers filed since 2024
Compiled spine.decisions · FILTER place = Randers · time 2024-01 →
Result
6,191 Live
Source
api.v1_decisions · exact count · place, time
Read
2026-08-06T08:45:10Z
Method
count=exact · meeting_date ≥ 2024-01-01
View the request
HEAD /rest/v1/v1_decisions?select=decision_uid&place_id=eq.8da8ae95-286c-8c0e-af02-b76ab35710de&meeting_date=gte.2024-01-01
Prefer: count=exact
apikey: <anon>
authorization: Bearer <anon>

Type a question. It compiles into named adapters, filters, joins. The joins answer. Never the model.

04 · The refusal

Each zero is enforced in the schema, not the policy. Open one.

Public records
Private data 0

Law 1. Every row carries source URL, fetch time, content hash — enforced in DDL. A row without a receipt cannot be inserted.

LAW 01

Same page, subject included
Secret views 0

Laws 17–18. Paying buys access — API, briefs, integrations — never a finding, never its removal.

LAW 17

Institutions
Persons scored 0

Law 2. No table in the spine models a person. Where a register prints a name, it renders exactly as published: no portrait, no profile, no join.

LAW 02

Verdict in the reader
Composite scores 0

Law 3. No score, index, grade, or rank of places. The verdict happens in the reader.

LAW 03

Error rate published
Unpublished 0

Law 29. Detector versions are public. Misses become golden rows and publish beside hits, permanently.

LAW 29

Open formats
Lock-in 0

Every panel exports CSV plus a receipt manifest: source URL, fetch time, hash, coverage.

EXPORT SPEC

05 · The ledger

Claims— No claims filed
Misses— No claims filed
Detector versions 16 Live
Source
api.v1_counters · detector_versions
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · registry
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>
Pattern observations 278 Live
Source
api.v1_counters · pattern_observations
Read
2026-08-06T08:45:10Z
Method
rowcount-v1 · DK · 2026-08-05 → 2026-08-06
View the request
GET /rest/v1/v1_counters?select=*
apikey: <anon>
authorization: Bearer <anon>

Error rate published, misses included, from the first claim. The ledger opens empty, in public.

06 · Being built

  • Being built The crosswalk — the spine is Nordic-shaped; the crosswalk is being built behind the gate.
  • Being built The tax tracer — your tax line to budget to decisions to tenders, receipted at every hop. Being built for the Danish public layer.
  • Being designed The intent network — being designed; not live.

07 · File interest

Free for people, forever. Institutions pay for access — API seats, briefs, integrations — never for exclusive truth.

One address. One optional line. One message at launch.

Stored: the address, the organisation if given, a timestamp — nothing else.