Jak korzystać z API KRS: przewodnik krok po kroku (2026)

2026-10-21 · SzopaLabs

Jak korzystać z otwartego API KRS: pierwsze zapytanie bez klucza, struktura JSON, limity, błędy i integracja danych z rejestru z CRM krok po kroku.

Programista tworzy zapytanie do otwartego API KRS

Z otwartego API KRS skorzystasz bez rejestracji, bez klucza i bez opłat: wysyłasz zapytanie HTTP z 10-cyfrowym numerem KRS i dostajesz odpis aktualny albo pełny w formacie JSON. Poniżej pokazujemy, jak zrobić pierwsze zapytanie w kilka minut, co dokładnie przychodzi w odpowiedzi, gdzie leżą ograniczenia i jak sensownie podpiąć dane z rejestru do CRM, arkusza czy własnego systemu ofertowego.

TL;DR

Spis treści

Czym jest otwarte API KRS

To usługa, którą Ministerstwo Sprawiedliwości uruchomiło 8 marca 2022 r. jako pierwszy kanał maszynowego udostępniania danych z Krajowego Rejestru Sądowego. Zakres danych odpowiada odpisom z KRS, tylko zamiast PDF dostajesz ustrukturyzowany JSON, który program może od razu przeczytać.

W praktyce oznacza to trzy rzeczy:

  1. Brak barier wejścia. Nie zakładasz konta, nie generujesz klucza, nie podpisujesz umowy. Zapytanie wpisane w przeglądarkę zadziała tak samo jak wywołanie z serwera.
  2. Jeden podmiot na zapytanie. API jest zbudowane wokół numeru KRS. Jeśli masz listę 300 spółek, wykonujesz 300 zapytań.
  3. Dane z rejestru, nie interpretacja. Dostajesz to, co jest wpisane w KRS. Ocena, czy kontrahent jest wiarygodny, zostaje po Twojej stronie.

Oficjalny opis usługi i parametry znajdziesz w dokumentacji otwartego API na Portalu Rejestrów Sądowych. Warto do niej zajrzeć przed pisaniem integracji, bo to jedyne miejsce, w którym zmiany w API są opisywane u źródła.

Istnieje też szerszy dostęp do danych KRS dla podmiotów, które uzyskają zgodę Ministra Sprawiedliwości. Dla typowej firmy wykonawczej, biura rachunkowego czy działu sprzedaży realną i wystarczającą opcją jest otwarte API.

Pierwsze zapytanie w pięć minut

Nie potrzebujesz programisty, żeby zobaczyć, jak działa API. Wystarczy przeglądarka.

  1. Znajdź numer KRS kontrahenta. Jest na fakturze, w stopce strony, w wyszukiwarce KRS albo w wykazie podatników VAT. Dla spółek biała lista zwykle podaje też numer KRS obok NIP.
  2. Uzupełnij numer zerami do 10 cyfr. Numer 123456 zapisujesz jako 0000123456. Bez zer na początku zapytanie zwróci błąd.
  3. Wybierz rejestr. Parametr rejestr=P oznacza rejestr przedsiębiorców, rejestr=S rejestr stowarzyszeń, fundacji i innych organizacji.
  4. Wybierz rodzaj odpisu. OdpisAktualny pokazuje stan na dziś, OdpisPelny całą historię wpisów.
  5. Wyślij zapytanie i obejrzyj JSON. Przeglądarki takie jak Firefox od razu go sformatują.

Adres zapytania o odpis aktualny wygląda tak:

https://api-krs.ms.gov.pl/api/krs/OdpisAktualny/0000123456?rejestr=P&format=json

To samo z wiersza poleceń:

curl "https://api-krs.ms.gov.pl/api/krs/OdpisAktualny/0000123456?rejestr=P&format=json"

I najprostszy skrypt w Pythonie, który pobiera nazwę i NIP:

import requests

