> ## Documentation Index
> Fetch the complete documentation index at: https://docs.krdata.pl/llms.txt
> Use this file to discover all available pages before exploring further.

# Formaty raportów

> Kształt wierszy raportów KRZ, MSiG i zmian KRS (JSON i CSV) zwracanych przez endpointy pobierania.

Raporty **dzienne** (`/v1/reports/daily/download/{daily_id}`) oraz **na żądanie** (`/v1/reports/download/{job_id}`) zwracają ten sam kształt danych: płaską tablicę wierszy. Format wybierasz przy generowaniu (`json` lub `csv`); jeden plik zawiera wyłącznie wiersze jednego źródła (KRZ, MSiG albo zmiany KRS).

<Note>
  Źródło **zmian KRS** (`krs_changes`) wymaga planu **Pro** lub wyższego — dotyczy to zarówno dziennego archiwum, jak i raportów na żądanie. KRZ i MSiG pozostają dostępne w każdym planie (archiwum dzienne) lub od planu Pro (raporty na żądanie).
</Note>

<Note>
  Wiersz raportu **nie jest** tym samym kształtem co `/v1/krz/record` ani `/v1/msig/record`. Jest spłaszczony: pola dłużnika/podmiotu są na najwyższym poziomie (bez zagnieżdżonego obiektu `debtor`), nie ma bloku `metadata`, a KRZ nie zawiera wyliczanego pola `rodzaj_sprawy_label`. Tablica `advisors` to surowy zapis źródłowy, bogatszy niż `KrzAdvisor` z endpointów rekordów.
</Note>

## KRZ — wiersz raportu (`ReportKrzRow`)

| Pole                 | Typ            | Uwagi                                            |
| -------------------- | -------------- | ------------------------------------------------ |
| `id`                 | string (UUID)  | zawsze                                           |
| `announcement_date`  | string (date)  | zawsze                                           |
| `signature`          | string         | sygnatura sprawy                                 |
| `number`             | string         | numer obwieszczenia                              |
| `title`              | string         | tytuł                                            |
| `court`              | string         | sąd                                              |
| `court_division`     | string         | wydział                                          |
| `rodzaj_sprawy`      | string         | `U` / `R` / `B` / `Z` (lub `null`)               |
| `subcategory`        | string         | podkategoria                                     |
| `debtor_kind`        | string         | `person` lub `company`                           |
| `debtor_name`        | string         | nazwa / imię i nazwisko dłużnika                 |
| `debtor_pesel`       | string         | tylko dłużnik `person`                           |
| `debtor_birth_date`  | string (date)  | tylko dłużnik `person`                           |
| `debtor_nip`         | string         | `null`, gdy brak                                 |
| `debtor_krs`         | string         | zwykle tylko dłużnik `company`                   |
| `debtor_legal_form`  | string         | zwykle tylko dłużnik `company`                   |
| `debtor_miejscowosc` | string         | miejscowość dłużnika                             |
| `debtor_country`     | string         | kod kraju (np. `pl`)                             |
| `advisors`           | array\<object> | `[]`, gdy brak; kształt poniżej                  |
| `attributes`         | object         | pola zależne od typu obwieszczenia (patrz niżej) |
| `tresc_text`         | string         | pełna treść obwieszczenia                        |

### Obiekt `advisors[]` (`ReportKrzAdvisor`)

Doradcy/organy powiązani z obwieszczeniem (np. syndyk, zarządca). Surowy zapis źródłowy:

| Pole              | Typ           | Uwagi                                   |
| ----------------- | ------------- | --------------------------------------- |
| `name`            | string        | nazwa podmiotu                          |
| `name_normalized` | string        | znormalizowana nazwa                    |
| `krs`             | string        | `null`, gdy brak                        |
| `nip`             | string        | `null`, gdy brak                        |
| `legal_form`      | string        | `null`, gdy brak                        |
| `company_id`      | string (UUID) | powiązany podmiot w KRdata              |
| `event_code`      | string        | kod roli/zdarzenia (np. `P`)            |
| `event_label`     | string        | etykieta roli (np. `Powołanie syndyka`) |

### Pole `attributes`

Obiekt o **zmiennej** liczbie kluczy — zależy od rodzaju obwieszczenia. Klucze to nazwy w camelCase (np. `dataWydaniaPostanowienia`, `terminZglaszaniaWierzytelnosci`, `sygnaturaZatwierdzonegoUkladu`), a wartości to ciągi znaków. Traktuj go jako mapę `string → string`, której nie należy zakładać z góry.

## MSiG — wiersz raportu (`ReportMsigRow`)

| Pole                  | Typ           | Uwagi                               |
| --------------------- | ------------- | ----------------------------------- |
| `id`                  | integer       | zawsze                              |
| `signature_type`      | string        | `A` lub `B`                         |
| `monitor_number`      | string        | numer wydania, np. `99/2026`        |
| `number_of_notice`    | string        | numer pozycji                       |
| `sequence_number`     | integer       | numer porządkowy                    |
| `date_of_publication` | string (date) | zawsze                              |
| `signature_of_case`   | string        | `null`, gdy brak                    |
| `signature_krs`       | string        | `null`, gdy brak                    |
| `page`                | integer       | strona w wydaniu                    |
| `chapter_name`        | string        | nazwa działu                        |
| `chapter_root`        | string        | korzeń działu (np. `IV`, `V`)       |
| `entity_name`         | string        | nazwa podmiotu / wnioskodawcy       |
| `krs`                 | string        | `null`, gdy brak                    |
| `nip`                 | string        | rzadko wypełniony; `null`, gdy brak |
| `text_position`       | string        | nagłówek pozycji                    |
| `text_body`           | string        | pełna treść wpisu                   |

