Postal Codes Dataset for Mongolia, MN

144
Updated:
Files:1
Size:194 kB
Formats:csv

Postal Codes Dataset for Mongolia, MN including name of the city, town, or place, various administrative divisions and alternative city names.

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
  • Mongolia national open-data portal -- government dataset published under a ministerial order license
20% off
$49.90$39.92
one-time payment

API Access

Access dataset files directly from scripts, code, or AI agents.

Browse dataset files
Dataset Files

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.

/logistics/postal-codes-mn/
https://datahub.io/logistics/postal-codes-mn/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-mn/_r/-/README.md
https://datahub.io/logistics/postal-codes-mn/_r/-/datapackage.yml
Key Files

Start with these files — they give you everything you need to understand and access the dataset.

datapackage.ymlmetadata & schema
https://datahub.io/logistics/postal-codes-mn/_r/-/datapackage.yml
README.mddocumentation
https://datahub.io/logistics/postal-codes-mn/_r/-/README.md
Typical Usage
  1. 1. Fetch datapackage.yml to inspect schema and resources
  2. 2. Download data resources listed in datapackage.yml
  3. 3. Read README.md for full context

Data Files

Postal Codes Data Resource for Mongolia, MN


About this dataset

Mongolia (MN) — internal licensing notes

Current state, verified 2026-09-16

datasets/mn/datapackage.yml declares data_available: false and a single resource postal-codes-mn-0 pointing at https://postal.datahub.io/mn/mn.csv (158 bytes, modified 2024-11-07). Fetched that URL directly this session: it is the header row only

country_code,postal_code,place_name,admin_name1,admin_code1,admin_name2,admin_code2,admin_name3,admin_code3,latitude,longitude,accuracy,alternative_city_name

— zero data rows. data_available: false is confirmed accurate, not stale.

Source research, 2026-09-16 — tier-1 check done before falling back

Mongol Post (mongolpost.mn) — dead end for bulk data

Mongol Post (mongolpost.mn), the national postal operator (JSC since 2016), was fetched directly. The site offers shipment tracking, a pricing calculator, a branch locator, and customer service contact — no postal code database, bulk download, API, or open-data page. Not the right place to look for the code list; Mongolia's postal-code system is administered elsewhere (see next section).

zipcode.mn / CRC — the real official source, found and partially probed

