MTR Stations & Lines
Source
Section titled “Source”MTR Corporation
- Open Data Portal: https://opendata.mtr.com.hk/
- Direct URL:
https://opendata.mtr.com.hk/data/mtr_lines_and_stations.csv
Format
Section titled “Format”CSV Updated when network changes occur. No API key required.
98
MTR Stations
11
Lines
Free
No Auth
Schema / Fields
Section titled “Schema / Fields”| Field | Type | Example | Description |
|---|---|---|---|
Line Code | string | ISL | Line identifier (ISL=Island, TWL=Tsuen Wan, etc.) |
Direction | string | DT | Direction: DT (down-track) or UT (up-track) |
Station Code | string | SHW | Unique station code |
Station ID | integer | 12 | Numeric station identifier |
Chinese Name | string | 上環 | Station name in Chinese |
English Name | string | Sheung Wan | Station name in English |
Line Code Reference
| Code | Line Name |
|---|---|
ISL | Island Line |
TWL | Tsuen Wan Line |
KTL | Kwun Tong Line |
TKL | Tseung Kwan O Line |
EAL | East Rail Line |
TCL | Tung Chung Line |
AEL | Airport Express |
TML | Tuen Ma Line |
Example API Call
Section titled “Example API Call”curl -o mtr_stations.csv \ "https://opendata.mtr.com.hk/data/mtr_lines_and_stations.csv"Example Response
Section titled “Example Response”Line Code,Direction,Station Code,Station ID,Chinese Name,English NameISL,DT,KET,1,堅尼地城,Kennedy TownISL,DT,HKU,2,香港大學,HKUISL,DT,SYP,3,西營盤,Sai Ying PunISL,DT,SHW,4,上環,Sheung WanISL,DT,CEN,5,中環,CentralISL,DT,ADM,6,金鐘,AdmiraltyISL,DT,WAI,7,灣仔,Wan ChaiUsed By
Section titled “Used By”| Model | How |
|---|---|
| Catchment Area | Station locations define transit-accessible zones (15-min MTR catchment) |
| Distance Decay | Transit network distances — MTR travel time as dij |
| Gravity Model | Origin zones linked via MTR network to destination |
Implementation Notes
Section titled “Implementation Notes”Backend Station Coverage (2026-03-25)
Section titled “Backend Station Coverage (2026-03-25)”The API backend hardcodes ~91 MTR stations with coordinates and estimated daily ridership in the MTR_STATIONS array. This covers:
- Island Line: Kennedy Town → Chai Wan (all stations)
- Tsuen Wan Line: Tsuen Wan → Central (all stations)
- Kwun Tong Line: Whampoa → Tiu Keng Leng (added 2026-03-25: Wong Tai Sin, Lok Fu, Choi Hung, Ngau Tau Kok, Kowloon Bay, Yau Tong, Shek Kip Mei, Lai Chi Kok, Cheung Sha Wan)
- Tuen Ma Line: Tuen Mun → Wu Kai Sha (added 2026-03-25: 23 stations including Tuen Mun, Tin Shui Wai, Yuen Long, Tai Wai, Ma On Shan etc.)
- East Rail Line: Hung Hom → Lo Wu/Lok Ma Chau (added 2026-03-25: Fo Tan, University, Fanling, Sheung Shui, Lo Wu, Lok Ma Chau, Racecourse)
- Tseung Kwan O Line: added Hang Hau, LOHAS Park
- South Island Line: added Lei Tung, South Horizons
- Tung Chung Line: added Tung Chung, Olympic, Kowloon, Tsing Yi
- Airport Express: added Airport, AsiaWorld-Expo
- Disneyland Resort Line: added Sunny Bay, Disneyland Resort
Critical fix (2026-03-25): Before this update, only ~35 stations existed. Queries in New Territories (Tuen Mun, Yuen Long, Sheung Shui) returned distant Island/Tsuen Wan Line stations as “nearest MTR”. Example: Tuen Mun query showed Tsuen Wan at 14,961m instead of Tuen Mun station at 479m.
Ridership numbers are estimated daily figures based on publicly available MTR patronage data. These are approximate and may not reflect current post-COVID ridership.
Changelog
Section titled “Changelog”| Date | Change | Why |
|---|---|---|
| 2026-03-25 | Expanded from ~35 to ~91 stations (+56) | NT locations returned wildly wrong “nearest MTR” results; entire Tuen Ma Line, East Rail north, and most of KTL were missing |
| 2026-03-24 | Initial implementation with ~35 major stations | MVP coverage for urban core |
Notes / Gotchas
Section titled “Notes / Gotchas”- Sheung Wan station (SHW, ISL line) is the primary station for 14 Wa In Fong East — 4 min walk
- The ISL line connects Sheung Wan to Central (1 stop), Admiralty (2 stops), Wan Chai (3 stops) — all within 10 min
- Airport Express (AEL) shares Hong Kong station with ISL — tourist flow from airport counts
- Light Rail (LR) and Bus-Rail interchange data is separate — Light Rail stations are NOT included in the backend array