def odpis_krs(numer, rejestr="P"):
    numer = str(numer).zfill(10)
    url = f"https://api-krs.ms.gov.pl/api/krs/OdpisAktualny/{numer}"
    r = requests.get(url, params={"rejestr": rejestr, "format": "json"}, timeout=20)
    if r.status_code == 404:
        return None
    r.raise_for_status()
    return r.json()

dane = odpis_krs(123456)
if dane:
    podmiot = dane["odpis"]["dane"]["dzial1"]["danePodmiotu"]
    print(podmiot["nazwa"], podmiot["identyfikatory"].get("nip"))

Jeśli spółka jest w rejestrze stowarzyszeń, a pytasz z parametrem P, dostaniesz brak wyniku. Przy nieznanym typie podmiotu sprawdź po kolei oba rejestry.

Co przychodzi w odpowiedzi JSON

Odpowiedź ma nagłówek (numer KRS, data i stan odpisu) oraz część dane podzieloną na działy, tak jak papierowy odpis. Tak wygląda mapa tego, czego zwykle szukasz:

Dział Co w nim znajdziesz Do czego się przydaje
Dział 1 nazwa, forma prawna, NIP, REGON, siedziba i adres, kapitał zakładowy, wspólnicy spółek z o.o. uzupełnienie karty firmy, weryfikacja danych z faktury
Dział 2 organ reprezentacji, skład zarządu, sposób reprezentacji, prokurenci, rada nadzorcza kto może podpisać umowę, czy wymagana jest reprezentacja łączna
Dział 3 przedmiot działalności (PKD), wzmianki o złożonych sprawozdaniach finansowych czy firma robi to, co deklaruje, czy składa sprawozdania
Dział 4 zaległości, wierzytelności, informacje o egzekucji wczesny sygnał problemów z płynnością
Dział 5 kurator rzadki, ale ważny sygnał: spółka bez działającego organu
Dział 6 likwidacja, rozwiązanie, upadłość, restrukturyzacja, połączenia i podziały czy w ogóle warto podpisywać umowę

Kilka praktycznych uwag, zanim przeniesiesz te pola do arkusza czy CRM:

Limity, błędy i dobre praktyki

Publiczna dokumentacja nie podaje sztywnego limitu zapytań na minutę. Nie znaczy to, że limitu nie ma. Rządowy Standard API dla danych publicznych dopuszcza dławienie ruchu i ograniczenia, które chronią ciągłość działania rejestrów. Najczęściej objawia się to kodem HTTP 429 albo wydłużonym czasem odpowiedzi.

Kody, które zobaczysz najczęściej:

Kod Co oznacza Co zrobić
200 odpis zwrócony zapisz dane i datę pobrania
404 brak podmiotu w tym rejestrze sprawdź zera, drugi rejestr (P/S), poprawność numeru
429 za dużo zapytań odczekaj, ponów z rosnącym opóźnieniem
5xx błąd po stronie serwera ponów później, nie zapętlaj zapytań

Zasady, które oszczędzą Ci kłopotów:

  1. Rób przerwy między zapytaniami. Przy wsadowym pobieraniu kilkuset spółek sekunda odstępu to rozsądny punkt startu.
  2. Cache'uj wyniki. Dane spółki nie zmieniają się co godzinę. Pobranie odpisu raz dziennie, a dla większości kontrahentów raz w tygodniu, w zupełności wystarcza.
  3. Loguj datę i godzinę pobrania. Gdy kiedyś trzeba będzie wykazać, na jakiej podstawie zawarto umowę, ta informacja jest bezcenna.
  4. Ustaw timeout i ponawianie. API publiczne bywa wolniejsze w godzinach szczytu. Skrypt, który wisi bez końca, zablokuje cały import.
  5. Korzystaj z oficjalnych kanałów. Automatyczne pobieranie danych z wyszukiwarki KRS przez boty to inna sytuacja prawna niż korzystanie z otwartego API. Jeśli planujesz coś więcej niż API, skonsultuj to wcześniej z prawnikiem.

