Otwarte API rejestru umów

JSON, bez klucza i logowania, CORS otwarty. Dane z Centralnego Rejestru Umów JSFP, odświeżane co godzinę.

Endpointy

EndpointOpis
GET /api/agreementsLista umów (tablica JSON). Obsługuje filtry — patrz niżej. Nagłówek X-Total-Count = liczba wyników przed limit/offset.
GET /api/agreement/{id}Pełny rekord jednej umowy (UUID z pola id).
GET /api/stats{ updatedAt, count, totalValue }.
GET /api/healthStatus serwisu i ostatniego odświeżenia.
GET /api/openapi.jsonSpecyfikacja OpenAPI 3.1.
GET /api/flagsSygnały: automatycznie wykryte wzorce warte weryfikacji (patrz metodologia niżej). Parametry: typ (salami|koncentracja|adres), limit (≤200).
GET /data.jsonPełny zrzut wszystkich umów (duży plik!) — do analiz offline.
GET /llms.txtOpis serwisu i danych dla asystentów AI.

Parametry /api/agreements

ParametrOpisPrzykład
wojwojewództwo (nazwa lub slug, bez znaków diakrytycznych też zadziała)?woj=zachodniopomorskie
zamzamawiający — fragment nazwy urzędu?zam=starostwo
wykwykonawca — fragment nazwy firmy?wyk=orange
nip / regondokładny NIP/REGON dowolnej strony umowy?nip=5832705185
qszukaj w całości (zamawiający, wykonawca, przedmiot, lokalizacja)?q=szpital
min / maxzakres wartości umowy w zł?min=1000000
od / dodata zawarcia (ISO RRRR-MM-DD)?od=2026-07-01
sortwartosc (malejąco), data (najnowsze) lub domyślnie: ostatnio opublikowane?sort=wartosc
limit / offsetstronicowanie: limit domyślnie 100, maksymalnie 1000?limit=50&offset=50

Filtry łączą się (AND). Przykłady na żywo:

Rekord umowy — pola

{
  "id":        "uuid — klucz do /api/agreement/{id} i /umowa/{id}",
  "zam":       "zamawiający (urząd JSFP)",
  "wyk":       "pierwszy wykonawca",
  "woj":       "WOJEWÓDZTWO", "powiat": "…", "gmina": "…",
  "wartosc":   123456.78,
  "przedmiot": "przedmiot umowy",
  "data":      "DD.MM.RRRR (zawarcia)", "dataKon": "…", "dataPub": "…",
  "numer":     "numer umowy lub null", "status": "Aktywna | …",
  "nieozn":    false, "fin": false, "zmiany": 0,
  "strony":    [{ "rodzaj": "JSFP|Przedsiębiorca|…", "nazwa": "…",
                  "nip": "…", "regon": "…", "adr": "…", "kons": false }]
}

Sygnały — metodologia

Endpoint /api/flags zwraca wzorce statystyczne wykryte automatycznie w danych rejestru. Sygnał nie jest zarzutem — każdy może mieć niewinne wyjaśnienie i wymaga weryfikacji u źródła (linkujemy wszystkie umowy-dowody).

TypDefinicja (progi)Dlaczego warte uwagi
salami≥3 umowy tej samej pary urząd↔wykonawca w ≤90 dni, każda 104–160 tys. zł (okolice progu 130 tys. zł netto, od którego stosuje się Prawo zamówień publicznych)możliwe dzielenie zamówienia dla ominięcia przetargu
koncentracjajeden wykonawca ma ≥50% wartości wszystkich umów urzędu (≥5 umów pary, ≥8 umów urzędu, ≥200 tys. zł)monokultura dostawcy — rynek mógł nie być konkurencyjny
adresdwaj różni wykonawcy z tym samym adresem siedziby (KRS/biała lista) i umowami u tego samego urzędumożliwe podmioty powiązane / pozorna konkurencja

Zasady

Serwis obywatelski — nie jest oficjalnym serwisem Ministerstwa Finansów.
Reprezentujesz jednostkę publiczną? Publikuj umowy w CRU ze zdjęcia →