Cenogram

Kod TERYT województwa, powiatu i gminy - przez API, w JSON

Pobierz kod TERYT województwa, powiatu albo gminy i zejdź po drzewie podziału administracyjnego aż do obrębów. Odpowiedź w JSON, po zwykłym HTTP GET, bez konta i bez klucza API.

Zobacz dokumentację

Klucz przychodzi mailem, bez karty. Autoryzacja to jeden nagłówek Authorization: Bearer. Poniższe wywołanie możesz uruchomić od razu, bez rejestracji.

GET
Przykładowa odpowiedź - pobrane 2026-09-17. Kliknij „Uruchom", żeby odpytać na żywo.
[
  {
    "code": "146502",
    "name": "Bemowo",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146503",
    "name": "Białołęka",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146504",
    "name": "Bielany",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146505",
    "name": "Mokotów",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146506",
    "name": "Ochota",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146508",
    "name": "Praga-Północ",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146507",
    "name": "Praga-Południe",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146509",
    "name": "Rembertów",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146510",
    "name": "Śródmieście",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146511",
    "name": "Targówek",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146512",
    "name": "Ursus",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146513",
    "name": "Ursynów",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146501",
    "name": "Warszawa",
    "typeName": "gmina miejska",
    "level": "municipality"
  },
  {
    "code": "146514",
    "name": "Wawer",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146515",
    "name": "Wesoła",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146516",
    "name": "Wilanów",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146517",
    "name": "Włochy",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146518",
    "name": "Wola",
    "typeName": "dzielnica",
    "level": "municipality"
  },
  {
    "code": "146519",
    "name": "Żoliborz",
    "typeName": "dzielnica",
    "level": "municipality"
  }
]
Poziomy
cztery: województwo, powiat, gmina, obręb
Zasięg
cały kraj, 16 województw
Dostęp
bez klucza API, poza bramką danych
Odpowiedź
JSON, 0 tokenów za wywołanie

Podaj kod nadrzędny, a dostaniesz listę jednostek o jeden poziom niżej: kod województwa zwraca powiaty, kod powiatu gminy, kod gminy obręby. Każda pozycja niesie kod, nazwę, rodzaj jednostki i poziom. To jest podział administracyjny do zejścia po kodach, a nie pełny rejestr TERYT - nie ma tu miejscowości, ulic ani historii zmian kodów.

Pola odpowiedzi

Tabela wyjaśnia każde pole z przykładowej odpowiedzi wyżej.

code string kod jednostki: dwie cyfry dla województwa, cztery dla powiatu, sześć dla gminy. Na tych poziomach jest to kod TERYT, a obręb ma tu identyfikator z ewidencji gruntów i budynków, nie kod TERYT. Tego kodu użyjesz jako parent w kolejnym zapytaniu, żeby zejść poziom niżej
name string nazwa jednostki. Jeśli obręb nie ma nazwy w zbiorze, pole zawiera jego identyfikator, więc nigdy nie jest puste
typeName string | null rodzaj jednostki na poziomie gminy: gmina miejska, gmina wiejska, gmina miejsko-wiejska, dzielnica w Warszawie albo delegatura w Krakowie i Łodzi. Puste (null) dla województw, powiatów i obrębów
level string poziom podziału: voivodeship, county, municipality albo precinct dla obrębu. Mówi, na którym piętrze drzewa jesteś, niezależnie od długości kodu

Jak czytać odpowiedź

Miejsca, w których tę odpowiedź łatwo przeczytać źle.

Obręb to czwarty poziom, ale spoza TERYT

Kod województwa, powiatu i gminy pochodzi z rejestru TERYT. Czwarty poziom, obręby ewidencyjne, dziedziczy sześć pierwszych cyfr z kodu gminy, ale sam z TERYT nie pochodzi: rejestr obrębów prowadzi starosta w uzgodnieniu z Głównym Geodetą Kraju, a rozporządzenie o TERYT wymienia tylko województwa, powiaty i gminy. Zejście na obręby więc działa, ale nie nazywaj ich kodem TERYT.

