kdo-vodi.si — javni API · odprt, brezplačen · openapi.json · register

API kdo-vodi.si

kdo-vodi.si je register nosilcev javnih funkcij v Sloveniji: kdo zaseda katero javno funkcijo, v kateri organizaciji, od kdaj do kdaj in po katerem uradnem viru. Celoten register je dostopen prek javnega, samo bralnega REST API-ja.

Osnove

Osnovni naslov (base URL) vseh končnih točk:

https://kdo-vodi.si/api/v1

Primer zahtevka:

curl -s "https://kdo-vodi.si/api/v1/office-holders?office=mayor&per_page=5"

Strojno berljiv opis celotnega API-ja je na voljo kot OpenAPI 3.0.3 dokument: https://kdo-vodi.si/api/v1/openapi.json. Interaktivni prikaz (Swagger UI) je na dnu te strani.

Ostranjevanje (paginacija)

Vsi seznami razen /sources so ostranjeni v standardni Laravel obliki. Parametra per_page (privzeto 50, najmanj 1, največ 200) in page (privzeto 1) veljata za vsak ostranjen seznam.

{
  "data": [ ... ],
  "links": { "first": "…?page=1", "last": "…?page=9", "prev": null, "next": "…?page=2" },
  "meta": { "current_page": 1, "last_page": 9, "per_page": 50, "total": 431 }
}

Napake

Neznan slug (ali neznan parent / organization v filtru) vrne 404, prekoračena omejitev zahtevkov 429. Telo je v obeh primerih JSON.

Končne točke

GET/api/v1/organizations

Seznam organizacij in organov (vlada, ministrstva, agencije, sodišča, občine, poslanske in svetniške skupine …), z vodjo vsake organizacije, kadar je znan.

ParameterTipPomen
typestringFilter po vrsti organizacije (root_type): government, ministry, government_service, body_within_ministry, administrative_unit, agency, public_fund, social_insurance_provider, court, constitutional_court, other_state_body, national_assembly, national_council, president, prime_minister, municipality, council_group, public_institute, local_community.
tierstringUpošteva se samo, kadar type ni podan. primary (privzeto) izpusti podrejeni sloj, subordinate vrne samo njega (council_group, public_institute, local_community), all vrne vse.
parentstringSlug nadrejene organizacije; vrne njene neposredne podrejene organe.
qstringIskanje po imenu organizacije (delno ujemanje).
per_pageintegerVelikost strani; privzeto 50, največ 200.
pageintegerŠtevilka strani; privzeto 1.

Primer: /api/v1/organizations?type=ministry&per_page=2

{
  "data": [
    {
      "slug": "ministrstvo-za-finance",
      "name": "Ministrstvo za finance",
      "type": "ministry",
      "type_label": "Ministrstvo",
      "body_type": null,
      "parent": { "slug": "vlada", "name": "Vlada Republike Slovenije", "type": "government" },
      "website": "https://www.gov.si/drzavni-organi/ministrstva/ministrstvo-za-finance/",
      "phone": "01 369 33 00",
      "address": "Župančičeva ulica 3, 1000 Ljubljana",
      "email": "gp.mf@gov.si",
      "leader": {
        "name": "Ime Priimek",
        "person_slug": "ime-priimek",
        "office": "minister",
        "office_code": "minister",
        "since": "2022-06-01"
      },
      "image": null,
      "sources": [
        { "authority": "Vlada Republike Slovenije", "url": "https://www.gov.si/drzavni-organi/ministrstva/ministrstvo-za-finance/" }
      ],
      "url": "https://kdo-vodi.si/organ/ministrstvo-za-finance",
      "api_url": "https://kdo-vodi.si/api/v1/organizations/ministrstvo-za-finance"
    }
  ],
  "links": { "first": "…", "last": "…", "prev": null, "next": "…" },
  "meta": { "current_page": 1, "last_page": 9, "per_page": 2, "total": 18 }
}

image je null ali objekt { "url", "attribution", "source", "hosted" }.

GET/api/v1/organizations/{slug}

Ena organizacija. Poleg polj iz seznama vrne še vse trenutne nosilce funkcij v tej organizaciji (vodjo in člane, npr. poslance poslanske skupine) ter njene neposredno podrejene organe.

ParameterTipPomen
slugstring, v poti, obvezenSlug organizacije, npr. vlada.

Primer: /api/v1/organizations/vlada

{
  "data": { "slug": "vlada", "name": "Vlada Republike Slovenije", "type": "government", "…": "kot v seznamu" },
  "office_holders": [
    {
      "person": { "name": "Ime Priimek", "slug": "ime-priimek" },
      "office": "predsednik vlade",
      "office_code": "prime_minister",
      "role_detail": null,
      "organization": { "name": "Vlada Republike Slovenije", "slug": "vlada" },
      "since": "2022-06-01",
      "since_precision": "day",
      "until": null,
      "status": "serving",
      "current": true,
      "sources": [ { "authority": "Vlada Republike Slovenije", "url": "https://www.gov.si/…" } ]
    }
  ],
  "children": [
    { "slug": "ministrstvo-za-finance", "name": "Ministrstvo za finance", "type": "ministry", "body_type": null }
  ]
}

