← Back to Skills
Communication

seoul-metro

dukbong By dukbong 👁 23 views ▲ 0 votes

Seoul Metro assistant for real-time arrivals, route planning

GitHub
---
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:**
1. **SEOUL_OPENAPI_KEY**: Sign up at [data.seoul.go.kr](https://data.seoul.go.kr), go to "My Page" > "API Key Management"
2. **DATA_GO_KR_KEY**: Sign up at [data.go.kr](https://www.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**
```bash
curl "http://swopenAPI.seoul.go.kr/api/subway/${SEOUL_OPENAPI_KEY}/json/realtimeStationArrival/0/10/๊ฐ•๋‚จ"
```

**Station Search**
```bash
curl "http://openapi.seoul.go.kr:8088/${SEOUL_OPENAPI_KEY}/json/SearchInfoBySubwayNameService/1/10/๊ฐ•๋‚จ"
```

**Route Search**
```bash
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**
```bash
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:**
```
[๊ฐ•๋‚จ์—ญ]

| ํ˜ธ์„  | ์—ญ์ฝ”

... (truncated)
communication

Comments

Sign in to leave a comment

Loading comments...