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
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.
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
Secret views 0
Laws 17–18. Paying buys access — API, briefs, integrations — never a finding, never its removal.
LAW 17
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
Composite scores 0
Law 3. No score, index, grade, or rank of places. The verdict happens in the reader.
LAW 03
Unpublished 0
Law 29. Detector versions are public. Misses become golden rows and publish beside hits, permanently.
LAW 29
Lock-in 0
Every panel exports CSV plus a receipt manifest: source URL, fetch time, hash, coverage.
EXPORT SPEC
05 · The ledger
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.