{
  "swagger": "2.0",
  "info": {
    "title": "MojePanstwo API",
    "description": "Dowiedz się jak uzyskać dostęp do największego zbioru otwartych danych w Polsce i jak zintegrować je w swojej aplikacji.",
    "version": "2.0",
    "contact": {
      "url": "https://github.com/epforgpl/_mojePanstwo-API-Server/issues"
    }
  },
  "externalDocs": {
    "url": "https://mojepanstwo.pl/api"
  },
  "host": "api-v3.mojepanstwo.pl",
  "schemes": [
    "https"
  ],
  "produces": [
    "application/json"
  ],
  "tags": [
    {
      "name": "bdl",
      "description": "Przeglądaj statystyki GUS zebrane w Banku Danych Lokalnych"
    }
  ],
  "parameters": {
    "dataset": {
      "name": "dataset",
      "in": "path",
      "description": "Nazwa zbioru danych, pełna lista dostępna pod https://api-v3.mojepanstwo.pl/dane/zbiory",
      "required": true,
      "type": "string",
      "enum": [
        "bdl_wskazniki",
        "bdl_wskazniki_grupy",
        "bdl_wskazniki_kategorie",
        "budzet_wydatki_czesci",
        "budzet_wydatki_dzialy",
        "budzet_wydatki_rozdzialy",
        "coe_sittings",
        "crawler_pages",
        "crawler_sites",
        "dotacje_ue",
        "dzialania",
        "dzielnice",
        "faktury",
        "gminy",
        "gminy_okregi_wyborcze",
        "handel_zagraniczny_towary",
        "instytucje",
        "kody_pocztowe",
        "kody_pocztowe_ulice",
        "kolej_linie",
        "kolej_stacje",
        "krakow_darczyncy",
        "krakow_dzielnice_rady_posiedzenia",
        "krakow_dzielnice_uchwaly",
        "krakow_glosowania",
        "krakow_glosowania_glosy",
        "krakow_jednostki",
        "krakow_komisje",
        "krakow_komisje_posiedzenia",
        "krakow_komisje_posiedzenia_punkty",
        "krakow_oswiadczenia",
        "krakow_pomoc_publiczna",
        "krakow_posiedzenia",
        "krakow_posiedzenia_punkty",
        "krakow_rada_uchwaly",
        "krakow_radni_dzielnic_glosy",
        "krakow_umowy",
        "krakow_urzednicy",
        "krakow_zamowienia_publiczne",
        "krakow_zarzadzenia",
        "krs_osoby",
        "krs_podmioty",
        "krs_podmioty_zmiany",
        "miejscowosci",
        "msig",
        "msig_dzialy",
        "msig_zmiany",
        "nik_raporty",
        "nik_raporty_dokumenty",
        "panstwa",
        "patenty",
        "poslowie",
        "poslowie_biura",
        "poslowie_biura_wydatki",
        "poslowie_glosy",
        "poslowie_oswiadczenia_majatkowe",
        "poslowie_rejestr_korzysci",
        "poslowie_wspolpracownicy",
        "poslowie_wyjazdy",
        "poslowie_wyjazdy_wydarzenia",
        "powiaty",
        "prawo",
        "prawo_hasla",
        "prawo_lokalne",
        "prawo_powiazane",
        "prawo_projekty",
        "prawo_urzedowe",
        "prawo_wojewodztwa",
        "radni_dzielnic",
        "radni_gmin",
        "radni_gmin_oswiadczenia_majatkowe",
        "rady_druki",
        "rady_druki_dokumenty",
        "rady_gmin",
        "rady_gmin_debaty",
        "rady_gmin_interpelacje",
        "rady_gmin_wystapienia",
        "rady_posiedzenia",
        "rcl_etapy",
        "sa_orzeczenia",
        "sa_sedziowie",
        "sejm_debaty",
        "sejm_dezyderaty",
        "sejm_druki",
        "sejm_glosowania",
        "sejm_interpelacje",
        "sejm_interpelacje_pisma",
        "sejm_kluby",
        "sejm_komisje",
        "sejm_komisje_opinie",
        "sejm_komisje_uchwaly",
        "sejm_komunikaty",
        "sejm_posiedzenia",
        "sejm_posiedzenia_punkty",
        "sejm_wystapienia",
        "senat_druki",
        "senat_glosowania",
        "senat_glosowania_glosy",
        "senat_kluby",
        "senat_posiedzenia",
        "senat_rejestr_korzysci",
        "senat_stenogramy",
        "senatorowie",
        "senatorowie_oswiadczenia_majatkowe",
        "senatorowie_pracownicy",
        "sn_orzeczenia",
        "sn_sedziowie",
        "sp_orzeczenia",
        "sp_tezy",
        "tematy",
        "twitter",
        "twitter_accounts",
        "twitter_tags",
        "umowy",
        "urzednicy",
        "urzednicy_rejestr_korzysci",
        "urzedy_gmin",
        "wojewodztwa",
        "wybory_darczyncy",
        "zamowienia_publiczne",
        "zamowienia_publiczne_dokumenty",
        "zamowienia_publiczne_wykonawcy",
        "zamowienia_publiczne_zamawiajacy",
        "zbiory"
      ]
    }
  },
  "paths": {
    "/dane/{dataset}": {
      "get": {
        "summary": "Wyszukuj obiekty w danym zbiorze danych",
        "tags": [
          "dane"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/dataset"
          },
          {
            "name": "conditions",
            "in": "query",
            "description": "Warunki, które muszą być spełnione na konkretnych polach, np. 'conditions[imie]=Jan&conditions[nazwisko]=Kowalski'",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Pełnotekstowe wyszukiwanie (z odmianą), np. ?q=epanstwo",
            "required": false,
            "type": "string"
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sortowanie w formacie '<pole> (desc|asc)' po polach zawartych w 'data', np. ?order=poslowie.nazwisko asc",
            "required": false,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Numer strony wyników do zwrócenia. Można się także posłużyć linkami z sekcji Links odpowiedzi",
            "required": false,
            "type": "integer"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Ilość wyników zwróconych na stronie (domyślnie 50)",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "Stronicowana lista obiektów danego zbioru danych spełniająca kryteria",
            "schema": {
              "$ref": "#/definitions/DataobjectsList"
            }
          }
        }
      }
    },
    "/dane/{dataset}/{id}": {
      "get": {
        "summary": "Pobierz dane konkretnego obiektu",
        "tags": [
          "dane"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/dataset"
          },
          {
            "name": "id",
            "in": "path",
            "description": "Unikalny (w ramach tego zbioru danych) identyfikator obiektu",
            "required": true,
            "type": "integer"
          },
          {
            "name": "layers",
            "in": "query",
            "description": "Lista warstw, które powinny zostać załadowane razem z obiektem. Załaduj obiekt bez warstw, aby poznać dostępne w tym zbiorze warstwy",
            "type": "array",
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Obiekt danych",
            "schema": {
              "$ref": "https://api-v3.mojepanstwo.pl/schemas/dane/dataobject.json"
            }
          },
          "404": {
            "$ref": "#/responses/NotFound"
          }
        }
      }
    }
  },
  "responses": {
    "418": {
      "description": "API Error",
      "schema": {
        "properties": {
          "code": {
            "type": "string",
            "description": "Kod błędu, unikalny dla całego API"
          },
          "params": {
            "type": "object",
            "description": "Parametry błędu (niezależne od języka, specyficzne dla danego kodu błędu)"
          },
          "message": {
            "type": "string",
            "description": "Szczegółowy opis błędu po angielsku"
          }
        }
      }
    },
    "NotFound": {
      "description": "Object not found."
    }
  },
  "definitions": {
    "DataobjectsList": {
      "required": ["Dataobject", "Count", "Took", "Links"],
      "properties": {
        "Dataobject": {
          "type": "array",
          "items": {
            "$ref": "https://api-v3.mojepanstwo.pl/schemas/dane/dataobject.json"
          }
        },
        "Count": {
          "type": "integer",
          "description": "Liczba wszystkich obiektów pasujących do zapytania, kolejne strony można zwracać zmieniając parametr page"
        },
        "Took": {
          "type": "integer",
          "description": "Długość trwania zapytania w milisekundach"
        },
        "Links": {
          "title": "Links HATEOAS",
          "properties": {
            "self": {
              "type": "string",
              "format": "uri",
              "description": "Link do bieżacej strony wyników"
            },
            "first": {
              "type": "string",
              "format": "uri",
              "description": "Link do pierwszej strony wyników"
            },
            "prev": {
              "type": "string",
              "format": "uri",
              "description": "Link do poprzedniej strony wyników"
            },
            "next": {
              "type": "string",
              "format": "uri",
              "description": "Link do następnej strony wyników"
            },
            "last": {
              "type": "string",
              "format": "uri",
              "description": "Link do ostatniej strony wyników"
            }
          },
          "required": ["self"]
        }
      }
    }
  }
}