KRS API: dane polskich spółek po KRS, NIP i REGON

Jedno zapytanie REST zwraca profil spółki z Krajowego Rejestru Sądowego w tym samym schemacie co dane z 28 innych krajów. Szukasz po numerze KRS, NIP, REGON albo po nazwie.

Oficjalne API KRS a Prometiam

Ministerstwo Sprawiedliwości udostępnia bezpłatne Otwarte API KRS. Przyjmuje ono numer KRS i zwraca odpis w układzie rejestru. Jeśli wystarczy ci odpis jednej spółki o znanym numerze KRS, to jest uczciwie najtańsze rozwiązanie i nie musisz szukać dalej.

Prometiam dodaje to, czego odpis z rejestru nie daje: wyszukiwanie po NIP, REGON i nazwie, jeden ustandaryzowany schemat odpowiedzi dla wszystkich krajów (zmieniasz tylko parametr country), monitoring z webhookami podpisanymi HMAC-SHA256 oraz zdarzenia zmian w rejestrze. Jeśli sprawdzasz tylko polskie spółki po numerze KRS, oficjalne API wystarczy. Jeśli twój system obsługuje też kontrahentów z Francji, Wielkiej Brytanii czy Hiszpanii, jeden format odpowiedzi oszczędza ci pisania osobnej integracji dla każdego rejestru.

Jak znaleźć spółkę po KRS, NIP lub REGON

Wyszukiwanie dla Polski przyjmuje numer KRS (company_number), nip, regon albo nazwę (name). Numery są walidowane: błędny NIP lub REGON dostaje od razu odpowiedź 400 validation_error, zamiast wyglądać jak spółka, której nie ma w rejestrze. Wyniki są w polu data.

# Po numerze KRS (ORLEN S.A.)
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/search?country=PL&company_number=0000028860' \
  -H 'Authorization: Bearer rk_live_...'

# Po NIP
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/search?country=PL&nip=7740001454' \
  -H 'Authorization: Bearer rk_live_...'

# Pełny profil po id z odpowiedzi
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/{id}' \
  -H 'Authorization: Bearer rk_live_...'
import os, requests

API = 'https://api.prometiam.com/functions/v1/risk-api'
HEAD = {'Authorization': f'Bearer {os.environ["PROMETIAM_API_KEY"]}'}

def krs_po_nip(nip: str):
    r = requests.get(f'{API}/companies/search',
                     params={'country': 'PL', 'nip': nip}, headers=HEAD)
    r.raise_for_status()
    wyniki = r.json()['data']
    return wyniki[0] if wyniki else None

firma = krs_po_nip('7740001454')
print(firma['company_name'], firma['status'])

Jak znaleźć numer KRS, mając tylko NIP? Właśnie tak: zapytanie po nip zwraca rekord z numerem KRS w company_number i w polu identifiers. Bez zakładania konta sprawdzisz to w wyszukiwarce KRS i w wyszukiwarce NIP.

Co dostajesz w odpowiedzi

PoleCo oznacza
company_nameNazwa spółki z KRS
company_number, identifiersNumer KRS oraz NIP i REGON
status, local_statusStatus standardowy i status własnymi słowami rejestru
legal_form, local_legal_formForma prawna: standardowa i taka, jak w rejestrze (sp. z o.o., S.A.)
founding_date, adres, kapitał zakładowyData rejestracji, siedziba i kapitał zakładowy
previous_namesPoprzednie nazwy (uzupełniane stopniowo)
vat_number, vat_number_sourceNumer PL + NIP, źródło rule: format jest poprawny, rejestracja niepotwierdzona

Limity i uwierzytelnianie

