| name | seoul-metro |
| description | Seoul Metro assistant for real-time arrivals, route planning, and service alerts (Korean/English) |
| metadata | {"moltbot":{"emoji":"๐","requires":{"bins":["curl","jq"],"env":["SEOUL_OPENAPI_KEY","DATA_GO_KR_KEY"]},"primaryEnv":"SEOUL_OPENAPI_KEY"}} |
| homepage | https://github.com/dukbong/seoul-metro |
| user-invocable | true |
Seoul Metro Skill
Query real-time Seoul Metro information.
Features
| Feature | Description | Trigger Example (KO) | Trigger Example (EN) |
|---|
| Real-time Arrival | Train arrival times by station | "๊ฐ๋จ์ญ ๋์ฐฉ์ ๋ณด" | "Gangnam station arrivals" |
| Station Search | Line and station code lookup | "๊ฐ๋จ์ญ ๋ชํธ์ ?" | "What line is Gangnam?" |
| Route Search | Shortest path with time/fare | "์ ๋๋ฆผ์์ ์์ธ์ญ" | "Sindorim to Seoul Station" |
| Service Alerts | Delays, incidents, non-stops | "์งํ์ฒ ์ง์ฐ ์์ด?" | "Any subway delays?" |
Environment Variables
| Variable | Usage | Provider |
|---|
SEOUL_OPENAPI_KEY | Arrival info, station search | data.seoul.go.kr |
DATA_GO_KR_KEY | Route search, alerts | data.go.kr |
How to get API keys:
- SEOUL_OPENAPI_KEY: Sign up at data.seoul.go.kr, go to "My Page" > "API Key Management"
- DATA_GO_KR_KEY: Sign up at data.go.kr, search for the API service, and request access
API Reference
1. Real-time Arrival Info
Endpoint
http://swopenAPI.seoul.go.kr/api/subway/{KEY}/json/realtimeStationArrival/{start}/{end}/{station}
Response Fields
| Field | Description |
|---|
subwayId | Line ID (1002=Line 2, 1077=Sinbundang) |
trainLineNm | Direction (e.g., "์ฑ์ํ - ์ญ์ผ๋ฐฉ๋ฉด") |
arvlMsg2 | Arrival time (e.g., "4๋ถ 20์ด ํ") |
arvlMsg3 | Current location |
btrainSttus | Train type (์ผ๋ฐ/๊ธํ) |
lstcarAt | Last train (0=No, 1=Yes) |
2. Station Search
Endpoint
http://openapi.seoul.go.kr:8088/{KEY}/json/SearchInfoBySubwayNameService/{start}/{end}/{station}
Response Fields
| Field | Description |
|---|
STATION_CD | Station code |
STATION_NM | Station name |
LINE_NUM | Line name (e.g., "02ํธ์ ") |
FR_CODE | External station code |
3. Route Search
Endpoint
https://apis.data.go.kr/B553766/path/getShtrmPath
Parameters
| Parameter | Required | Description |
|---|
serviceKey | Yes | DATA_GO_KR_KEY |
dptreStnNm | Yes | Departure station |
arvlStnNm | Yes | Arrival station |
searchDt | Yes | Datetime (yyyy-MM-dd HH:mm:ss) |
dataType | Yes | JSON |
searchType | No | duration / distance / transfer |
Response Fields
| Field | Description |
|---|
totalDstc | Total distance (m) |
totalreqHr | Total time (seconds) |
totalCardCrg | Fare (KRW) |
paths[].trainno | Train number |
paths[].trainDptreTm | Departure time |
paths[].trainArvlTm | Arrival time |
paths[].trsitYn | Transfer flag |
4. Service Alerts
Endpoint
https://apis.data.go.kr/B553766/ntce/getNtceList
Parameters
| Parameter | Required | Description |
|---|
serviceKey | Yes | DATA_GO_KR_KEY |
dataType | Yes | JSON |
pageNo | No | Page number |
numOfRows | No | Results per page |
lineNm | No | Filter by line |
Response Fields
| Field | Description |
|---|
noftTtl | Alert title |
noftCn | Alert content |
noftOcrnDt | Timestamp |
lineNmLst | Affected line(s) |
nonstopYn | Non-stop flag |
xcseSitnBgngDt | Incident start |
xcseSitnEndDt | Incident end |
Line ID Mapping
| Line | ID | Line | ID |
|---|
| Line 1 | 1001 | Line 6 | 1006 |
| Line 2 | 1002 | Line 7 | 1007 |
| Line 3 | 1003 | Line 8 | 1008 |
| Line 4 | 1004 | Line 9 | 1009 |
| Line 5 | 1005 | Sinbundang | 1077 |
| Gyeongui-Jungang | 1063 | Gyeongchun | 1067 |
| Airport Railroad | 1065 | Suin-Bundang | 1075 |
Station Name Mapping (English โ Korean)
์ฃผ์ ์ญ ์ด๋ฆ์ ์์ด-ํ๊ธ ๋งคํ ํ
์ด๋ธ์
๋๋ค. API ํธ์ถ ์ ์์ด ์
๋ ฅ์ ํ๊ธ๋ก ๋ณํํด์ผ ํฉ๋๋ค.
Line 1 (1ํธ์ )
| English | Korean | English | Korean |
|---|
| Seoul Station | ์์ธ์ญ | City Hall | ์์ฒญ |
| Jonggak | ์ข
๊ฐ | Jongno 3-ga | ์ข
๋ก3๊ฐ |
| Jongno 5-ga | ์ข
๋ก5๊ฐ | Dongdaemun | ๋๋๋ฌธ |
| Cheongnyangni | ์ฒญ๋๋ฆฌ | Yongsan | ์ฉ์ฐ |
| Noryangjin | ๋
ธ๋์ง | Yeongdeungpo | ์๋ฑํฌ |
| Guro | ๊ตฌ๋ก | Incheon | ์ธ์ฒ |
| Bupyeong | ๋ถํ | Suwon | ์์ |
Line 2 (2ํธ์ )
| English | Korean | English | Korean |
|---|
| Gangnam | ๊ฐ๋จ | Yeoksam | ์ญ์ผ |
| Samseong | ์ผ์ฑ | Jamsil | ์ ์ค |
| Sindorim | ์ ๋๋ฆผ | Hongdae (Hongik Univ.) | ํ๋์
๊ตฌ |
| Hapjeong | ํฉ์ | Dangsan | ๋น์ฐ |
| Yeouido | ์ฌ์๋ | Konkuk Univ. | ๊ฑด๋์
๊ตฌ |
| Seolleung | ์ ๋ฆ | Samsung | ์ผ์ฑ |
| Sports Complex | ์ข
ํฉ์ด๋์ฅ | Gangbyeon | ๊ฐ๋ณ |
| Ttukseom | ๋์ฌ | Seongsu | ์ฑ์ |
| Wangsimni | ์์ญ๋ฆฌ | Euljiro 3-ga | ์์ง๋ก3๊ฐ |
| Euljiro 1-ga | ์์ง๋ก์
๊ตฌ | City Hall | ์์ฒญ |
| Chungjeongno | ์ถฉ์ ๋ก | Ewha Womans Univ. | ์ด๋ |
| Sinchon | ์ ์ด | Sadang | ์ฌ๋น |
| Nakseongdae | ๋์ฑ๋ | Seoul Nat'l Univ. | ์์ธ๋์
๊ตฌ |
| Guro Digital Complex | ๊ตฌ๋ก๋์งํธ๋จ์ง | Mullae | ๋ฌธ๋ |
Line 3 (3ํธ์ )
| English | Korean | English | Korean |
|---|
| Gyeongbokgung | ๊ฒฝ๋ณต๊ถ | Anguk | ์๊ตญ |
| Jongno 3-ga | ์ข
๋ก3๊ฐ | Chungmuro | ์ถฉ๋ฌด๋ก |
| Dongguk Univ. | ๋๋์
๊ตฌ | Yaksu | ์ฝ์ |
| Apgujeong | ์๊ตฌ์ | Sinsa | ์ ์ฌ |
| Express Bus Terminal | ๊ณ ์ํฐ๋ฏธ๋ | Gyodae | ๊ต๋ |
| Nambu Bus Terminal | ๋จ๋ถํฐ๋ฏธ๋ | Yangjae | ์์ฌ |
| Daehwa | ๋ํ | Juyeop | ์ฃผ์ฝ |
Line 4 (4ํธ์ )
| English | Korean | English | Korean |
|---|
| Myeongdong | ๋ช
๋ | Hoehyeon | ํํ |
| Seoul Station | ์์ธ์ญ | Sookmyung Women's Univ. | ์๋์
๊ตฌ |
| Dongdaemun History & Culture Park | ๋๋๋ฌธ์ญ์ฌ๋ฌธํ๊ณต์ | Hyehwa | ํํ |
| Hansung Univ. | ํ์ฑ๋์
๊ตฌ | Mia | ๋ฏธ์ |
| Mia Sageori | ๋ฏธ์์ฌ๊ฑฐ๋ฆฌ | Gireum | ๊ธธ์ |
| Chongshin Univ. | ์ด์ ๋์
๊ตฌ | Sadang | ์ฌ๋น |
Line 5 (5ํธ์ )
| English | Korean | English | Korean |
|---|
| Gwanghwamun | ๊ดํ๋ฌธ | Jongno 3-ga | ์ข
๋ก3๊ฐ |
| Dongdaemun History & Culture Park | ๋๋๋ฌธ์ญ์ฌ๋ฌธํ๊ณต์ | Cheonggu | ์ฒญ๊ตฌ |
| Wangsimni | ์์ญ๋ฆฌ | Haengdang | ํ๋น |
| Yeouido | ์ฌ์๋ | Yeouinaru | ์ฌ์๋๋ฃจ |
| Mapo | ๋งํฌ | Gongdeok | ๊ณต๋ |
| Gimpo Airport | ๊นํฌ๊ณตํญ | Banghwa | ๋ฐฉํ |
Line 6 (6ํธ์ )
| English | Korean | English | Korean |
|---|
| Itaewon | ์ดํ์ | Samgakji | ์ผ๊ฐ์ง |
| Noksapyeong | ๋
น์ฌํ | Hangang | ํ๊ฐ์ง |
| Sangsu | ์์ | Hapjeong | ํฉ์ |
| World Cup Stadium | ์๋์ปต๊ฒฝ๊ธฐ์ฅ | Digital Media City | ๋์งํธ๋ฏธ๋์ด์ํฐ |
Line 7 (7ํธ์ )
| English | Korean | English | Korean |
|---|
| Gangnam-gu Office | ๊ฐ๋จ๊ตฌ์ฒญ | Cheongdam | ์ฒญ๋ด |
| Konkuk Univ. | ๊ฑด๋์
๊ตฌ | Children's Grand Park | ์ด๋ฆฐ์ด๋๊ณต์ |
| Junggok | ์ค๊ณก | Ttukseom Resort | ๋์ฌ์ ์์ง |
| Express Bus Terminal | ๊ณ ์ํฐ๋ฏธ๋ | Nonhyeon | ๋
ผํ |
| Hakdong | ํ๋ | Bogwang | ๋ณด๊ด |
| Jangam | ์ฅ์ | Dobongsan | ๋๋ด์ฐ |
Line 8 (8ํธ์ )
| English | Korean | English | Korean |
|---|
| Jamsil | ์ ์ค | Mongchontoseong | ๋ชฝ์ดํ ์ฑ |
| Gangdong-gu Office | ๊ฐ๋๊ตฌ์ฒญ | Cheonho | ์ฒํธ |
| Bokjeong | ๋ณต์ | Sanseong | ์ฐ์ฑ |
| Moran | ๋ชจ๋ | Amsa | ์์ฌ |
Line 9 (9ํธ์ )
| English | Korean | English | Korean |
|---|
| Sinnonhyeon | ์ ๋
ผํ | Express Bus Terminal | ๊ณ ์ํฐ๋ฏธ๋ |
| Dongjak | ๋์ | Noryangjin | ๋
ธ๋์ง |
| Yeouido | ์ฌ์๋ | National Assembly | ๊ตญํ์์ฌ๋น |
| Dangsan | ๋น์ฐ | Yeomchang | ์ผ์ฐฝ |
| Gimpo Airport | ๊นํฌ๊ณตํญ | Gaehwa | ๊ฐํ |
| Olympic Park | ์ฌ๋ฆผํฝ๊ณต์ | Sports Complex | ์ข
ํฉ์ด๋์ฅ |
Sinbundang Line (์ ๋ถ๋น์ )
| English | Korean | English | Korean |
|---|
| Gangnam | ๊ฐ๋จ | Sinsa | ์ ์ฌ |
| Yangjae | ์์ฌ | Yangjae Citizen's Forest | ์์ฌ์๋ฏผ์์ฒ |
| Pangyo | ํ๊ต | Jeongja | ์ ์ |
| Dongcheon | ๋์ฒ | Suji District Office | ์์ง๊ตฌ์ฒญ |
| Gwanggyo | ๊ด๊ต | Gwanggyo Jungang | ๊ด๊ต์ค์ |
Gyeongui-Jungang Line (๊ฒฝ์์ค์์ )
| English | Korean | English | Korean |
|---|
| Seoul Station | ์์ธ์ญ | Hongdae (Hongik Univ.) | ํ๋์
๊ตฌ |
| Gongdeok | ๊ณต๋ | Hyochang Park | ํจ์ฐฝ๊ณต์์ |
| Yongsan | ์ฉ์ฐ | Oksu | ์ฅ์ |
| Wangsimni | ์์ญ๋ฆฌ | Cheongnyangni | ์ฒญ๋๋ฆฌ |
| DMC | ๋์งํธ๋ฏธ๋์ด์ํฐ | Susaek | ์์ |
| Ilsan | ์ผ์ฐ | Paju | ํ์ฃผ |
Airport Railroad (๊ณตํญ์ฒ ๋)
| English | Korean | English | Korean |
|---|
| Seoul Station | ์์ธ์ญ | Gongdeok | ๊ณต๋ |
| Hongdae (Hongik Univ.) | ํ๋์
๊ตฌ | Digital Media City | ๋์งํธ๋ฏธ๋์ด์ํฐ |
| Gimpo Airport | ๊นํฌ๊ณตํญ | Incheon Airport T1 | ์ธ์ฒ๊ณตํญ1ํฐ๋ฏธ๋ |
| Incheon Airport T2 | ์ธ์ฒ๊ณตํญ2ํฐ๋ฏธ๋ | Cheongna Int'l City | ์ฒญ๋ผ๊ตญ์ ๋์ |
Suin-Bundang Line (์์ธ๋ถ๋น์ )
| English | Korean | English | Korean |
|---|
| Wangsimni | ์์ญ๋ฆฌ | Seolleung | ์ ๋ฆ |
| Gangnam-gu Office | ๊ฐ๋จ๊ตฌ์ฒญ | Seonjeongneung | ์ ์ ๋ฆ |
| Jeongja | ์ ์ | Migeum | ๋ฏธ๊ธ |
| Ori | ์ค๋ฆฌ | Jukjeon | ์ฃฝ์ |
| Suwon | ์์ | Incheon | ์ธ์ฒ |
Usage Examples
Real-time Arrival
curl "http://swopenAPI.seoul.go.kr/api/subway/${SEOUL_OPENAPI_KEY}/json/realtimeStationArrival/0/10/๊ฐ๋จ"
Station Search
curl "http://openapi.seoul.go.kr:8088/${SEOUL_OPENAPI_KEY}/json/SearchInfoBySubwayNameService/1/10/๊ฐ๋จ"
Route Search
curl -G "https://apis.data.go.kr/B553766/path/getShtrmPath?serviceKey=${DATA_GO_KR_KEY}&dataType=JSON" \
--data-urlencode "dptreStnNm=์ ๋๋ฆผ" \
--data-urlencode "arvlStnNm=์์ธ์ญ" \
--data-urlencode "searchDt=$(date '+%Y-%m-%d %H:%M:%S')"
Service Alerts
curl "https://apis.data.go.kr/B553766/ntce/getNtceList?serviceKey=${DATA_GO_KR_KEY}&dataType=JSON&pageNo=1&numOfRows=10"
Output Format Guide
Real-time Arrival
Korean:
[๊ฐ๋จ์ญ ๋์ฐฉ ์ ๋ณด]
| ํธ์ | ๋ฐฉํฅ | ๋์ฐฉ | ์์น | ์ ํ |
|------|------|------|------|------|
| 2ํธ์ | ์ฑ์ํ | 3๋ถ | ์ญ์ผ | ์ผ๋ฐ |
English:
[Gangnam Station Arrivals]
| Line | Direction | Arrival | Location | Type |
|------|-----------|---------|----------|------|
| Line 2 | Seongsu-bound | 3 min | Yeoksam | Regular |
Station Search
Korean:
[๊ฐ๋จ์ญ]
| ํธ์ | ์ญ์ฝ๋ | ์ธ๋ถ์ฝ๋ |
|------|--------|----------|
| 2ํธ์ | 222 | 0222 |
English:
[Gangnam Station]
| Line | Station Code | External Code |
|------|--------------|---------------|
| Line 2 | 222 | 0222 |
Route Search
Korean:
[๊ฐ๋จ -> ํ๋์
๊ตฌ]
์์์๊ฐ: 38๋ถ | ๊ฑฐ๋ฆฌ: 22.1 km | ์๊ธ: 1,650์ | ํ์น: 1ํ
1. 09:03 ๊ฐ๋จ ์ถ๋ฐ (2ํธ์ ์ฑ์๋ฐฉ๋ฉด)
2. 09:18 ์ ๋๋ฆผ ํ์น (2ํธ์ -> 1ํธ์ )
3. 09:42 ํ๋์
๊ตฌ ๋์ฐฉ
English:
[Gangnam -> Hongdae]
Time: 38 min | Distance: 22.1 km | Fare: 1,650 KRW | Transfers: 1
1. 09:03 Depart Gangnam (Line 2 towards Seongsu)
2. 09:18 Transfer at Sindorim (Line 2 -> Line 1)
3. 09:42 Arrive Hongdae
Service Alerts
Korean:
[์ดํ ์๋ฆผ]
[1ํธ์ ] ์ข
๋ก3๊ฐ์ญ ๋ฌด์ ์ฐจ (15:00 ~ 15:22)
- ์ฝ๋ ์ผ ์ด์ฐจ ์ฐ๊ธฐ ๋ฐ์์ผ๋ก ์ธํจ
[2ํธ์ ] ์ ์ ์ดํ
English:
[Service Alerts]
[Line 1] Jongno 3-ga Non-stop (15:00 ~ 15:22)
- Due to smoke from Korail train
[Line 2] Normal operation
Error
Korean:
์ค๋ฅ: ์ญ์ ์ฐพ์ ์ ์์ต๋๋ค.
"๊ฐ๋จ" (์ญ ์ด๋ฆ๋ง)์ผ๋ก ๊ฒ์ํด ๋ณด์ธ์.
English:
Error: Station not found.
Try searching with "Gangnam" (station name only).
API Key Errors
Korean:
์ค๋ฅ: API ์ธ์ฆํค๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค.
ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํด์ฃผ์ธ์: SEOUL_OPENAPI_KEY
๋ฐ๊ธ ์๋ด:
- ์์ธ์ด๋ฆฐ๋ฐ์ดํฐ๊ด์ฅ: https://data.seoul.go.kr
- ๊ณต๊ณต๋ฐ์ดํฐํฌํธ: https://www.data.go.kr
English:
Error: API key is not configured.
Please set environment variable: SEOUL_OPENAPI_KEY
Get your API key:
- Seoul Open Data Plaza: https://data.seoul.go.kr
- Korea Public Data Portal: https://www.data.go.kr
Korean:
์ค๋ฅ: API ์ธ์ฆํค๊ฐ ์ ํจํ์ง ์์ต๋๋ค.
์ธ์ฆํค๋ฅผ ํ์ธํด์ฃผ์ธ์.
English:
Error: Invalid API key.
Please verify your API key.