Dla programistów · REST i MCP

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ą — 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": ""
  },
  "checkedAt": "2026-08-23"
}

Bez klucza API, bez rejestracji, bez limitu

Endpoint działa od razu — nie musisz zakładać konta, generować klucza API ani pilnować dziennego limitu zapytań. 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 utrzymywany bezpłatnie; przy dużym, automatycznym ruchu prosimy tylko o rozsądek (pojedyncze zapytania inicjowane przez użytkowników, nie masowy scraping).

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}:

PoleZnaczenie
regonNumer REGON podmiotu
nazwaOficjalna nazwa z rejestru REGON
wojewodztwo, powiat, gmina, miejscowosc, kodPocztowy, ulica, nrNieruchomosci, nrLokaluAdres siedziby (dla osób prawnych)
typLiterał GUS: P — osoba prawna, F — osoba fizyczna (m.in. JDG), LP/LF — jednostki lokalne
dataZakonczeniaData zakończenia działalności (pusta, jeśli podmiot działa)

Dla jednoosobowych działalności (osoba fizyczna, typ: "F") rejestr REGON w wyszukiwaniu po NIP zwraca nazwę, REGON i typ — pola adresowe pozostają puste (to ograniczenie po stronie GUS, nie naszej warstwy).

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 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
  • /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. 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 GUSskanfirmy.pl /regon
Klucz APIwymaganyniepotrzebny
Rejestracja / kontotaknie
Limit w darmowym proguzwykle jestbrak twardego limitu (prosimy o rozsądek)
Format odpowiedziREST/JSONREST/JSON
Serwer MCP dla agentów AIzwykle braktak
Zakreszwykle same dane GUS/REGONREGON + Biała Lista VAT, KRS, VIES (osobne endpointy)
Modelfreemium / abonamentbezpł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 niepowią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.

Czy działa dla jednoosobowej działalności (JDG)?

Tak. Dla osób fizycznych prowadzących działalność (typ: "F") rejestr REGON zwraca nazwę, REGON i typ podmiotu. Pola adresowe pozostają puste — to ograniczenie danych udostępnianych przez GUS w wyszukiwaniu, nie naszej warstwy.

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.