Warszawa stoi w wyniku obok swoich osiemnastu dzielnic

Zapytanie parent=1465 zwraca dziewiętnaście pozycji: osiemnaście dzielnic z typeName równym dzielnica oraz 146501 Warszawa z typeName równym gmina miejska. To nie jest duplikat. Warszawa jest gminą miejską na prawach powiatu, a jej dzielnice to osobne jednostki pomocnicze z własnymi kodami. Zależnie od tego, czego szukasz, pytasz o kod miasta albo o kod dzielnicy - to różne jednostki, nie dwa zapisy tej samej.

Ta sama nazwa bywa dwiema różnymi gminami

W powiecie wałeckim (parent=3217) nazwa Wałcz pojawia się dwa razy: 321701 z typeName równym gmina miejska i 321705 z typeName równym gmina wiejska. To dwie odrębne gminy o tej samej nazwie - miasto Wałcz i otaczająca je gmina wiejska - z różnymi kodami. Rodzaju jednostki nie odczytasz z cyfr sześciocyfrowego kodu; niesie go pole typeName. Rozstrzyga więc typeName razem z pełnym kodem, nie sama nazwa.

Parametr parent i filtr teryt przyjmują różne formaty kodu

Parametr parent przyjmuje kod z dwóch, czterech albo sześciu cyfr i tym schodzi po hierarchii, a inny format zwraca HTTP 400. Filtr transakcji teryt przyjmuje dodatkowo kod gminy z rodzajem (321705_2) oraz identyfikator obrębu (321705_2.0013). Kody pięcio- i siedmiocyfrowe odrzucają oba endpointy. Przy HTTP 400 sprawdź liczbę cyfr i parametr, do którego trafił kod.

Gmina bez wydzielonych obrębów wraca pustą listą

Kod gminy zwraca jej obręby, ale gmina z jednym obrębem albo bez wydzielonych obrębów oddaje pustą tablicę [], a nie listę jednoelementową. Pusta odpowiedź nie odróżnia się wtedy od gminy, której obrębów po prostu nie mamy. To poprawny wynik, a nie błąd: zapytanie zadziałało, tylko nie ma czego wyliczać poziom niżej.

Kod gminy jest kluczem do transakcji i działek

Kod, który tu wyciągniesz, zadziała potem w innych endpointach. Wyszukiwarka transakcji przyjmuje go w filtrze teryt: teryt=321705_2 zawęża wynik do jednej gminy, a teryt=321705_2.0013 do jednego obrębu, bo im dłuższy kod, tym węższy zakres. Te trasy wymagają klucza API, więc tutaj pokazujemy sam kształt zapytania. Identyfikację działek po kodzie opisuje osobna strona, /dane/uldk.

Cennik

Jedno wywołanie tego endpointu nie zużywa tokenów. Endpoint nie wymaga klucza API i nie zużywa tokenów, także gdy zwróci błąd. Limit to 20 zapytań na minutę z jednego adresu IP. Wartość parent w formacie innym niż dwie, cztery albo sześć cyfr zwraca HTTP 400 i też nic nie kosztuje.

Free

Na próbę

0 zł

400 tokenów na start, potem 50 tygodniowo

to wywołanie nie zużywa tokenów

  • -Wszystkie endpointy
  • -Serwer MCP
  • -Bez karty
Najpopularniejszy

Standard

Dla rzeczoznawców

49 zł netto/miesiąc

60,27 zł brutto

2 000 tokenów / mies.

to wywołanie nie zużywa tokenów

  • -Wszystko z Free
  • -2 000 tokenów API + MCP
  • -Pełny dostęp do wyszukiwarki

Professional

Dla programistów i mniejszych zespołów

99 zł netto/miesiąc

121,77 zł brutto

5 000 tokenów / mies.

to wywołanie nie zużywa tokenów

  • -Wszystko ze Standard
  • -5 000 tokenów API + MCP
  • -Pełny dostęp do wyszukiwarki

