Source Code
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.