Communication
seoul-subway
Seoul Subway assistant for real-time arrivals, route planning
---
name: seoul-subway
description: Seoul Subway assistant for real-time arrivals, route planning, and service alerts (Korean/English)
model: sonnet
metadata: {"moltbot":{"emoji":"๐","requires":{"bins":["curl","jq"]}}}
homepage: https://github.com/dukbong/seoul-subway
user-invocable: true
---
# Seoul Subway Skill
Query real-time Seoul Subway information. **No API key required** - uses proxy server.
## 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?" |
| **Last Train** | Last train times by station | "ํ๋ ๋ง์ฐจ ๋ช ์์ผ?" | "Last train to Hongdae?" |
| **Exit Info** | Exit numbers for landmarks | "์ฝ์์ค ๋ช ๋ฒ ์ถ๊ตฌ?" | "Which exit for COEX?" |
| **Accessibility** | Elevators, escalators, wheelchair lifts | "๊ฐ๋จ์ญ ์๋ฆฌ๋ฒ ์ดํฐ" | "Gangnam elevators" |
| **Quick Exit** | Best car for facilities | "๊ฐ๋จ์ญ ๋น ๋ฅธํ์ฐจ" | "Gangnam quick exit" |
| **Restrooms** | Restroom locations | "๊ฐ๋จ์ญ ํ์ฅ์ค" | "Gangnam restrooms" |
### Natural Language Triggers / ์์ฐ์ด ํธ๋ฆฌ๊ฑฐ
๋ค์ํ ์์ฐ์ด ํํ์ ์ธ์ํฉ๋๋ค:
#### Real-time Arrival / ์ค์๊ฐ ๋์ฐฉ
| English | ํ๊ตญ์ด |
|---------|--------|
| "When's the next train at Gangnam?" | "๊ฐ๋จ ๋ช ๋ถ ๋จ์์ด?" |
| "Trains at Gangnam" | "๊ฐ๋จ ์ด์ฐจ" |
| "Gangnam arrivals" | "๊ฐ๋จ ์ธ์ ์?" |
| "Next train to Gangnam" | "๋ค์ ์ด์ฐจ ๊ฐ๋จ" |
#### Route Search / ๊ฒฝ๋ก ๊ฒ์
| English | ํ๊ตญ์ด |
|---------|--------|
| "How do I get to Seoul Station from Gangnam?" | "๊ฐ๋จ์์ ์์ธ์ญ ์ด๋ป๊ฒ ๊ฐ?" |
| "Gangnam โ Seoul Station" | "๊ฐ๋จ โ ์์ธ์ญ" |
| "Gangnam to Seoul Station" | "๊ฐ๋จ์์ ์์ธ์ญ ๊ฐ๋ ๊ธธ" |
| "Route from Gangnam to Hongdae" | "๊ฐ๋จ๋ถํฐ ํ๋๊น์ง" |
#### Service Alerts / ์ดํ ์๋ฆผ
| English | ํ๊ตญ์ด |
|---------|--------|
| "Is Line 2 running normally?" | "2ํธ์ ์ ์ ์ดํํด?" |
| "Any delays on Line 1?" | "1ํธ์ ์ง์ฐ ์์ด?" |
| "Subway status" | "์งํ์ฒ ์ํฉ" |
| "Line 3 alerts" | "3ํธ์ ์๋ฆผ" |
#### Last Train / ๋ง์ฐจ ์๊ฐ
| English | ํ๊ตญ์ด |
|---------|--------|
| "Last train to Gangnam?" | "๊ฐ๋จ ๋ง์ฐจ ๋ช ์์ผ?" |
| "When is the last train at Hongdae?" | "ํ๋์
๊ตฌ ๋ง์ฐจ ์๊ฐ" |
| "Final train to Seoul Station" | "์์ธ์ญ ๋ง์ฐจ" |
| "Last train on Saturday?" | "ํ ์์ผ ๋ง์ฐจ ์๊ฐ" |
#### Exit Info / ์ถ๊ตฌ ์ ๋ณด
| English | ํ๊ตญ์ด |
|---------|--------|
| "Which exit for COEX?" | "์ฝ์์ค ๋ช ๋ฒ ์ถ๊ตฌ?" |
| "Exit for Lotte World" | "๋กฏ๋ฐ์๋ ์ถ๊ตฌ" |
| "DDP which exit?" | "DDP ๋ช ๋ฒ ์ถ๊ตฌ?" |
| "Gyeongbokgung Palace exit" | "๊ฒฝ๋ณต๊ถ ๋๊ฐ๋ ์ถ๊ตฌ" |
#### Accessibility / ์ ๊ทผ์ฑ ์ ๋ณด
| English | ํ๊ตญ์ด |
|---------|--------|
| "Gangnam station elevators" | "๊ฐ๋จ์ญ ์๋ฆฌ๋ฒ ์ดํฐ" |
| "Escalators at Seoul Station" | "์์ธ์ญ ์์ค์ปฌ๋ ์ดํฐ" |
| "Wheelchair lifts at Jamsil" | "์ ์ค์ญ ํ ์ฒด์ด๋ฆฌํํธ" |
| "Accessibility info for Hongdae" | "ํ๋์
๊ตฌ ์ ๊ทผ์ฑ ์ ๋ณด" |
#### Quick Exit / ๋น ๋ฅธํ์ฐจ
| English | ํ๊ตญ์ด |
|---------|--------|
| "Quick exit at Gangnam" | "๊ฐ๋จ์ญ ๋น ๋ฅธํ์ฐจ" |
| "Which car for elevator?" | "์๋ฆฌ๋ฒ ์ดํฐ ๋ช ๋ฒ์งธ ์นธ?" |
| "Best car for exit 3" | "3๋ฒ ์ถ๊ตฌ ๊ฐ๊น์ด ์นธ" |
| "Fastest exit at Samsung" | "์ผ์ฑ์ญ ๋น ๋ฅธ ํ์ฐจ ์์น" |
#### Restrooms / ํ์ฅ์ค
| English | ํ๊ตญ์ด |
|---------|--------|
| "Restrooms at Gangnam" | "๊ฐ๋จ์ญ ํ์ฅ์ค" |
| "Where's the bathroom at Myeongdong?" | "๋ช
๋์ญ ํ์ฅ์ค ์ด๋์ผ?" |
| "Accessible restroom at Seoul Station" | "์์ธ์ญ ์ฅ์ ์ธ ํ์ฅ์ค" |
| "Baby changing station at Jamsil" | "์ ์ค์ญ ๊ธฐ์ ๊ท ๊ตํ๋" |
---
## First Time Setup / ์ฒซ ์ฌ์ฉ ์๋ด
When you first use this skill, you'll see a permission prompt for the proxy domain.
์ฒ์ ์ฌ์ฉ ์ ํ๋ก์ ๋๋ฉ์ธ ์ ๊ทผ ํ์ธ ์ฐฝ์ด ๋น๋๋ค.
**Select / ์ ํ:** `Yes, and don't ask again for vercel-proxy-henna-eight.vercel.app`
This only needs to be done once. / ํ ๋ฒ๋ง ํ๋ฉด ๋ฉ๋๋ค.
---
## Proxy API Reference
All API calls go through the proxy server. No API keys needed for users.
### Base URL
```
https://vercel-proxy-henna-eight.vercel.app
```
### 1. Real-time Arrival Info
**Endpoint**
```
GET /api/realtime/{station}?start=0&end=10
```
**Parameters**
| Parameter | Required | Description |
|-----------|----------|-------------|
| station | Yes | Station name (Korean, URL-encoded) |
| start | No | Start index (default: 0) |
| end | No | End index (default: 10) |
| format | No | `formatted` (markdown, default) or `raw` (JSON) |
| lang | No | `ko` (default) or `en` |
**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 |
| `isFastTrain` | Fast train flag (1=๊ธํ) |
**Example**
```bash
curl "https://vercel-proxy-henna-eight.vercel.app/api/realtime/๊ฐ๋จ"
```
---
### 2. Station Search
**Endpoint**
```
GET /api/stations?station={name}&start=1&end=10
```
**Parameters**
| Parameter | Required | Description |
|-----------|----------|-------------|
| station | Yes | Station name to search |
| start | No | Start index (default: 1) |
| end | No | End index (default: 10) |
**Response Fields**
| Field | Description |
|-------|-------------|
| `STATION_CD` | Station code |
| `STATION_NM` | Station name |
| `LINE_NUM` | Line name (e.g., "02ํธ์ ") |
| `FR_CODE` | External station code |
**Example**
```bash
curl "https://vercel-proxy-henna-eight.vercel.app/api/stations?station=๊ฐ๋จ"
```
---
### 3. Route Search
**Endpoint**
```
GET /api/route?dptreStnNm={departure}&arvlStnNm={arrival}
```
**Parameters**
| Parameter | Required | Description |
|-----------|----------|-------------|
| dptreStnNm | Yes | Departure station |
| arvlStnNm | Yes | Arrival station |
| searchDt | No | Datetime (yyyy-MM-dd HH:mm:ss) |
| searchType | No | duration / distance / transfer |
| format | No | `formatted` (markdown, default) or `raw` (JSON) |
| lang | No | `ko` (default) or `en` |
**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 |
**Example**
```bash
curl "https://vercel-proxy-henna-eight.vercel.app/api/route?dptreStnNm=์ ๋๋ฆผ&arvlStnNm=์์ธ์ญ"
```
---
### 4. Service Alerts
**Endpoint**
```
GET /api/alerts?pageNo=1&numOfRows=10&format=enhanced
```
**Parameters**
| Parameter | Required | Description |
|-----------|----------|-------------|
| pageNo | No | Page number (default: 1) |
| numOfRows | No | Results per page (default: 10) |
| lineNm | No | Filter by line |
| format | No | `default` or `enhanced` (structured response) |
**Response Fields (Default)**
| Field | Description |
|-------|-------------|
| `ntceNo` | Notice number |
| `ntceSj` | Notice title |
| `ntceCn` | Notice content |
| `lineNm` | Line name |
| `regDt` | Registration date |
**Response Fields (Enhanced)**
| Field | Description |
|-------|-------------|
| `summary.delayedLines` | Lines with delays |
| `summary.suspendedLines` | Lines with service suspended |
| `summary.normalLines` | Lines operating normally |
| `alerts[].lineName` | Line name (Korean) |
| `alerts[].lineNameEn` | Line name (English) |
| `alerts[].status` | `normal`, `delayed`, or `suspended` |
| `alerts[].severity` | `low`, `medium`, or `high` |
| `alerts[].title` | Alert title |
**Example**
```bash
# Default format
curl "https://vercel-proxy-henna-eight.vercel.app/api/alerts"
# Enhanced format with status summary
curl "https://vercel-proxy-henna-eight.vercel.app/api/alerts?format=enhanced"
```
---
### 5. Last Train Time
> **์ฐธ๊ณ :** ์ด API๋ ์ฃผ์ ์ญ 77๊ฐ์ ๋ง์ฐจ ์๊ฐ์ ์ ์ ๋ฐ์ดํฐ๋ก ์ ๊ณตํฉ๋๋ค.
> ์์ธ๊ตํต๊ณต์ฌ 2025๋
1์ ๊ธฐ์ค ๋ฐ์ดํฐ์
๋๋ค.
>
> **์ง์ ์ญ (77๊ฐ):**
> ๊ฐ์ฐ๋์งํธ๋จ์ง, ๊ฐ๋จ, ๊ฐ๋จ๊ตฌ์ฒญ, ๊ฐ๋ณ, ๊ฑด๋์
๊ตฌ, ๊ฒฝ๋ณต๊ถ, ๊ณ ์ํฐ๋ฏธ๋, ๊ณต๋, ๊ด๋๋ฃจ, ๊ดํ๋ฌธ, ๊ต๋, ๊ตฌ๋ก, ๊ตฐ์, ๊นํฌ๊ณตํญ, ๋
ธ๋์ง, ๋น์ฐ, ๋๋ฆผ, ๋๋๋ฌธ, ๋๋๋ฌธ์ญ์ฌ๋ฌธํ๊ณต์, ๋์งํธ๋ฏธ๋์ด์ํฐ, ๋์ฌ, ๋งํฌ๊ตฌ์ฒญ, ๋ช
๋, ๋ชจ๋, ๋ชฝ์ดํ ์ฑ, ๋ณต์ , ๋ถ๊ด, ์ฌ๊ฐ์ , ์ฌ๋น, ์ผ๊ฐ์ง, ์ผ์ฑ, ์๋ด, ์์ธ๋์
๊ตฌ, ์์ธ์ญ, ์ ๋ฆ, ์ฑ์, ์์ , ์์ฒญ, ์ ๋
ผํ, ์ ๋น, ์ ๋๋ฆผ, ์ ์ฌ, ์ ์ด, ์๊ตญ, ์๊ตฌ์ , ์ฝ์, ์์ฌ, ์ฌ์๋, ์ญ์ผ, ์ฐ์ ๋ด, ์๋ฑํฌ, ์ฅ์, ์ฌ๋ฆผํฝ๊ณต์, ์์ญ๋ฆฌ, ์ฉ์ฐ, ์์ง๋ก3๊ฐ, ์์ง๋ก4๊ฐ, ์์ง๋ก์
๊ตฌ, ์์, ์ด๋, ์ด์ด, ์ดํ์, ์ธ์ฒ๊ณตํญ1ํฐ๋ฏธ๋, ์ธ์ฒ๊ณตํญ2ํฐ๋ฏธ๋, ์ ์ค, ์ ์, ์ข
๊ฐ, ์ข
๋ก3๊ฐ, ์ข
ํฉ์ด๋์ฅ, ์ฒํธ, ์ฒญ๋ด, ์ถฉ๋ฌด๋ก, ํ๊ต, ํฉ์ , ํํ, ํ๋์
๊ตฌ, ํจ์ฐฝ๊ณต์์
**Endpoint**
```
GET /api/last-train/{station}?direction=up&weekType=1
```
**Parameters**
| Parameter | Required | Description |
|-----------|----------|-------------|
| station | Yes | Station name (Korean or English) |
| direction | No | `up`, `down`, or `all` (default: all) |
| weekType | No | `1`=Weekday, `2`=Saturday, `3`=Sunday/Holiday (default: auto) |
**Response Fields**
| Field | Description |
|-------|-------------|
| `station` | Station name (Korean) |
| `stationEn` | Station name (English) |
| `lastTrains[].direction` | Direction (Korean) |
| `lastTrains[].directionEn` | Direction (English) |
| `lastTrains[].time` | Last train time (HH:MM) |
| `lastTrains[].weekType` | Day type (Korean) |
| `lastTrains[].weekTypeEn` | Day type (English) |
| `lastTrains[].line` | Line name |
| `lastTrains[].lineEn` | Line name (English) |
| `lastTrains[].destination` | Final destination |
| `lastTrains[].destinationEn` | Destination (English) |
**Example**
```bash
# Auto-detect day type
curl "https://vercel-proxy-henna-eight.vercel.app/api/last-train/ํ๋์
๊ตฌ"
# English station name
curl "https://vercel-proxy-henna-eight.vercel.app/api/last-train/Hongdae"
# Specific direction and day
curl "https://vercel-proxy-henna-eight.vercel.app/api/last-train/๊ฐ๋จ?direction=up&weekType=1"
```
---
### 6. Exit Information
> **์ฐธ๊ณ :** ์ด API๋ ์ฃผ์ ์ญ 77๊ฐ์ ์ถ๊ตฌ ์ ๋ณด๋ฅผ ์ ์ ๋ฐ์ดํฐ๋ก ์ ๊ณตํฉ๋๋ค.
>
> **์ง์ ์ญ (77๊ฐ):**
> ๊ฐ์ฐ๋์งํธ๋จ์ง, ๊ฐ๋จ, ๊ฐ๋จ๊ตฌ์ฒญ, ๊ฐ๋ณ, ๊ฑด๋์
๊ตฌ, ๊ฒฝ๋ณต๊ถ, ๊ณ ์ํฐ๋ฏธ๋, ๊ณต๋, ๊ด๋๋ฃจ, ๊ดํ๋ฌธ, ๊ต๋, ๊ตฌ๋ก, ๊ตฐ์, ๊นํฌ๊ณตํญ, ๋
ธ๋์ง, ๋น์ฐ, ๋๋ฆผ, ๋๋๋ฌธ, ๋๋๋ฌธ์ญ์ฌ๋ฌธํ๊ณต์, ๋์งํธ๋ฏธ๋์ด์ํฐ, ๋์ฌ, ๋งํฌ๊ตฌ์ฒญ, ๋ช
๋, ๋ชจ๋, ๋ชฝ์ดํ ์ฑ, ๋ณต์ , ๋ถ๊ด, ์ฌ๊ฐ์ , ์ฌ๋น, ์ผ๊ฐ์ง, ์ผ์ฑ, ์๋ด, ์์ธ๋์
๊ตฌ, ์์ธ์ญ, ์ ๋ฆ, ์ฑ์, ์์ , ์์ฒญ, ์ ๋
ผํ, ์ ๋น, ์ ๋๋ฆผ, ์ ์ฌ, ์ ์ด, ์๊ตญ, ์๊ตฌ์ , ์ฝ์, ์์ฌ, ์ฌ์๋, ์ญ์ผ, ์ฐ์ ๋ด, ์๋ฑํฌ, ์ฅ์, ์ฌ๋ฆผํฝ๊ณต์, ์์ญ๋ฆฌ, ์ฉ์ฐ, ์์ง๋ก3๊ฐ, ์์ง๋ก4๊ฐ, ์์ง๋ก์
๊ตฌ, ์์, ์ด๋, ์ด์ด, ์ดํ์, ์ธ์ฒ๊ณตํญ1ํฐ๋ฏธ๋, ์ธ์ฒ๊ณตํญ2ํฐ๋ฏธ๋, ์ ์ค, ์ ์, ์ข
๊ฐ, ์ข
๋ก3๊ฐ, ์ข
ํฉ์ด๋์ฅ, ์ฒํธ, ์ฒญ๋ด, ์ถฉ๋ฌด๋ก, ํ๊ต, ํฉ์ , ํํ, ํ๋์
๊ตฌ, ํจ์ฐฝ๊ณต์์
**Endpoint**
```
GET /api/exits/{station}
```
**Parameters**
| Parameter | Require
... (truncated)
communication
By
Comments
Sign in to leave a comment