Part of a Data Solution
- Explore →
Postal Codes Solution
Every worldwide postal-code dataset in one bundle — the ultimate global reference for precise postal codes.
Premium
You're viewing a free sample
Get the complete dataset — all rows and files — delivered instantly after checkout, with lifetime access to the latest version.
- Secure checkout via Stripe
- Instant download after payment
- Lifetime access to the latest version
- Creative Commons Attribution 4.0 license
API Access
Access dataset files directly from scripts, code, or AI agents.
Browse dataset files
API Access
Access dataset files directly from scripts, code, or AI agents.
Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.
Start with these files — they give you everything you need to understand and access the dataset.
- 1. Fetch datapackage.yaml to inspect schema and resources
- 2. Download data resources listed in datapackage.yaml
- 3. Read README.md for full context
Data Files
postal-codes-pl-sample
| Field | Type | Description | Constraints | Title |
|---|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 country code — always PL | { "pattern": "^PL$", "required": true } | Country Code |
| postal_code | string | Polish postal code (kod pocztowy) in NN-NNN form | { "pattern": "^\\d{2}-\\d{3}$", "required": true } | Postal Code |
| place_name | string | Locality name as supplied by the source | Place Name | |
| admin_name1 | string | Voivodeship name (wojewodztwo), as spelled by the source — see README | Administrative Name 1 | |
| admin_code1 | string | Official ISO 3166-2:PL voivodeship code, PL- prefix stripped — derived from the TERYT voivodeship number, not from the source's own sequential region field | { "pattern": "^[A-Z]{2}$" } | Administrative Code 1 |
| admin_name2 | string | County name (powiat) | Administrative Name 2 | |
| admin_code2 | string | Official GUS TERYT powiat code, 4 digits — leading zeros significant | { "pattern": "^\\d{4}$" } | Administrative Code 2 |
| admin_name3 | string | Municipality name (gmina) | Administrative Name 3 | |
| admin_code3 | string | Official GUS TERYT gmina code, 6 digits — leading zeros significant; always extends admin_code2 | { "pattern": "^\\d{6}$" } | Administrative Code 3 |
| latitude | number | Latitude, decimal degrees (WGS84) | Latitude | |
| longitude | number | Longitude, decimal degrees (WGS84) | Longitude | |
| accuracy | string | GeoNames accuracy of latitude/longitude. GeoNames documents 1=estimated, 4=geonameid, 6=centroid of addresses or shape; other values (e.g. 3) occur upstream without documentation. Empty where GeoNames gives none. | Accuracy | |
| alternative_city_name | string | Alternative or historic name for the place where known (often the historical German form), from the GeoNames gazetteer dump; empty where it only repeats place_name | Alternative City Name |
Download
Download sample CSVAbout
- Last updated
- 6 October 2026
- Total rows
- 100
- Format
- CSV
- File size
- 10.8 kB
About this dataset
Postal Codes Dataset for Poland (PL)
This dataset lists Polish postal codes (kody pocztowe) with place names, voivodeships, powiats and gminas, and WGS84 coordinates.
Column definitions, row count, size and last-updated date are in datapackage.yaml.
Official administrative codes: admin_code2 and admin_code3 are official Polish
GUS TERYT powiat (4-digit) and gmina (6-digit) codes, and admin_code1 is the
ISO 3166-2:PL voivodeship code.
Data Sources
- Postal codes, place names, administrative names, TERYT powiat and gmina codes, and coordinates: © GeoNames, postal code export for Poland, CC BY 4.0. GeoNames redistributes the official GUS TERYT codes.
- Alternative city names: the GeoNames gazetteer for Poland, same licence.
Changes made to the source data: admin_code1 derived as the ISO 3166-2:PL code (PL- prefix stripped)
from the TERYT voivodeship number rather than taken from GeoNames' own sequential region numbering;
alternative_city_name added from the gazetteer (aliases that merely repeat the place name dropped).
Not endorsed by, or affiliated with, GeoNames.
Known limitations
- A postal code is not one-to-one with a place. The primary key is (
postal_code,place_name,admin_code3): the gmina code is part of the key because a place name can legitimately appear under one postal code in two different gminas. - Poland's official postal code register is a commercial product that does not permit redistribution, so this dataset cannot be measured against an authoritative reference. It contains the full content of the open source it is built from, not a verified-complete register of every Polish postal code.
- Voivodeship names are kept exactly as the source spells them (English exonyms such as "Lower Silesia" and "Lesser Poland" rather than the Polish "dolnoslaskie" and "malopolskie"); only the code was corrected.
Usage
The dataset files are available in CSV format and can be accessed and downloaded using
the links provided in datapackage.yaml. Read admin_code2 and admin_code3 as text, never as numbers:
the TERYT codes have significant leading zeros (0201 is a valid powiat code, 201 is not).
For other inquiries, contact datahub@datopian.com