Integracja KRS z CRM: jak to zaprojektować

Najczęstszy scenariusz wygląda tak: handlowiec albo kierownik budowy wpisuje NIP kontrahenta, a system sam uzupełnia nazwę, adres, zarząd i PKD. Jak opisuje DreamITeam w poradniku o automatyzacji CRM, cały proces sprowadza się do wpisania identyfikatora i jednego kliknięcia. Diabeł tkwi w szczegółach.

Krok 1: zamień NIP na numer KRS

Otwarte API przyjmuje tylko numer KRS, a w CRM masz zwykle NIP. Potrzebujesz pośredniego kroku: wykazu podatników VAT albo bazy REGON GUS. Dlatego integratorzy HubSpota łączą KRS z innymi rejestrami, w tym z GUS REGON, a przy braku NIP szukają firmy po domenie z adresu e-mail. Jednoosobowe działalności nie mają numeru KRS wcale: ich dane są w CEIDG, o czym piszemy w tekście o otwartych danych z dane.gov.pl i CEIDG.

Krok 2: ustal, które pola nadpisuje rejestr

Dobra integracja jest jednokierunkowa: rejestr jest źródłem, CRM odbiorcą. Spectage opisuje ten model właśnie tak: rejestr nadpisuje tylko wybrane pola, pola handlowe zostają nietknięte, a data ostatniego pobrania trafia do osobnego pola. Praktyczny podział:

Krok 3: zdecyduj, kiedy odświeżać

Masz trzy opcje: pobranie przy tworzeniu rekordu, odświeżanie cykliczne (np. co tydzień nocą) oraz odświeżanie przed ważnym zdarzeniem, czyli przed podpisaniem umowy, wysłaniem oferty czy wystawieniem dużej faktury. Dla firmy wykonawczej najważniejsza jest trzecia opcja. Jeśli prowadzisz kilkudziesięciu kontrahentów naraz, zobacz, jak podchodzimy do tego w tekście o monitorowaniu zmian w KRS.

Krok 4: połącz z resztą systemów

Dane z KRS rzadko żyją tylko w CRM. Trafiają do księgowości, systemu ofertowego, arkusza z podwykonawcami. Dobrze ułożony przepływ danych między takimi narzędziami opisuje poradnik o tym, jak łączyć ERP, kasę i CRM z księgowością. Zasada jest wspólna: jedno źródło prawdy dla każdego pola. Z czasem warto też wprowadzić stały przegląd jakości rekordów, np. według harmonogramu porządkowania danych w CRM na 30, 90 i 180 dni, żeby duplikaty i nieaktualne firmy nie psuły raportów.

Czego API KRS Ci nie powie

To najczęściej pomijana część. Odpis z KRS pokazuje, kim jest spółka i kto ją reprezentuje, ale nie odpowiada na wiele pytań, które zadaje wykonawca przed umową:

Pełną listę rejestrów i kolejność, w jakiej warto je przeglądać, znajdziesz w naszym tekście o rejestrach publicznych w due diligence oraz w praktycznym przewodniku po analizie kontrahenta.

Dane z KRS a RODO

Dane w KRS są jawne z mocy ustawy, ale jawność nie oznacza dowolności. Jak zauważa DreamITeam, przetwarzanie ich we własnym CRM powinno służyć celom biznesowym wynikającym z jawności rejestru, a nie budowaniu baz marketingowych, które podlegają osobnym zasadom. W praktyce: weryfikacja kontrahenta przed umową to typowy, uzasadniony cel. Masowa wysyłka ofert do członków zarządów wyciągniętych z KRS to już temat do rozmowy z inspektorem ochrony danych albo prawnikiem przed startem kampanii. Szerzej piszemy o tym w tekście o wzbogacaniu danych z rejestrów zgodnie z RODO.

