Jak korzystać z API KRS: przewodnik krok po kroku (2026)
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.
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
- Otwarte API KRS Ministerstwa Sprawiedliwości działa od marca 2022 r., jest bezpłatne i nie wymaga klucza API ani logowania.
- Pytasz zawsze o jeden podmiot, po numerze KRS (10 cyfr z zerami na początku). Nie ma wyszukiwania po nazwie, NIP, PKD czy województwie.
- Odpowiedź to JSON o strukturze odpisu: działy 1 do 6, od danych podmiotu po likwidację i upadłość.
- Przy integracji z CRM najpierw zamień NIP na numer KRS, synchronizuj dane jednokierunkowo i zapisuj datę ostatniego pobrania.
- KRS to tylko część obrazu kontrahenta: VAT, upadłości i pozwolenia na budowę sprawdzisz w innych rejestrach.
Spis treści
- Czym jest otwarte API KRS
- Pierwsze zapytanie w pięć minut
- Co przychodzi w odpowiedzi JSON
- Limity, błędy i dobre praktyki
- Integracja KRS z CRM: jak to zaprojektować
- Czego API KRS Ci nie powie
- Dane z KRS a RODO
- Nasze zdanie: budować integrację czy nie
- Kiedy wolisz gotowy raport zamiast kodu
- Najczęstsze pytania
- Źródła
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:
- 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.
- Jeden podmiot na zapytanie. API jest zbudowane wokół numeru KRS. Jeśli masz listę 300 spółek, wykonujesz 300 zapytań.
- 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.
- 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.
- Uzupełnij numer zerami do 10 cyfr. Numer 123456 zapisujesz jako 0000123456. Bez zer na początku zapytanie zwróci błąd.
- Wybierz rejestr. Parametr
rejestr=Poznacza rejestr przedsiębiorców,rejestr=Srejestr stowarzyszeń, fundacji i innych organizacji. - Wybierz rodzaj odpisu.
OdpisAktualnypokazuje stan na dziś,OdpisPelnycałą historię wpisów. - 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:
- Kwoty traktuj jak tekst do przekonwertowania. Kapitał zakładowy i wartości udziałów są zapisywane w polskim formacie, z przecinkiem dziesiętnym. Zanim policzysz cokolwiek w Excelu czy bazie, zamień je na liczby.
- PKD bywa rozbite na kilka pól. Kod działu, klasy i podklasy często musisz skleić w jeden ciąg, np. 41.20.Z, żeby pasował do słowników w Twoim systemie.
- Dane osób fizycznych mogą być częściowo zamaskowane. Otwarte API nie służy do budowania bazy osób. Jeśli potrzebujesz pełnych danych członka zarządu do umowy, użyj odpisu z wyszukiwarki KRS albo dokumentu od kontrahenta.
- Odpis pełny jest dużo większy. Zawiera historię wszystkich wpisów, więc pobieraj go tylko wtedy, gdy naprawdę analizujesz zmiany, np. rotację zarządu przed dużym kontraktem.
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:
- Rób przerwy między zapytaniami. Przy wsadowym pobieraniu kilkuset spółek sekunda odstępu to rozsądny punkt startu.
- 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.
- Loguj datę i godzinę pobrania. Gdy kiedyś trzeba będzie wykazać, na jakiej podstawie zawarto umowę, ta informacja jest bezcenna.
- Ustaw timeout i ponawianie. API publiczne bywa wolniejsze w godzinach szczytu. Skrypt, który wisi bez końca, zablokuje cały import.
- 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ł:
- nadpisuje rejestr: nazwa, forma prawna, adres siedziby, NIP, REGON, KRS, PKD, zarząd, sposób reprezentacji, informacja o likwidacji lub upadłości;
- zostaje w rękach zespołu: opiekun, etap rozmów, notatki, osoby kontaktowe, warunki handlowe.
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ą:
- status VAT i rachunki bankowe sprawdzisz w wykazie podatników VAT, a płatność na rachunek spoza listy może mieć konsekwencje podatkowe;
- postępowania upadłościowe i restrukturyzacyjne szybciej i pełniej zobaczysz w Krajowym Rejestrze Zadłużonych, krok po kroku opisujemy to w poradniku jak sprawdzić upadłość firmy;
- treść sprawozdań finansowych jest w osobnym repozytorium dokumentów finansowych, API KRS pokazuje tylko wzmianki o ich złożeniu;
- pozwolenia na budowę i realizowane inwestycje są w rejestrze GUNB;
- powiązania między spółkami musisz złożyć sam, zestawiając wspólników i członków zarządu z wielu odpisów.
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

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
- Ministerstwo Sprawiedliwości: uruchomienie otwartego API KRS
- Portal Rejestrów Sądowych: otwarte API KRS
- dane.gov.pl: Standard API dla danych publicznych
- DreamITeam: automatyzacja CRM i pobieranie danych z KRS
- BusinessWeb: integracja HubSpot CRM z danymi KRS
- Spectage: integracja HubSpot z GUS, REGON i eKRS