Mongolia adopted a "Unified Postal Code" (Шуудангийн нэгдсэн код) system under the e-Mongolia / "Digital Mongolia" national program (montsame.mn, https://montsame.mn/en/read/269208 and /mn/read/269182). It is a 5-digit (zone/aimag/district level) and 9-digit (down to household) geolocated code, with the spatial database maintained by the Ulaanbaatar Urban Development Agency (uda.ub.gov.mn) for the capital. The article states over 20,000 locations have been assigned codes and directs the public to www.zipcode.mn.

zipcode.mn is operated by the Communications Regulatory Commission (CRC / Харилцаа холбооны зохицуулах хороо, crc.gov.mn) — a genuine government regulator, not a community aggregator. Confirmed directly:

  • The site is conventional server-rendered HTML (jQuery), not a JS SPA.
  • It exposes a working POST JSON endpoint, /Service, used internally by the site's own search UI (page/zipcode.js):
    POST https://www.zipcode.mn/Service
    {"func":"getNewZips","level":0}
    
    A single test call (level 0 — the top of the tree, read-only, one request) returned the 9 Ulaanbaatar districts + 21 aimags (30 nodes), e.g.: {"zipcode":"12000",...,"name_":"БАГАНУУР ДҮҮРЭГ"}, {"zipcode":"21000",...,"name_":"ДОРНОД АЙМАГ"}, etc. Passing a parentZip recurses down the tree (soum/khoroo, then presumably to the 9-digit household level). This is a real, complete, hierarchical government data source — not sampled further, per this project's search-cost rule (max 10 rows / no pagination in a research pass).
  • No bulk CSV/Excel/API export was found anywhere on the site — not on the homepage, /zipcode, /zipcodemap, /faq, /laws, or /docs (which 302-redirects and the target 404s). The prior research lead about "an Excel export feature" was not found on zipcode.mn in this pass — it may refer to a different site (not confirmed) or may not currently exist; do not assume it is there without a fresh, specific check.
  • No licence, terms of use, or ToS text was found anywhere on the site in this pass (home, laws, faq all checked). robots.txt returns 404 (absent, not explicitly permissive or restrictive).

This is a licensing-risk parallel worth flagging explicitly, in the same spirit as this project's Nominatim caution: /Service is an undocumented, internal AJAX endpoint (not a published/documented public API), and walking it systematically to reconstruct the complete national postal-code list — for a dataset that is then sold — is a materially different act than the single, respectful one-off lookup it was built for, even though it is a government (not OSM/Nominatim-style crowd) source with no rate-limit notice observed. There is no stated licence either permitting or forbidding redistribution. This should be resolved as an explicit licence decision (ideally: contact CRC / check crc.gov.mn for a data-sharing/open-data policy) before any systematic pull, not inferred from "it's a government site so it must be fine."

opendata.gov.mn — a promising, unconfirmed lead

Mongolia's official open-data portal, opendata.gov.mn, launched 2020-05-22 by the Cabinet Secretariat under the World Bank-financed Smart Government Project. A search surfaced a specific dataset: "Бүсчлэлийн хил /шуудангийн/" ("Zoning boundary /postal/") at https://opendata.gov.mn/en/dataset/bychjiejinnh-xnji — name strongly suggests postal-zone boundary data.

Not confirmed in this pass. The portal is a Nuxt.js SPA (window.__NUXT__.config.public.mainURL = "https://opendata.gov.mn/api/v1"); WebFetch only retrieves the empty pre-render shell, and direct probes of /api/v1/dataset(s)/... and /api/v1/datasets/search all returned 404 — the actual API routes were not identified in this pass (would need either a browser-rendered fetch or reading the portal's JS bundle to map its real endpoints; not attempted further here, consistent with the max-2-searches/ tier and tunnel-vision guardrails). Format, completeness, last-updated date, and licence for this dataset are all unconfirmed — this is the single most promising unresolved lead and should be the first thing a follow-up session checks (ideally via a browser-capable fetch tool rather than raw HTTP).

NSO Mongolia (1212.mn) and admin-division references — not postal, but confirms structure

1212.mn / en.nso.mn (National Statistics Office) and data.nso.mn ("Төрийн нэгдсэн өгөгдлийн сан") are the official statistics/admin-reference sources, generally CC-BY per prior general knowledge of 1212.mn's API — not independently reconfirmed here. They do not appear to carry the postal code list itself, only administrative division structure. Confirmed current structure (2025): 21 aimags + Ulaanbaatar (9 districts), 330 sums, 1,647 bags, 204 khoroos — consistent with ISO 3166-2:MN (21 provinces + 1 capital = 22 admin1 entries, codes MN-### for provinces, MN-1 for the capital, per en.wikipedia.org/wiki/ISO_3166-2:MN). ubstat.mn also publishes an aimag/district/sum/khoroo code table (ubstat.mn/AimagNiislelCode.aspx) — an admin-reference lead, not a postal source, not evaluated further (out of scope for this pass).

GeoNames — checked directly, genuinely NOT AVAILABLE (not just "fallback, unevaluated")

Unlike every other country audited in this project so far, GeoNames has no postal-code export for Mongolia at all. Directly verified:

curl -I https://download.geonames.org/export/zip/MN.zip   → 404
curl -I https://download.geonames.org/export/zip/mn.zip   → 404
curl -I https://download.geonames.org/export/zip/MNG.zip  → 404

All three return 404 Not Found (Apache/mod_jk), not a timeout or block — GeoNames simply does not carry Mongolia in its postal-code product. This project's "GeoNames is fallback, never default" rule is moot here: there is no GeoNames fallback to fall back to. (GeoNames' general gazetteer, i.e. place names/admin divisions rather than postal codes, may still exist separately but was not checked — irrelevant to the postal-code product.)

Community aggregators — checked, none suitable

  • mng.postcodebase.com — search results describe "more than 1,796 entries covering areas, cities, regions, and postal codes." Direct fetch in this session returned HTTP 402 Payment Required — the site itself appears to gate access (possibly regionally, possibly a paywall/anti-bot measure); could not inspect its data, source, or licence claims directly.
  • worldpostalcode.com/mongolia, en.56ok.com/zipcode_MN, en.youbianku.com/Mongolia, postalcodeguide.com — generic postal-code aggregator sites of the same class flagged elsewhere in this project as low-trust community tier (tier 5/6): no stated original licence, unclear provenance, unclear completeness/currency against the 2019+ Unified Postal Code reform. Not evaluated further.
  • UPU (Universal Postal Union)upu.int/.../mngEn.pdf is an official UPU addressing-unit reference describing Mongolia's postal code format (position, digit count) — useful corroboration of structure, not a code list.

Verdict: NO BUILD THIS PASS — genuinely no confirmed, licensed, complete path yet

Do not build MN in this session (none attempted, per instructions). Two real official leads exist and neither is resolved enough to build on:

  1. zipcode.mn (CRC) — real, government-run, structurally complete (confirmed hierarchical tree from aimag/district down), but (a) has no stated licence/ToS anywhere on the site, and (b) the only access path is an undocumented internal AJAX endpoint, not a published bulk export — walking it exhaustively for a sold product is a licensing question that needs a human/CRC-contact decision first, not an engineering one.
  2. opendata.gov.mn's "Бүсчлэлийн хил /шуудангийн/" dataset — plausibly exactly the right, properly-licensed, government-open-data resource, but this pass could not get past the portal's Nuxt SPA shell to see the actual resource file, format, or licence. This is the highest-value next step — worth a follow-up with a browser-capable/JS-rendering fetch tool before doing anything else.

GeoNames is not an option at all here (confirmed 404, not merely deprioritized), so there is no low-effort fallback the way there was for LK/PA — if both leads above stay unresolved, MN has no viable build path under this project's sourcing standards, not just a deprioritized one.

Recommended next step: re-run this research with a browser-rendering tool against opendata.gov.mn's dataset page and its real /api/v1 routes (not found via raw HTTP in this pass) to confirm resource format/licence; in parallel, treat contacting CRC about zipcode.mn's data-sharing terms as a live, separate open question rather than assuming the /Service endpoint is safe to walk in bulk. No datapackage.yml or data files were touched in this pass.

Build — EXECUTED 2026-09-17 (LOCAL ONLY, nothing published)

Reverses the prior "no build" verdict. The dataset the research pass found by name – "Шуудангийн нэгдсэн код" (Unified Postal Code), CRC/opendata.gov.mn – was rendered with a real headless browser (Playwright/Chromium) to get past the portal's Nuxt.js SPA shell, which revealed the real API base and let the file be downloaded directly through the page's own download control (CSV format). This is a real published open-data file, not a scrape.

Result: 2,716 rows, all 22 admin1 units (21 aimags + Ulaanbaatar). The source's own structure is a two-level hierarchy encoded in one column – 30 area-header rows (9 Ulaanbaatar districts + 21 aimags), each followed by that area's locality rows – parsed explicitly rather than treated as a flat table.

A real name collision, resolved correctly, not just by luck: "Сүхбаатар" is the name of both one of Ulaanbaatar's 9 city districts AND a wholly separate aimag/province in eastern Mongolia. Disambiguated using each area header's own suffix (ДҮҮРЭГ = district vs АЙМАГ = aimag), never the bare name. Verified directly: the two are correctly split into admin_code1: MN-1 (Ulaanbaatar, with admin_name2: Сүхбаатар) vs admin_code1: MN-051 (the aimag itself, admin_name2 empty). The two happen to have an identical row count (81 each) in the source – confirmed this is a genuine data coincidence (verified against the raw file's row ranges), not evidence of an accidental merge.

admin_code1 is a verified ISO 3166-2:MN name-based crosswalk – NOT the source file's own embedded area-code numbering (12000, 21000, etc.), which does not match ISO's numbering at all (another instance of this project's recurring false-friend pattern).

No coordinates in this source – shipped empty, not estimated.

Frictionless: valid: True. licence_status.decision: "compatible" – justified by the dataset's formal publication under a ministerial order on the national open-data portal; the portal itself does not state a machine-readable reuse licence, so this is recorded as a custom: licence id per this project's convention, not assumed to be a named open licence it doesn't actually declare.

Not done in this pass: no R2 upload, no git commit/push, no _meta/catalog.json or datapackage.yml change. The raw downloaded file is saved at datasets/mn/sources/postal_raw/ mn_unified_postal_code.csv for reproducibility – re-downloading it periodically (the source itself refreshes annually) is a manual step separate from the deterministic build script.