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 — postal layer (GeoNames) 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-id-sample
| Field | Type | Description | Constraints | Title |
|---|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 country code — always ID | { "pattern": "^ID$", "required": true } | Country Code |
| postal_code | string | Five-digit Indonesian kodepos. Leading zeros are significant: read via this descriptor or pass dtype=str. | { "pattern": "^\\d{5}$", "required": true } | Postal Code |
| place_name | string | Desa (village) or Kelurahan (urban ward) — the tier kodepos are assigned at. Where the administrative columns are empty this is the postal source's own place name, unverified against the official register. | { "required": true } | Place Name |
| admin_name1 | string | Provinsi (province). Empty on rows the postal source could not be tied to an official village — empty means unknown, and is never filled with a placeholder. | Administrative Name 1 | |
| admin_code1 | string | ISO 3166-2:ID subdivision code, ID- prefix stripped | Administrative Code 1 | |
| admin_name2 | string | Kabupaten (regency) or Kota (city) | Administrative Name 2 | |
| admin_code2 | string | Kemendagri regency/city code (NN.NN) | { "pattern": "^\\d{2}\\.\\d{2}$" } | Administrative Code 2 |
| admin_name3 | string | Kecamatan (district) | Administrative Name 3 | |
| admin_code3 | string | Kemendagri district code (NN.NN.NN) | { "pattern": "^\\d{2}\\.\\d{2}\\.\\d{2}$" } | Administrative Code 3 |
| latitude | number | WGS84 latitude, decimal degrees, max 5 dp | Latitude | |
| longitude | number | WGS84 longitude, decimal degrees, max 5 dp | 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 | Pipe-separated source spellings of the village name that differ from the official Kemendagri spelling | Alternative City Name |
Download
Download sample CSVAbout
- Last updated
- 6 October 2026
- Total rows
- 100
- Format
- CSV
- File size
- 9.72 kB
About this dataset
Postal Codes Dataset for Indonesia (ID)
This dataset lists Indonesian kodepos across every province and every regency and city, with village-level place names, the full administrative hierarchy and WGS84 coordinates.
Column definitions, row count, size and last-updated date are in datapackage.yaml.
Four administrative tiers, none collapsed. Indonesia's hierarchy is Provinsi →
Kabupaten/Kota → Kecamatan → Desa/Kelurahan, and kodepos are assigned at the village
tier. This schema carries all four: place_name is the village or urban ward, with
district, regency and province in admin_name3 / admin_name2 / admin_name1.
Province codes are current. admin_code1 is the ISO 3166-2:ID code with the ID-
prefix stripped, on the present province structure, including the provinces
created in the 2022 Papua restructure: Papua Selatan (PS), Papua Tengah (PT), Papua
Pegunungan (PE) and Papua Barat Daya (PD). Widely-circulated Indonesian postal
extracts still carry the retired pre-2022 province coding, in which 91 and 94 denote
different provinces than they do today. Codes here are the current ones.
Data Sources
- Postal codes, place names and coordinates: © GeoNames postal code export for Indonesia, CC BY 4.0.
- Administrative hierarchy (province, regency/city and district names and codes): Republic of Indonesia, Ministry of Home Affairs, Kepmendagri No. 300.2.2-2430 Tahun 2025, Kode dan Data Wilayah Administrasi Pemerintahan, redistributed via cahyadsn/wilayah. Under UU No. 28 Tahun 2014 Pasal 42, Indonesian laws and regulations carry no copyright, so this layer is in the public domain.
Changes made to the source data: GeoNames' own administrative codes discarded and each place tied to a village in the Kepmendagri register by name; province codes given as ISO 3166-2:ID; names in the register title-cased; other source spellings of a village moved to the alternative city name; coordinates rounded to at most 5 decimal places.
Not endorsed by, or affiliated with, GeoNames or the Republic of Indonesia.
Known limitations
- A kodepos is not one-to-one with a village. Several villages routinely share one code, so a code legitimately appears on many rows. The primary key is (
postal_code,admin_code3,place_name), neverpostal_codealone. - Some rows carry the postal facts (code, place name, coordinate) with the administrative columns blank, because the source's place name could not be matched to a unique entry in the official register. Those cells are blank rather than guessed: a wrong region is worse than an absent one. No postal code is lost this way. Every row is all-or-nothing on the admin tiers; there are no half-filled hierarchies. Filter on a populated
admin_name1if you need fully-classified rows only. - Coordinates are not village-precise: many villages sharing a code share a single point. Rows with
accuracy1 have a point interpolated by the source from neighbouring postal codes rather than matched to a gazetteer entry. Checkaccuracybefore relying on a coordinate.
Usage
The dataset files are available in CSV format and can be accessed and downloaded using
the links provided in datapackage.yaml. The administrative codes admin_code2 and admin_code3 are dotted strings (11.01,
11.01.01) and must not be parsed as numbers.
For other inquiries, contact datahub@datopian.com