teryt24.pl

Polskie dane adresowe w jednym REST API

Miasta, miejscowości, ulice, kody pocztowe i walidacja adresów — prosto z rejestrów GUS TERYT, ULIC i PRG. Jedno zapytanie HTTP, odpowiedź w JSON, gotowe do podpięcia w formularzach i mapach.

GUS TERYT · SIMC TERC ULIC PRG PNA
1026miast w indeksie (SIMC)
54 472miejscowości (SIMC)
≈ 310 tys.ulic (ULIC)
16województw (TERC)

Co znajduje się w API

Wszystkie endpointy zwracają JSON, obsługują CORS i są objęte wspólną dokumentacją OpenAPI.

Autouzupełnianie miast

Dopasowywanie z tolerancją literówek (bigram Dice), koordynaty WGS84, tryby autocomplete / resolve / hybrid.

/v1/cities?q=warsz&limit=5

Wszystkie miejscowości

Każda samodzielna miejscowość z SIMC — wsie, kolonie, osady — z filtrem rodzaju (RM) i trybem geograficznym.

/v1/localities?q=kolonia&lat=52.2&lon=21.0

Hierarchia administracyjna

Województwa → powiaty → gminy (TERC) — idealne do kaskadowych selectów adresowych.

/v1/regions/14/counties

Ulice w miejscowości

Szukaj ulicy w obrębie miejscowości (SYM) w rejestrze ULIC — ponad 310 tys. pozycji.

/v1/streets?city=0983988&q=marsza

Kody pocztowe

Kod pocztowy → miejscowość (PNA, z koordynatami) albo odwrotnie: lista kodów dla miejscowości.

/v1/postal-codes?q=00-002

Walidacja adresów

Weryfikacja numeru domu pod kątem rejestru PRG — symbol miejscowości + numer (opcjonalnie ulica).

/v1/geocode?sym=0988796&number=16

Odwrócone geokodowanie

Najbliższe miejscowości dla współrzędnych, z odległością w kilometrach — dla map i GPS.

/v1/reverse-geocode?lat=52.23&lon=21.01

Cache i ETag w standardzie

Udane odpowiedzi GET są cache'owane (Cache-Control: 1 dzień) i wersjonowane ETagiem — 304 oszczędza transfer.

ETag + If-None-Match

Quick start

Bez kluczy i rejestracji — pierwsze zapytanie w 10 sekund.

curl "https://www.teryt24.pl/v1/cities?q=warsz&limit=5"

curl "https://www.teryt24.pl/v1/geocode?sym=0988796&streetName=Świętokrzyska&number=16"

curl "https://www.teryt24.pl/v1/reverse-geocode?lat=52.2297&lon=21.0122&limit=3"

Pełna lista parametrów i schematy odpowiedzi w dokumentacji oraz maszynowcu openapi.json. Limity: 60 zapytań/min na IP, po przekroczeniu HTTP 429 z nagłówkiem Retry-After.

Ceny

W okresie beta API jest darmowe. Planowane są klucze API i plany rozliczeniowe dla wyższych limitów — obecne limity (60/min/IP) pozostają bez zmian do odwołania. Śledź dokumentację.