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 (MCMC, via data.gov.my) 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-my-sample
| Field | Type | Description | Constraints | Title |
|---|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 country code — always MY | { "pattern": "^MY$", "required": true } | Country Code |
| postal_code | string | 5-digit Malaysian postcode. | { "pattern": "^\\d{5}$", "required": true } | Postal Code |
| place_name | string | City/town — the tier postcodes are assigned at. | { "required": true } | Place Name |
| admin_name1 | string | Negeri (state) / Wilayah Persekutuan (federal territory). | { "required": true } | Administrative Name 1 |
| admin_code1 | string | ISO 3166-2:MY code, MY- prefix stripped. | { "required": true } | Administrative Code 1 |
| admin_name2 | string | RESERVED — not populated. No licence-clean source currently maps place_name to a district (daerah); see project notes. | Administrative Name 2 | |
| admin_code2 | string | RESERVED — not populated. | Administrative Code 2 | |
| admin_name3 | string | RESERVED — not populated. No licence-clean mukim source was found; Malaysia's Copyright Act 1987 s.11 grants copyright to government works by default, unlike some other countries in this pipeline. | Administrative Name 3 | |
| admin_code3 | string | RESERVED — not populated. | Administrative Code 3 | |
| latitude | number | WGS84 latitude, decimal degrees, max 5 dp. From GeoNames, joined by postal code. | Latitude | |
| longitude | number | WGS84 longitude, decimal degrees, max 5 dp. From GeoNames, joined by postal code. | 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 | RESERVED — not populated on this build pass. | Alternative City Name |
Download
Download sample CSVAbout
- Last updated
- 3 October 2026
- Total rows
- 100
- Format
- CSV
- File size
- 5.46 kB
About this dataset
Postal Codes Dataset for Malaysia (MY)
This dataset lists Malaysian five-digit postcodes with the place name and state for each, across every state and federal territory, plus coordinates where a postal code could be resolved to a single confident point.
Column definitions, row count, size and last-updated date are in datapackage.yaml.
Data Sources
- Postal codes, places and states: © Malaysian Communications and Multimedia Commission (MCMC), Postcode Dataset, via data.gov.my, CC BY 4.0.
- Coordinates and accuracy: © GeoNames, postal code export for Malaysia, CC BY 4.0, joined by postal code.
Changes made to the source data: whitespace trimmed from all fields and exact duplicate
rows removed; admin_code1 set to the ISO 3166-2:MY code with the MY- prefix stripped;
coordinates joined from GeoNames by postal code (the single point for the code, or the
unique match on city name, never averaged) and rounded to 5 decimal places.
Not endorsed by, or affiliated with, MCMC or GeoNames.
Known limitations
- Only the state tier (
admin_name1/admin_code1) is populated. District (daerah) and mukim tiers are reserved as empty columns, because no source has yet been confirmed with a licence that clears redistribution. - One postal code can serve more than one place. Postcode
40160covers both Sungai Buloh and Shah Alam in Selangor, so the primary key is (postal_code,place_name), neverpostal_codealone. - Where a postal code did not resolve to a single confident point,
latitude,longitudeandaccuracyare left blank rather than guessed.
Usage
The dataset files are available in CSV format and can be accessed and downloaded using
the links provided in datapackage.yaml. Read postal_code as text, never as a number.
For other inquiries, contact datahub@datopian.com