Advanced

Dla firm wycenowych i deweloperów

299 zł netto/miesiąc

367,77 zł brutto

25 000 tokenów / mies.

to wywołanie nie zużywa tokenów

  • -Wszystko z Professional
  • -Redystrybucja: dane w Twoim produkcie lub usłudze (z atrybucją Cenogram)
  • -Wsparcie e-mail: odpowiedź w 24 h

Business

Dla proptech i większych zespołów

1499 zł netto/miesiąc

1843,77 zł brutto

200 000 tokenów / mies.

to wywołanie nie zużywa tokenów

  • -Wszystko z Advanced
  • -White-label: atrybucja nie jest wymagana
  • -Wsparcie e-mail: odpowiedź w 8 h

Przejście na wyższy plan zastępuje obecną subskrypcję, a rozliczenie rusza od nowa

Ceny netto, +23% VAT · Faktura VAT na żądanie · Bez umów · Free bez karty
Visa Mastercard BLIK Apple Pay Google Pay

Częste pytania

Nie, to API Cenogramu. Oficjalne API TERYT prowadzi GUS: działa po SOAP, zwraca XML, a konto zakłada się mailem po weryfikacji - za to jest bezpłatne i ma pełny rejestr. My oddajemy podział administracyjny do poziomu gminy w JSON, po HTTP GET i bez klucza, żeby kodem od razu zapytać o transakcje i dane działek. Pełny rejestr TERYT prowadzi GUS w swoim oficjalnym API.

To urzędowy kod jednostki podziału terytorialnego kraju: dwie cyfry dla województwa, cztery dla powiatu, sześć dla gminy. Kolejne cyfry doklejają się od lewej, więc kod gminy zawiera w sobie kod swojego powiatu i województwa. Dzięki temu jeden kod jednoznacznie wskazuje jednostkę i jej miejsce w hierarchii.

Zejdź po drzewie: GET /api/v1/locations bez parametru zwraca województwa, a każdy kod podany jako parent schodzi poziom niżej, aż do gminy i obrębów. W Claude robi to narzędzie list_locations. Oficjalną wyszukiwarkę kodów prowadzi też GUS w serwisie eTERYT.

Dziś API nie ma endpointu, który z nazwy zwróci kod. Kod znajdziesz, schodząc po drzewie od województwa w dół. Trasa /api/districts przyjmuje nazwę, ale służy do jej potwierdzenia i kodu nie zwraca.

Miejscowości (SIMC), ulic (ULIC), historii zmian kodów, dat obowiązywania i geometrii jednostek. Trzymamy podział administracyjny do gminy oraz obręby dziedziczące kod gminy - tyle, ile trzeba, żeby zejść po kodzie i użyć go jako klucza. Po pełny rejestr z miejscowościami i ulicami sięgnij do oficjalnego API TERYT prowadzonego przez GUS.

W Claude użyj narzędzia list_locations: podaj kod województwa, żeby pobrać powiaty, kod powiatu, żeby pobrać gminy, albo kod gminy, żeby pobrać obręby. Wyszukiwanie po nazwie w tym samym narzędziu jest przestarzałe i nie warto go używać w nowych integracjach. Jak podłączyć serwer MCP.

TERYT, czyli Krajowy Rejestr Urzędowy Podziału Terytorialnego Kraju, prowadzi Główny Urząd Statystyczny i udostępnia go publicznie. Kody i nazwy jednostek podajemy tak, jak figurują w rejestrze. Obrębów ewidencyjnych rejestr TERYT nie obejmuje - ich kody i nazwy pochodzą z ewidencji gruntów i budynków, którą prowadzi starosta. Oficjalny rejestr i jego pełny zakres: TERYT GUS. Warunki korzystania z naszego API: regulamin.

Zacznij za darmo

400 tokenów na start, potem 50 tygodniowo. Klucz API w 30 sekund, bez karty.