Otwarte dane
Dla deweloperów i AI
Cała baza jest maszynowo czytelna. Statyczne JSON-y, bez kluczy i limitów, CORS otwarty. Stan na lipiec 2026, aktualizacja co miesiąc. Licencja danych: CC BY 4.0 (oryginalne źródła – w polu references[] każdego rekordu).
Endpointy
/api/projekty.jsonWszystkie rekordy, pełny schemat (koszt, status, terminy, outcome, references[]…) wraz z outcome_grounding: dla każdej z sześciu osi wyniku mówi, czy stoi za nią źródło i które. source_no to numer widoczny na karcie, czyli liczony od jedynki; pola source_ref w rekordzie indeksują od zera.
/api/projekt/{slug}.jsonPojedynczy rekord. Wobec listy dokłada tylko release, schema_version i license; outcome_grounding jest w obu końcówkach. Przykład: /api/projekt/lotnisko-warszawa-radom.json
/api/evidence.jsonWarstwa dowodowa: dosłowne cytaty ze źródeł, rekord po rekordzie. source_no to numer źródła widoczny na karcie. Zawiera także twierdzenia, których NIE potwierdziliśmy (verdict inny niż confirmed).
/api/statystyki.jsonAgregaty: liczby wg statusu/dziedziny, wartość wg etapu, fala otwarć, sektory.
/api/sprostowania.jsonRejestr sprostowań: co pisaliśmy, co piszemy teraz, co to rozstrzygnęło i w którym commicie. Pole layer mówi, czy błąd siedział w danych rekordu, czy w tym, jak go pokazywaliśmy.
/api/index.jsonKatalog API w formie JSON. Wymienia też manifesty dla modeli językowych, polski i angielski.
/llms.txtManifest dla modeli językowych (Markdown).
/llms-full.txtPełny zrzut tekstowy bazy – do wczytania przez LLM.
/api/snapshots/index.jsonSpis zapisanych migawek rejestru. Każda ma trwały adres.
/api/snapshots/{date}.jsonRejestr w dniu migawki: pięć pól każdego rekordu. Adres trwały, plik po zapisaniu się nie zmienia.
/api/decyzje-osi.jsonDecyzje przeglądu cytatów, które gruntują kwotę, a opisują jej zmianę: przy każdym trafieniu przypięcie pod oś budżetu albo powód odmowy.
/api/health.jsonSonda dostępności: 200, commit i znacznik wydania.
/schema/project.schema.jsonJSON Schema rekordu projektu.
/schema/evidence.schema.jsonJSON Schema pliku dowodowego (claims[]).
/sitemap-index.xmlMapa strony (wszystkie projekty).
Cytowanie, które nie wygasa
Adresy powyżej zwracają stan bieżący, więc cytat z nich starzeje się przy najbliższym odświeżeniu. Dlatego rejestr jest fotografowany: plik /api/snapshots/<data>.json zapisuje stan z jednego dnia i po zapisaniu już się nie zmienia. Poprawka wprowadzona później nie trafia do zdjęcia zapisanego wcześniej, tylko do następnego.
Zakres zdjęcia jest wąski i taki został wybrany. Migawka notuje pięć pól każdego rekordu: status, etap, kwotę kosztu, walutę tej kwoty i aktualny planowany termin. Reszta schematu, w tym cytaty i odnośniki, ma uchwyt wyłącznie w wydaniu, którego skrót podaje pole release w każdej odpowiedzi poza plikami migawek. Repozytorium jest prywatne, więc tego skrótu nie otworzysz: jest identyfikatorem wydania, a nie adresem. Trwały jest więc sam plik migawki, nie cytat.
Liczba rekordów w zdjęciu i liczba dzisiejsza mogą się różnić. Rejestr przyjmuje nowe rekordy i zdejmuje te, które okazały się drugim wpisem o tym samym przedsięwzięciu, a raz zapisanego zdjęcia nie poprawiamy wstecz: obserwacja z dopisaną korektą przestaje być obserwacją. Powód konkretnej różnicy stoi przy danym zdjęciu, w polu note.
Zapisanych zdjęć: 2. Najnowsze pochodzi z 2026-09-09 i notuje 383 rekordy, a dzisiejszy rejestr ma ich 383.
Przykład
curl -s https://projektometr.pl/api/statystyki.json | jq '.opening_wave'
# pojedynczy projekt
curl -s https://projektometr.pl/api/projekt/lotnisko-warszawa-radom.json | jq '{name, status, cost, outcome}'Dla modeli językowych
Zaczynaj od /llms.txt (manifest) i /llms-full.txt (pełny zrzut 383 rekordów). Cytując, podaj datę „stan na” oraz źródło z pola references[] danego rekordu – Projektometr agreguje i weryfikuje, ale oryginalnym źródłem jest cytowana publikacja. Reguły i „dlaczego”: o projekcie.