Hoppa till innehåll
PRESS
M26 · Öppna API:er

Utvecklarportal

Samma funktioner som läsarna ser, maskinellt: versionerade kontrakt, fail-closed-svar och ingen väg förbi publiceringsgränsen.

API-ytor

  • Data-API (upphandling)GET

    https://press0.xyz/api/data/upphandling

    kontrakt: ok/total/page/rows, POST → 405 · read-only, loss-safe

  • Riksdagens voteringarGET

    https://press0.xyz/api/data/riksdagen

    kontrakt: ok/total/page/rows · public-only reindex

  • Kolada KPIGET

    https://press0.xyz/api/data/kolada

    kontrakt: kpi/order/rows · kpi_observation-vyn

  • Entities-sök (versionerat)GET

    https://press0.xyz/api/entities/search

    press0.entities-search/1.0 · votes + mandates + identifier

  • Entities-listning (cursor)GET

    https://press0.xyz/api/entities?cursor=&limit=

    press0.entities-list/1.0 · R5-008 — stabil sida-till-sida-paginering över entities/entity-relations, samma dataägare som Entity-grafen (ej p0lytics)

  • Entity-grafGET

    https://press0.xyz/api/entities/[id]/graph

    press0.entity-graph/1.0 · redaktionell kunskapsgraf (entities/entity-relations) — nodes/edges/list + ärligt "ungraphed" för orelaterade relationstyper. Läsarsida: /entiteter/[id] (R5-005, samma data)

  • Bidrag (Kolada)GET

    https://press0.xyz/api/bidrag

    kpi-parametriserad topp/serie · loss-safe

  • HälsaGET

    https://press0.xyz/api/health

    status/liveness/readiness/checks · 503 vid degraderad DB

Quickstart

# Sök upphandlingar (read-only)
curl "https://press0.xyz/api/data/upphandling?q=städning&perPage=5"

# Voteringar (total + ordnade rader)
curl "https://press0.xyz/api/data/riksdagen?perPage=2"

# Flöden
curl "https://press0.xyz/rss.xml"

Kontrakt: mutationer avvisas (405/401/403), felter svarar loss-safe (ok:false), täckning och asOf följer DataResult-kontraktet per fält. Publiceringsgränsen gäller maskinella vägar likaväl som UI.

SDK

En tunn, beroendefri TypeScript-klient mot API-ytorna ovan — samma kontrakt, ingen separat npm-publicering (repot har ingen publish-pipeline för det). Importera direkt ur källan eller kopiera filen.

import { Press0Client } from '@/lib/press0-client'

const client = new Press0Client() // default baseUrl: https://press0.xyz
const { rows } = await client.searchUpphandling({ q: 'städning', perPage: 5 })

Källa: src/lib/press0-client.ts · 9 kontraktstester (tests/press0-client.test.ts).

CLI

Samma SDK, från terminalen — kräver ingen build, körs direkt via Node 24:s inbyggda TypeScript-stripping.

node scripts/press0-public-cli.ts upphandling städning --perPage 5
node scripts/press0-public-cli.ts health
node scripts/press0-public-cli.ts help

Källa: scripts/press0-public-cli.ts · 14 kontraktstester (tests/press0-cli-core.test.ts).

Inte tillgängligt än

MCP-server och utgående webhooks för prenumeranter finns inte i produktion — ärligt, inte en tyst utelämning. Polla API-ytorna ovan eller RSS/Atom-flödena tills dess.

Övriga ytor