GET/api/v1/office-holders

Osrednja končna točka: seznam nosilcev funkcij — kdo, katero funkcijo, v kateri organizaciji, od kdaj do kdaj in po katerem viru. Privzeto vrne samo trenutne nosilce.

ParameterTipPomen
officestringŠifra funkcije, npr. mayor, mp, minister, prime_minister, deputy_pm, minister_no_portfolio, state_secretary, director, body_head, local_councillor, national_councillor, parliamentary_group_leader, parliamentary_group_member, council_group_leader, council_group_member, working_body_chair.
organizationstringSlug organizacije.
personstringSlug osebe.
currentbooleanPrivzeto true — samo mandati brez končnega datuma. current=0 vključi tudi pretekle.
per_pageintegerVelikost strani; privzeto 50, največ 200.
pageintegerŠtevilka strani; privzeto 1.

Primer: /api/v1/office-holders?office=mayor&per_page=1

{
  "data": [
    {
      "person": { "name": "Ime Priimek", "slug": "ime-priimek" },
      "office": "župan",
      "office_code": "mayor",
      "role_detail": null,
      "organization": { "name": "Občina Kamnik", "slug": "obcina-kamnik" },
      "since": "2022-12-18",
      "since_precision": "day",
      "until": null,
      "status": "serving",
      "current": true,
      "sources": [ { "authority": "Državna volilna komisija", "url": "https://www.dvk-rs.si/…" } ]
    }
  ],
  "links": { "…": "…" },
  "meta": { "current_page": 1, "last_page": 212, "per_page": 1, "total": 212 }
}

status: elected, serving, acting, suspended, ended, contested. since_precision: day, month, year, inferred, at_least, unknown. role_detail nosi natančnejšo, s spletne strani prebrano vlogo (npr. resor državnega sekretarja), kadar je bolj specifična od splošne oznake funkcije.

GET/api/v1/people

Iskanje oseb po imenu. Vsak zadetek nosi celotno znano zgodovino njegovih funkcij.

ParameterTipPomen
qstringIskanje po imenu (delno ujemanje). Brez njega vrne vse osebe po abecedi.
per_pageintegerVelikost strani; privzeto 50, največ 200.
pageintegerŠtevilka strani; privzeto 1.

Primer: /api/v1/people?q=novak

GET/api/v1/people/{slug}

Ena oseba z zgodovino funkcij. Mandati so razvrščeni tako, da so tekoči prvi, nato po najnovejšem začetku.

ParameterTipPomen
slugstring, v poti, obvezenSlug osebe, npr. ime-priimek.
{
  "data": {
    "slug": "ime-priimek",
    "name": "Ime Priimek",
    "birth_year": 1971,
    "image": { "url": "https://kdo-vodi.si/media/12", "attribution": "Wikimedia Commons", "source": "https://commons.wikimedia.org/…", "hosted": true },
    "offices": [
      {
        "person": { "name": "Ime Priimek", "slug": "ime-priimek" },
        "office": "minister",
        "office_code": "minister",
        "role_detail": null,
        "organization": { "name": "Ministrstvo za finance", "slug": "ministrstvo-za-finance" },
        "since": "2022-06-01",
        "since_precision": "day",
        "until": null,
        "status": "serving",
        "current": true,
        "sources": [ { "authority": "Vlada Republike Slovenije", "url": "https://www.gov.si/…" } ]
      }
    ],
    "url": "https://kdo-vodi.si/oseba/ime-priimek",
    "api_url": "https://kdo-vodi.si/api/v1/people/ime-priimek"
  }
}

GET/api/v1/sources

Seznam uradnih virov, na katere so vezani podatki v registru. Brez parametrov in brez ostranjevanja.

{
  "data": [
    { "key": "dvk-mayors", "name": "DVK — župani", "authority": "Državna volilna komisija" },
    { "key": "govsi-ministries", "name": "GOV.SI — ministrstva", "authority": "Vlada Republike Slovenije" }
  ]
}

GET/api/v1/openapi.json

Celoten OpenAPI 3.0.3 opis API-ja (poti, parametri, sheme odgovorov) — primeren za generatorje odjemalcev in za strojno branje: https://kdo-vodi.si/api/v1/openapi.json.

Bulk prenosi (CSV)

Če potrebujete celoten register naenkrat, ga ne pridobivajte s prelistavanjem API-ja — uporabite pripravljene izvoze:

Izvozi so omejeni na 10 prenosov na minuto na IP naslov.

Več

Interaktivno preizkušanje

Swagger UI nad zgornjo specifikacijo (zahteva JavaScript).