## Zmiany KRS — wiersz raportu (`ReportKrsChangeRow`)

Każdy wiersz to pojedyncza zmiana wykryta w odpisie KRS danego podmiotu w danym dniu.

| Pole           | Typ           | Uwagi                                                                           |
| -------------- | ------------- | ------------------------------------------------------------------------------- |
| `id`           | integer       | zawsze                                                                          |
| `changed_on`   | string (date) | data wykrycia zmiany                                                            |
| `krs`          | string        | numer KRS podmiotu                                                              |
| `name`         | string        | nazwa podmiotu; `null`, gdy nieznana                                            |
| `category`     | string        | kategoria zmiany, np. `Reprezentacja`, `Dane podstawowe`, `Kapitał`             |
| `change_type`  | string        | techniczny typ zmiany, np. `board`, `name`, `capital`                           |
| `operation`    | string        | `added`, `removed` lub `modified`                                               |
| `label`        | string        | czytelna etykieta zmiany po polsku                                              |
| `entity_label` | string        | etykieta encji, której dotyczy zmiana (np. osoba w zarządzie); `null`, gdy brak |
| `old_value`    | any           | wartość przed zmianą; `null` dla `added`                                        |
| `new_value`    | any           | wartość po zmianie; `null` dla `removed`                                        |

<Note>
  `old_value` i `new_value` mogą być wartością prostą, obiektem lub tablicą — w zależności od pola, którego dotyczy zmiana. Nie zakładaj z góry ich kształtu.
</Note>

## CSV

Plik CSV zawiera dokładnie te same kolumny i w tej samej kolejności co odpowiednik JSON, z wierszem nagłówka. Zasady kodowania:

* **`advisors` i `attributes`** (KRZ) oraz **`old_value` i `new_value`** (zmiany KRS) są zapisywane jako pojedyncza komórka zawierająca wartość JSON w postaci tekstu, np. `[{"krs": "0001022810", "name": "…", "event_label": "Powołanie syndyka"}]`.
* **`null`** renderuje się jako pusta komórka.
* **Daty i UUID** to ciągi w formacie ISO.
* **Liczby** (`id`, `sequence_number`, `page` dla MSiG) zapisywane są jako zwykłe wartości liczbowe.

## Przykłady (JSON)

KRZ — dłużnik będący spółką:

```json theme={null}
{
  "id": "ff38e163-a779-445e-a819-b740bf32c6ce",
  "announcement_date": "2026-05-25",
  "signature": "LD/Gz-KRZ/139/2026",
  "number": "20260525/00681",
  "title": "Obwieszczenie postanowienia sądu II instancji…",
  "court": "Sąd Okręgowy w Łodzi",
  "court_division": "XIII Wydział Gospodarczy Odwoławczy",
  "rodzaj_sprawy": "B",
  "subcategory": "Obwieszczenie postanowienia sądu II instancji…",
  "debtor_kind": "company",
  "debtor_name": "AJ SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
  "debtor_pesel": null,
  "debtor_birth_date": null,
  "debtor_nip": "7712547891",
  "debtor_krs": "0000047054",
  "debtor_legal_form": "Spółka z ograniczoną odpowiedzialnością",
  "debtor_miejscowosc": "Piotrków Trybunalski",
  "debtor_country": "pl",
  "advisors": [],
  "attributes": { "dataWydaniaPostanowienia": "2026-05-25" },
  "tresc_text": "Sąd Okręgowy w Łodzi…"
}
```

MSiG — wpis KRS:

```json theme={null}
{
  "id": 19380738,
  "signature_type": "A",
  "monitor_number": "99/2026",
  "number_of_notice": "24572",
  "sequence_number": 23,
  "date_of_publication": "2026-05-25",
  "signature_of_case": "VIII Ns-Rej. KRS 7573/26/472.",
  "signature_krs": null,
  "page": 57,
  "chapter_name": "IV. OGŁOSZENIA WYMAGANE PRZEZ USTAWĘ O KRAJOWYM REJESTRZE SĄDOWYM",
  "chapter_root": "IV",
  "entity_name": "WULPIŃSKI ZAKĄTEK SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ w Olsztynie.",
  "krs": "0000797033",
  "nip": null,
  "text_position": "Poz. 24572. WULPIŃSKI ZAKĄTEK…",
  "text_body": "Sąd Rejonowy w Olsztynie…"
}
```

Zmiana KRS — nowy członek zarządu:

```json theme={null}
{
  "id": 4821993,
  "changed_on": "2026-05-25",
  "krs": "0000047054",
  "name": "AJ SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
  "category": "Reprezentacja",
  "change_type": "board",
  "operation": "added",
  "label": "Członek organu reprezentacji",
  "entity_label": "JAN KOWALSKI — Prezes Zarządu",
  "old_value": null,
  "new_value": { "imiona": "JAN", "nazwisko": "KOWALSKI", "funkcja": "PREZES ZARZĄDU" }
}
```
