MyAlamat.myTuxGeo+
Malaysian address registry · part of TuxGeo+

Malaysian Address Geocoding
& Standardization

We parse, standardise and geocode messy Malaysian addresses through a keyed REST API. Parsing is libpostal-based and tuned for Malaysian address forms; matching runs against Malaysian reference datasets in PostGIS. Output fields follow the structure of MS 2039:2006. We are writing the conformance suite, and until it ships we make no compliance claim.

Try Interactive DemoView API Documentation
Core Technology

Core Capabilities

Built for agencies and businesses that need to validate and locate Malaysian addresses. Everything below is what the API does today.

Address Normalization

BM/EN parsing and component extraction (street, building, unit, section, mukim, daerah, negeri) with libpostal-based rules tuned for Malaysian address forms.

Multi-Strategy Matching

A ladder of fallback strategies: exact match, postcode search, cadastral lot and UPI mapping, and boundary lookups. Whichever rung answered is recorded in the result.

Quality Score

Returns a plain-language quality grade with every result, from an exact match down to honestly unresolved — no silent guesses.

Bilingual, runs where the data has to stay

Deploy on-premise or on infrastructure in Malaysia that you or we control. BM/EN taxonomy throughout. Output fields follow the MS 2039:2006 structure; a conformance suite is in progress.

Under the Hood

How MyAlamat Works

From a messy line of text to a verified rooftop coordinate: a national-scale address registry built on linguistic parsing, in-memory word vectors, and a conflated PostGIS corpus.

01 / 05

Ingest & Conflate

11+ national datasets fused into one canonical corpus

  • Property listings, utility billing records, commercial basemap data, cadastral Lot/UPI references, OSM & DDSA boundaries
  • Every record is normalized into 16 standard components and fingerprinted with an address hash for exact deduplication

One address, many witnesses

No single dataset describes a Malaysian address completely. MyAlamat treats each source as a witness: utility billing records prove occupancy, cadastral lot numbers anchor legal parcels, commercial basemaps contribute building footprints, and open boundaries frame every mukim, daerah and negeri. Records are normalized into 16 standard components, fingerprinted, deduplicated, and merged into a single canonical PostGIS corpus.

Reverse geocoding resolves any coordinate to its administrative home across every negeri and wilayah persekutuan, every daerah, and the mukim boundary polygons beneath them.

  • Property listings
  • Utility billing records
  • Commercial basemap data
  • Cadastral Lot / UPI
  • OSM · DDSA boundaries
  • Canonical corpus — PostGIS
02 / 05

Parse & Tokenize

Custom-trained libpostal model for Malaysian addresses

  • 28 token types — unit, level, building, street, seksyen, taman, mukim, daerah, negeri and more
  • Bilingual BM/EN with synonym expansion (JLN → JALAN, BLK → BLOCK)
Tokenizer replay — 28 token types, custom-trained for Malaysian addresses

Level 30,levelMenara Maxis,buildingKLCC,section50088postcodeKuala Lumpurcity

03 / 05

Vectorize & Match

AddressVec — the corpus held in RAM as int64 word vectors

  • Every address word becomes a compact integer vector; lookups run entirely in memory
  • A cascade of strategies runs from strictest (postcode + street + state + house) down through progressively looser fallbacks
AddressVec — every word becomes an int64 vector, matched entirely in RAM
Level 300xa50a7bc4fda80835
Menara Maxis0xed0f5cc14c0e07f8
KLCC0xfb8da8602bf5b059
500880x1c1f866060a4bc53
Kuala Lumpur0x9cc80200c9e0306d
in-memory index — no database round-trip per lookup
04 / 05

Locate & Grade

PostgreSQL + PostGIS with H3 spatial hashing

  • Coordinates resolved against the canonical corpus; reverse geocoding via mukim, daerah and negeri polygons
  • Every result carries a transparent quality grade, from an exact match down to honestly unresolved — no silent guesses
ExcellentPostcode, street, state and house number all agree — exact rooftop match
GoodAnchored to a street or seksyen, even without every field matching
FairAnchored to a named building, recovered by relaxing one field, or escalated to an external fallback geocoder
Not foundHonestly flagged as unresolved — never silently guessed
05 / 05

Serve & Audit

Keyed REST API with a full audit trail

  • POST /address/v1/geocode, /correct and /match — an OpenAPI 3.1 contract behind NGINX
  • ClickHouse audit logging; ships as a single Docker Compose reference stack for on-premise installs
We will publish the corpus size, the dataset count and the boundary coverage here, each dated with the month it was measured and the method behind it. These tiles are not up yet.

Where it's heading

Shipped

Public REST API

OpenAPI 3.1 contract — /geocode, /correct and /match endpoints behind NGINX with ClickHouse audit logging.

Shipped

Bilingual BM/EN output

Canonical negeri and component labels in both Bahasa Malaysia and English.

Shipped

Reference deployment

Reproducible single-host Docker Compose stack — PostgreSQL + PostGIS, API, NGINX, ClickHouse — for on-premise and air-gapped installs.

In progress

Compliance benchmark suite

Continuous precision/recall and latency (p50/p95/p99) benchmarking against curated ground truth.

Planned

Cadastral & basemap refresh

Reimport of commercial basemap building data and the national Lot/UPI dataset.

Planned

ML confidence & active learning

Model-scored match confidence and a feedback loop that learns from user-submitted corrections.

Sandbox

Address Parsing Demo

See how we split a messy Malaysian address into standard components. This page carries no API key, so the three presets show sample output; live parsing needs a key.

Input Address

Click sample presets:

Output Metadata

Submit an address to view standard tokens, coordinates, and precision scores.

For Engineers

API Integration

Integrate Malaysian address parsing directly into your ERP, CRM, checkout pages, or data warehouse pipelines with lightweight REST APIs.

  • Test keys

    Test keys are available on request. We will publish the free monthly allowance once the plan is final.

  • Latency and availability

    We will publish p50, p95 and p99 latency here, with the run date and the method, once a run has been checked in. Until then this page carries no latency figure.

  • Malaysian standard structure

    Output fields follow the MS 2039:2006 field structure. A conformance suite is in progress; until it ships we make no compliance claim.

# Post a messy address for geocoding
curl -X POST "https://maps.tuxgeo.dev/address/v1/geocode" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "address": "Level 30, Menara Maxis, KLCC, 50088 Kuala Lumpur"
  }'

Ask for a key or a deployment

Need a test key, an on-premise deployment, or a walkthrough of the API? Send us a message and we will get back to you.