Każde zapytanie niesie nagłówek Authorization: Bearer rk_live_.... Limity zależą od planu: Starter 60, Professional 120, Scale 300 zapytań na minutę. Odpowiedź ma nagłówek X-Credits-Cost: wyszukanie spółki i pobranie profilu kosztują po jednym kredycie, błędy są bezpłatne. Zapytania zbiorcze (POST /companies/lookup) liczą każdą pozycję jak jedno zapytanie, a przekroczenie salda kończy się odmową z góry (429 batch_exceeds_quota).

Zakres dla Polski

  • Dane na poziomie spółki: bez członków zarządu, bez CRBR i bez KRZ. Polska nie należy do dwunastu rynków z komunikatami o niewypłacalności; likwidację i upadłość widać w polu status.
  • Jednoosobowe działalności z CEIDG nie są w KRS i nie są zwracane.
  • Zdarzenia zmian w rejestrze (nazwa, status, forma prawna, siedziba) oraz monitoring są dostępne od 14 października 2026 r.; wcześniejszych nie ma. Prometiam nie obsługuje dziennika urzędowego (MSiG).
  • Poprzednie nazwy pochodzą z pełnego wyciągu KRS i są uzupełniane w kolejnych tygodniach od 14 października 2026 r., więc wiele spółek nie ma ich jeszcze.
  • Sprawozdania finansowe (GET /companies/{id}/financials, plan Scale) tylko dla spółek giełdowych, z raportów ESEF; często z opóźnieniem ponad roku, głównie rok obrotowy 2023. Dla pozostałych spółek odpowiedź ma availability: listed_companies_only. Dokumenty z repozytorium RDF nie są zwracane.

Monitoring zmian

POST /monitor z {"company_id": ..., "country": "PL"} obserwuje spółkę. Alerty obejmują zmianę statusu, rozwiązanie, trafienie na liście sankcyjnej (beta) i zdarzenia zmian w rejestrze. Webhooki wymagają planu Professional (29,99 €, 10 000 kredytów, 250 obserwowanych spółek); Scale (99,99 €, 50 000 kredytów) obserwuje do 2 500. Więcej w przewodniku o weryfikacji kontrahenta.

Dane o Polsce pochodzą z Krajowego Rejestru Sądowego. Prometiam standaryzuje je i nie jest urzędowym odpisem z rejestru; do celów prawnych korzystaj z odpisu oficjalnego.

Powiązane strony

Rozpocznij 14-dniowy darmowy okres próbny · Dokumentacja API

Okres próbny trwa 14 dni i obejmuje 500 kredytów. Wymagana jest karta, w trakcie okresu próbnego nic nie jest pobierane; potem obowiązuje plan Starter (9,99 € miesięcznie), jeśli go nie anulujesz.

Frequently asked questions

Czy API KRS jest płatne?
Oficjalne Otwarte API KRS Ministerstwa Sprawiedliwości jest bezpłatne i przyjmuje numer KRS. Prometiam jest płatne od planu Starter (9,99 € miesięcznie) i dodaje wyszukiwanie po NIP, REGON i nazwie, jeden schemat dla wielu krajów oraz monitoring. Okres próbny trwa 14 dni i obejmuje 500 kredytów.
Jak znaleźć numer KRS po NIP?
Wywołaj GET /companies/search?country=PL&nip=.... Odpowiedź zawiera numer KRS w company_number i w identifiers, razem z REGON, statusem i formą prawną.
Jaki jest limit zapytań?
Starter 60, Professional 120, Scale 300 zapytań na minutę. Wyszukanie spółki i pobranie profilu kosztują po jednym kredycie, a plan obejmuje 1 000, 10 000 lub 50 000 kredytów miesięcznie. Błędy są bezpłatne.
Czy dostanę sprawozdania finansowe z KRS?
Tylko dla spółek giełdowych, z raportów ESEF, w planie Scale. Dla pozostałych spółek odpowiedź informuje, że sprawozdań nie ma (listed_companies_only).
Czy API zwraca członków zarządu?
Nie. Dla Polski dane są na poziomie spółki, bez członków zarządu, CRBR i KRZ.