API GUS (REGON) po NIP
REST/JSON bez klucza
Dane podmiotu z rejestru REGON (GUS BIR) po numerze NIP — jednym zapytaniem GET, w odpowiedzi czysty JSON. Bez klucza API, bez rejestracji i bez dziennego limitu zapytań. To warstwa nad usługą GUS BIR (SOAP), która zdejmuje z Ciebie logowanie, sesje i XML.
Jeden GET, jeden JSON
Endpoint jest publiczny, metoda GET, a parametr ?format=json zwraca dane maszynowo (bez niego dostajesz stronę HTML dla człowieka):
curl "https://skanfirmy.pl/regon/5260250995?format=json"
W odpowiedzi dostajesz oficjalną nazwę, numer REGON, adres siedziby i formę prawną (u osób fizycznych i spółek cywilnych od 27.09.2026 tylko nazwę, formę, miejscowość i status działalności — szczegóły niżej) — prosto z rejestru REGON prowadzonego przez GUS:
{
"nip": "5260250995",
"source": "regon-gus",
"regon": "012100784",
"dane": {
"regon": "012100784",
"nip": "5260250995",
"nazwa": "ORANGE POLSKA SPÓŁKA AKCYJNA",
"wojewodztwo": "MAZOWIECKIE",
"powiat": "Warszawa",
"gmina": "Ochota",
"miejscowosc": "Warszawa",
"kodPocztowy": "02-326",
"ulica": "Aleje Jerozolimskie",
"nrNieruchomosci": "160",
"typ": "P",
"dataZakonczenia": ""
},
"privacy": null,
"checkedAt": "2026-08-23"
}
Bez klucza API, bez rejestracji, bez limitu dziennego
Endpoint działa od razu — nie musisz zakładać konta, generować klucza API ani pilnować dziennego limitu zapytań. Jedyne ograniczenie chroni serwis przed nadużyciami: najwyżej 20 zapytań na 10 sekund z jednego adresu IP (po przekroczeniu kod 429 przez 10 sekund; od 25.09.2026). To celowa różnica względem komercyjnych nakładek na GUS: chcemy, żeby integrację dało się wpiąć w minutę, także z poziomu agenta AI. Serwis jest bezpłatny i służy do pojedynczych zapytań inicjowanych przez użytkowników lub ich agentów, nie do masowego pobierania danych.
Zamiast GUS BIR SOAP
Oficjalna usługa GUS to BIR 1.1 — SOAP z sekwencją Zaloguj → DaneSzukajPodmioty → Wyloguj, identyfikatorem sesji w nagłówku, kopertami XML i odpowiedziami w formacie MTOM. Działa, ale integracja potrafi zająć popołudnie. Nasz endpoint robi to wszystko po stronie serwera i zwraca gotowy JSON — Ty wysyłasz jeden GET.
Co zwraca /regon/{nip}:
| Pole | Znaczenie |
|---|---|
regon | Numer REGON podmiotu (poza osobami fizycznymi i spółkami cywilnymi) |
nazwa | Oficjalna nazwa z rejestru REGON |
wojewodztwo, powiat, gmina, miejscowosc, kodPocztowy, ulica, nrNieruchomosci, nrLokalu | Adres siedziby (dla osób prawnych). Dla osób fizycznych (typ F, LF) i spółek cywilnych od 27.09.2026 tylko miejscowosc |
typ | Literał GUS: P — osoba prawna, F — osoba fizyczna (m.in. JDG), LP/LF — jednostki lokalne |
dataZakonczenia | Data zakończenia działalności (pusta, jeśli podmiot działa) |
forma, status | Tylko osoby fizyczne i spółki cywilne (od 27.09.2026, zamiast REGON, adresu i dat): forma (osoba fizyczna, jednostka lokalna osoby fizycznej, spółka cywilna) i status działalności (active albo ended) |
privacy | Od 26.09.2026, obok pola dane: dla typu F i LF oraz spółek cywilnych informacja, co pominęliśmy (hidden), dlaczego (reason) i gdzie jest pełny wpis (officialSource — wyszukiwarka REGON GUS); dla pozostałych null |
Dla jednoosobowych działalności (osoby fizyczne, typ F i LF) i spółek cywilnych (GUS zapisuje je jako typ P, więc rozpoznajemy je po nazwie: „S.C.” albo „spółka cywilna” jako ostatnie oznaczenie formy) od 27.09.2026 zwracamy w dane tylko NIP, nazwę, typ, formę (forma) i miejscowość oraz status działalności (status: active albo ended) — bez numeru REGON, adresu, gminy, powiatu, województwa i dat (RODO, zasada minimalizacji danych; od 26.09.2026 bez ulicy, numeru i kodu pocztowego). Numer REGON i pełny wpis publikuje GUS w wyszukiwarce REGON. Takie odpowiedzi mają nagłówki X-Robots-Tag: noindex i Cache-Control: private, max-age=3600. Tak samo działa narzędzie MCP sprawdz_regon, a /firma-po-regon/{regon} dla REGON-u osoby fizycznej nie zwraca żadnych danych (to byłoby ustalanie tożsamości po samym numerze) — tylko odesłanie do wyszukiwarki GUS.
W Pythonie
Z biblioteką requests całość to kilka linii:
import requests
def dane_regon(nip: str) -> dict:
r = requests.get(f"https://skanfirmy.pl/regon/{nip}?format=json", timeout=10)
r.raise_for_status()
return r.json()["dane"]
d = dane_regon("5260250995")
print(d["nazwa"], "· REGON", d["regon"])
# ORANGE POLSKA SPÓŁKA AKCYJNA · REGON 012100784
Podmiot spoza rejestru zwraca 404, a NIP z błędną sumą kontrolną — 400. Warto obsłużyć oba przypadki, zamiast zakładać, że każdy NIP ma wpis.
W JavaScripcie
const r = await fetch("https://skanfirmy.pl/regon/5260250995?format=json");
if (r.ok) {
const { dane } = await r.json();
console.log(dane.nazwa, dane.regon);
}
W PHP
$ch = curl_init("https://skanfirmy.pl/regon/5260250995?format=json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$dane = json_decode(curl_exec($ch), true)["dane"];
echo $dane["nazwa"] . " · REGON " . $dane["regon"];
Więcej niż REGON — jednym NIP-em
Jeśli oprócz danych GUS potrzebujesz statusu VAT i wpisu w KRS, użyj /nip/{nip}?format=json — łączy Wykaz VAT (Biała Lista, Ministerstwo Finansów), KRS i numer REGON (poza osobami fizycznymi) w jednej odpowiedzi. Pozostałe endpointy (wszystkie GET → JSON, bez klucza):
/regon/{nip}— dane z rejestru REGON (GUS)/nip/{nip}— status VAT + Biała Lista + KRS + REGON (poza osobami fizycznymi)/nips/{lista}— wiele NIP-ów naraz (rozdzielonych przecinkami)/vies/{kraj}/{numer}— walidacja unijnego numeru VAT (VIES, Komisja Europejska)
Dla agentów AI pod adresem https://skanfirmy.pl/mcp stoi serwer Model Context Protocol (MCP) z narzędziem sprawdz_regon (i kilkoma innymi do NIP, KRS i VIES) — również bez klucza. Mapa endpointów dla modeli jest w llms.txt, a pełna specyfikacja maszynowa w OpenAPI 3.1. Weryfikację po NIP w interfejsie zrobisz w narzędziu REGON (GUS).
Publiczny endpoint a typowe płatne API GUS
Większość komercyjnych nakładek REST na rejestr GUS działa w modelu freemium — konto, klucz API i dzienny limit zapytań w darmowym progu. Ten endpoint jest publiczny i bezpłatny. Różnice w skrócie:
| Typowe płatne API GUS | skanfirmy.pl /regon | |
|---|---|---|
| Klucz API | wymagany | niepotrzebny |
| Rejestracja / konto | tak | nie |
| Limit w darmowym progu | zwykle jest | 20 zapytań na 10 s z jednego IP, bez limitu dziennego |
| Format odpowiedzi | REST/JSON | REST/JSON |
| Serwer MCP dla agentów AI | zwykle brak | tak |
| Zakres | zwykle same dane GUS/REGON | REGON + Biała Lista VAT, KRS, VIES (osobne endpointy) |
| Model | freemium / abonament | bezpłatnie |
To nie jest oficjalne API GUS — dane pochodzą z tego samego źródła (rejestr REGON, usługa BIR), tylko udostępnione jednym zapytaniem GET.
Skąd pochodzą dane i czym to nie jest
Dane pochodzą wprost z rejestru REGON prowadzonego przez Główny Urząd Statystyczny (usługa BIR). To niezależne narzędzie — nie jest oficjalnym API GUS ani z nim powiązane; jedynie udostępnia jego dane w wygodniejszej formie. Zakres i aktualność danych są takie, jak w rejestrze GUS.
Najczęstsze pytania
Czy potrzebny jest klucz API albo rejestracja?
Nie. Endpoint /regon/{nip} jest publiczny — zwraca JSON po dodaniu ?format=json, bez klucza API, bez zakładania konta i bez dziennego limitu zapytań.
Czym to się różni od usługi GUS BIR (SOAP)?
Oficjalna usługa GUS BIR 1.1 to SOAP z logowaniem, sesją, kopertami XML i odpowiedziami MTOM. Nasz endpoint wykonuje tę sekwencję po stronie serwera i zwraca gotowy JSON, więc po Twojej stronie zostaje jedno zapytanie GET.
Jak pobrać dane firmy z GUS po NIP w formacie JSON?
Wyślij GET na https://skanfirmy.pl/regon/{NIP}?format=json. W odpowiedzi dostaniesz nazwę, numer REGON, adres siedziby i formę prawną podmiotu z rejestru REGON; u osób fizycznych i spółek cywilnych od 27.09.2026 tylko nazwę, formę, miejscowość i status działalności (RODO).
Czy działa dla jednoosobowej działalności (JDG)?
Tak, w ograniczonym zakresie. Dla osób fizycznych prowadzących działalność (typ F i LF) i spółek cywilnych zwracamy od 27.09.2026 tylko NIP, nazwę, formę, miejscowość i status działalności (aktywna albo zakończona) — bez numeru REGON, adresu i dat (RODO). Numer REGON takiej firmy znajdziesz w wyszukiwarce REGON GUS.
Czy korzystanie jest płatne?
Nie. Endpoint jest bezpłatny i bez rejestracji. Dane pochodzą wprost z rejestru REGON prowadzonego przez Główny Urząd Statystyczny.