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

GET/api/projekty.json

Wszystkie 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.

GET/api/projekt/{slug}.json

Pojedynczy 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

GET/api/evidence.json

Warstwa 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).

GET/api/statystyki.json

Agregaty: liczby wg statusu/dziedziny, wartość wg etapu, fala otwarć, sektory.

GET/api/sprostowania.json

Rejestr 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.

GET/api/index.json

Katalog API w formie JSON. Wymienia też manifesty dla modeli językowych, polski i angielski.

GET/llms.txt

Manifest dla modeli językowych (Markdown).

GET/llms-full.txt

Pełny zrzut tekstowy bazy – do wczytania przez LLM.

GET/api/snapshots/index.json

Spis zapisanych migawek rejestru. Każda ma trwały adres.

GET/api/snapshots/{date}.json

Rejestr w dniu migawki: pięć pól każdego rekordu. Adres trwały, plik po zapisaniu się nie zmienia.

GET/api/decyzje-osi.json

Decyzje 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.

GET/api/health.json

Sonda dostępności: 200, commit i znacznik wydania.

GET/schema/project.schema.json

JSON Schema rekordu projektu.

GET/schema/evidence.schema.json

JSON Schema pliku dowodowego (claims[]).

GET/sitemap-index.xml

Mapa 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.