Nasze zdanie: budować integrację czy nie

Nasze zdanie: budować integrację czy nie — overview diagram

Pracujemy na otwartym API KRS na co dzień, bo z niego i z innych rejestrów składamy raporty dla firm budowlanych. Z tej perspektywy widzimy jedną prostą regułę: integracja ma sens, gdy sprawdzasz kontrahentów regularnie i masz kogoś, kto ją utrzyma. Jeśli dodajesz do CRM kilkadziesiąt firm miesięcznie, skrypt z tego poradnika zwróci się szybko.

Gorzej, gdy oczekujesz od API odpowiedzi na pytanie „czy mogę tej firmie zaufać". Sam odpis z KRS tego nie mówi. Mała firma wykonawcza, która raz na kwartał bierze nowego podwykonawcę albo startuje w przetargu z nowym partnerem, rzadko potrzebuje własnej integracji. Potrzebuje zestawienia: KRS, biała lista VAT, pozwolenia na budowę, powiązane spółki, sygnały ryzyka, każda pozycja ze wskazaniem źródła. Dlatego przy każdym naszym raporcie podajemy, skąd pochodzi dana informacja, żebyś mógł ją sprawdzić sam. I zawsze powtarzamy: to zestawienie faktów, a nie porada prawna czy podatkowa. Decyzja o umowie należy do Ciebie.

— Michał

Kiedy wolisz gotowy raport zamiast kodu

Jeśli nie chcesz pisać skryptu dla jednego czy dwóch kontrahentów, zrób sprawdzenie kontrahenta po NIP. Wpisujesz NIP, dostajesz wstępny wynik za darmo, a pełny raport kosztuje 49 zł za firmę: dane z KRS i białej listy VAT, pozwolenia na budowę, powiązane spółki i sygnały ryzyka, każda informacja ze źródłem. Bez abonamentu i bez rozmowy z handlowcem, a cena jest końcowa, bo jesteśmy zwolnieni z VAT. Wszystkie raporty, w tym przygotowywany raport z przetargu, znajdziesz na stronie Raporty SzopaLabs.

Najczęstsze pytania

Czy API KRS jest płatne i czy trzeba mieć klucz?

Nie. Otwarte API Ministerstwa Sprawiedliwości jest bezpłatne i nie wymaga rejestracji, logowania ani klucza API. Wystarczy wysłać zapytanie z numerem KRS pod adres api-krs.ms.gov.pl.

Jakie są limity zapytań do API KRS?

Dokumentacja publiczna nie podaje sztywnego limitu. Usługa może jednak ograniczać ruch przy przeciążeniu, co zwykle kończy się kodem HTTP 429. Rób przerwy między zapytaniami, ponawiaj z opóźnieniem i przechowuj pobrane odpisy zamiast pytać o tę samą spółkę wiele razy dziennie.

Czy mogę wyszukać firmę w API KRS po NIP albo nazwie?

Nie. Otwarte API przyjmuje tylko 10-cyfrowy numer KRS. Jeśli masz NIP, najpierw ustal numer KRS, np. w wykazie podatników VAT lub w bazie REGON, a potem pytaj API.

Gdzie jest dokumentacja API KRS?

Oficjalny opis usługi publikuje Ministerstwo Sprawiedliwości na Portalu Rejestrów Sądowych, w sekcji poświęconej otwartemu API. Tam znajdziesz aktualne adresy zapytań, parametry i strukturę odpowiedzi.

Czy dane z API KRS mają moc dokumentu urzędowego?

JSON z API to dane do pracy w systemach, nie dokument dołączany do oferty. Jeśli zamawiający w przetargu wymaga odpisu lub informacji z KRS, pobierz go z wyszukiwarki KRS i sprawdź w dokumentach zamówienia, w jakiej formie ma zostać złożony.

Źródła

Rekomendacje

← Wszystkie wpisy