VOOZH about

URL: https://apify.com/jungle_synthesizer/south-korea-rail-transit-scraper

⇱ Seoul Metro, AREX, Korail Realtime Rail Scraper Β· Apify


πŸ‘ South Korea Rail Scraper - Seoul Metro, AREX, Korail Commuter avatar

South Korea Rail Scraper - Seoul Metro, AREX, Korail Commuter

Pricing

Pay per event

Go to Apify Store

South Korea Rail Scraper - Seoul Metro, AREX, Korail Commuter

Realtime Seoul Metro Lines 1-9, AREX airport express, and Korail commuter rail (Gyeongui-Jungang, Suin-Bundang, Gyeongchun, Seohae) plus Shinbundang and Ui-Sinseol. Two modes: live train position or station arrival board. Bilingual Korean/English names, KR Pass eligibility flag.

Pricing

Pay per event

Rating

0.0

(0)

Developer

πŸ‘ BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Categories

Share

South Korea Rail Transit Scraper β€” Seoul Subway API & Realtime Train Arrivals

Scrape realtime South Korean rail and transit data from the Seoul Open Data Plaza public feed β€” a Seoul subway API for live train positions and Seoul metro arrival times. Covers Seoul Metro Lines 1-9, AREX airport express, Korail commuter lines (Gyeongui-Jungang, Suin-Bundang, Gyeongchun, Seohae), Shinbundang, and Ui-Sinseol β€” the rail network that moves roughly 8 million passengers a day.


South Korea Rail Transit Scraper Features

  • Returns realtime train positions across 16 lines. One record per running train, with current station and terminus.
  • Pulls live arrival boards for any station you can name. Korean (강남) or romaji (Gangnam) both resolve.
  • Two operating modes β€” realtimePosition (where every train is right now) and realtimeArrival (the departure board).
  • Bilingual output. Every station has both a Korean (current_station_ko) and romanised (current_station_en) field.
  • Flags Korea Rail Pass eligibility per line. KR Pass-curious tourists asked for this.
  • Distinguishes AREX Express vs All-Stop services automatically.
  • Surfaces direction (inbound/outbound, plus Line 2's outer/inner loop quirk), train status, last-train flag, and arrival countdown in seconds.
  • Pure JSON API β€” no browser, no proxies, no API key. The actor pays nothing in proxy budget.

Who Uses This Seoul Subway & Korail Realtime Data?

  • Travel app developers β€” Build live transit views for K-tourism apps, KR Pass calculators, and Seoul itinerary tools.
  • Travel aggregators β€” Feed Klook, KKday, and Trip.com-style routing engines with live arrival data.
  • Tourism analysts β€” Track passenger flow patterns at major hubs (Seoul Station, Gangnam, Hongdae, Incheon Airport).
  • Logistics teams β€” Monitor airport express service health (AREX) for ground-transport coordination.
  • Researchers β€” Study urban transit dynamics across one of the densest metro networks in the world.

How South Korea Rail Transit Scraper Works

  1. Pick a mode β€” realtimePosition for line-wide train positions, or realtimeArrival for a station departure board.
  2. For position mode, choose an operator filter (any, seoul_metro, arex, korail_commuter, line_1 through line_9). For arrival mode, type the station name in Korean or romaji.
  3. The actor calls the Seoul Open Data sample endpoint for each selected line or station, transforms each row, and writes structured records to the dataset.
  4. The feed updates every few seconds. Two consecutive runs may share rows β€” the actor dedupes within a run by record_id.

Input

{
"mode":"realtimePosition",
"operator":"any",
"maxItems":15
}

Realtime arrival board for one station, romaji input:

{
"mode":"realtimeArrival",
"station":"Gangnam",
"operator":"any",
"maxItems":5
}

Realtime arrival board for multiple stations, Korean input:

{
"mode":"realtimeArrival",
"station":"μ„œμšΈ, 강남, μž μ‹€",
"maxItems":15
}
FieldTypeDefaultDescription
modestringrealtimePositionrealtimePosition (one record per running train) or realtimeArrival (one record per upcoming train at a station).
operatorstringanyFilter by operator/line. Options: any, seoul_metro, arex, korail_commuter, private_rail, shinbundang, ui_sinseol, or line_1 through line_9.
stationstring강남Station name in Korean or romaji. Comma-separated for multiple. Used only by realtimeArrival.
maxItemsinteger15Cap on total records saved across the run. The Seoul feed returns 5 records per call; the actor paginates across selected lines/stations until the cap is hit.
proxyConfigurationobject{useApifyProxy: false}Proxy not required. Seoul Open Data is publicly accessible from anywhere.

South Korea Rail Transit Scraper Output Fields

Position mode (realtimePosition)

{
"record_id":"pos-1001-0492-2026-04-30 21:07:10",
"mode":"realtimePosition",
"operator":"Seoul Metro / Korail",
"line_ko":"1ν˜Έμ„ ",
"line_en":"Line 1",
"line_id":"1001",
"service_type":"metro",
"train_no":"0492",
"train_status":"arrived",
"direction":"inbound",
"current_station_ko":"μ’…λ‘œ3κ°€",
"current_station_en":"Jongno 3-ga",
"current_station_id":"1001000130",
"target_station_ko":"μ²­λŸ‰λ¦¬",
"target_station_en":"Cheongnyangni",
"is_express":false,
"is_last_train":false,
"korea_rail_pass_eligible":true,
"observed_at":"2026-04-30 21:07:10",
"source_url":"http://swopenAPI.seoul.go.kr/api/subway/sample/json/realtimePosition/0/5/1ν˜Έμ„ ",
"scraped_at":"2026-04-30T12:07:58.615Z"
}

Arrival mode (realtimeArrival)

{
"record_id":"arr-1077-16-1077000687-2026-04-30 21:08:13",
"mode":"realtimeArrival",
"operator":"Shinbundang Railroad",
"line_ko":"μ‹ λΆ„λ‹Ήμ„ ",
"line_en":"Shinbundang Line",
"line_id":"1077",
"service_type":"metro",
"train_no":"16",
"train_status":"approaching",
"direction":"inbound",
"current_station_ko":"강남",
"current_station_en":"Gangnam",
"target_station_ko":"신사",
"target_station_en":"Sinsa",
"train_line_label":"신사행 - μ‹ λ…Όν˜„λ°©λ©΄",
"arrival_message":"강남 μ§„μž…",
"arrival_seconds":0,
"is_express":false,
"is_last_train":false,
"korea_rail_pass_eligible":false,
"observed_at":"2026-04-30 21:08:13",
"source_url":"http://swopenAPI.seoul.go.kr/api/subway/sample/json/realtimeStationArrival/0/5/강남",
"scraped_at":"2026-04-30T12:08:17.802Z"
}
FieldTypeDescription
record_idstringStable identifier built from mode, line ID, train number, station ID, and observation timestamp. Used for in-run deduplication.
modestringrealtimePosition or realtimeArrival.
operatorstringOperator brand: Seoul Metro, Korail, AREX, Shinbundang Railroad, Ui Sinseol Light Rail, Gimpo Goldline, or shared "Seoul Metro / Korail" for Lines 1, 3, and 4.
line_kostringLine name in Korean (1ν˜Έμ„ , 곡항철도, μˆ˜μΈλΆ„λ‹Ήμ„ ).
line_enstringLine name in English (Line 1, AREX (Airport Railroad), Suin-Bundang Line).
line_idstringSeoul Open Data subway code (1001-1009 for Lines 1-9, 1063 Gyeongui-Jungang, 1065 AREX, 1075 Suin-Bundang, 1077 Shinbundang, 1093 Seohae).
service_typestringmetro, commuter, or airport_express.
train_nostringTrain number assigned by the operator. Stable for the day.
train_statusstringPosition mode: approaching, arrived, departed, previous_station_departed. Arrival mode adds in_transit, previous_station, transit_station_arrived.
directionstringinbound, outbound. Line 2 (loop) uses outer_loop and inner_loop because that's how Seoul names them.
current_station_kostringCurrent station in Korean. Position mode: where the train is. Arrival mode: the station you queried.
current_station_enstringCurrent station romanised.
current_station_idstringStation ID (10-digit, line-prefixed).
target_station_kostringTrain terminus in Korean.
target_station_enstringTrain terminus romanised.
train_line_labelstringArrival mode only. Operator's free-text route label, e.g. "신사행 - μ‹ λ…Όν˜„λ°©λ©΄" or "Express to Incheon Airport T2".
arrival_messagestringArrival mode only. Operator's free-text status, e.g. "강남 μ§„μž…" or "[2]번째 μ „μ—­".
arrival_secondsintegerArrival mode only. Estimated seconds until the train reaches the queried station. 0 if it's already there.
is_expressbooleanTrue for Express (κΈ‰ν–‰/직톡) services. AREX uses this to mark the non-stop Express; Line 9 uses it for timetabled express trains.
is_last_trainbooleanTrue for the last service of the day on the line.
korea_rail_pass_eligiblebooleanTrue for Korail-operated services (Lines 1/3/4 outer sections, Gyeongui-Jungang, Suin-Bundang, Gyeongchun, Seohae, AREX). False for Seoul Metro Lines 2/5/6/7/8/9, Shinbundang, Ui-Sinseol, Gimpo Goldline.
observed_atstringKST timestamp when the upstream feed recorded this position/arrival, format YYYY-MM-DD HH:MM:SS.
source_urlstringSeoul Open Data API URL that produced the row.
scraped_atstringISO-8601 UTC timestamp when the row was written to the dataset.

FAQ

How do I scrape Seoul Metro realtime data?

The South Korea Rail Transit Scraper queries the Seoul Open Data Plaza public feed for live train positions and station arrival boards. Pick realtimePosition mode for line-wide views or realtimeArrival for a station's departure board, set an operator filter, and run.

What lines does the South Korea Rail Transit Scraper cover?

The scraper covers Seoul Metro Lines 1-9, AREX (Airport Railroad), Korail commuter rail (Gyeongui-Jungang, Suin-Bundang, Gyeongchun, Seohae), Shinbundang, and Ui-Sinseol LRT. Sixteen lines total β€” the entire Seoul Metropolitan Subway and connected rail network.

How do I get Seoul subway arrival times by station?

Use realtimeArrival mode and pass one or more station names in station (Korean like 강남 or romaji like Gangnam, comma-separated for several). The actor returns the live departure board for each station β€” the upcoming trains, their terminus, direction, and an arrival_seconds countdown until each reaches the station you queried.

Does the South Korea Rail Transit Scraper need proxies or an API key?

No. Seoul Open Data is publicly accessible from anywhere on the internet, no auth and no key. The actor consumes zero proxy budget.

Can I get KORAIL intercity (KTX) or SRT data?

Not in v1. KORAIL's reservation site (korail.com) returns an anti-automation challenge ("macro_err1") to direct HTTP requests. SRT's selectScheduleList.do endpoint returns an empty form shell instead of schedule rows. Both targets need a browser-automation bypass with a Korean residential proxy. Tracking as a v2 feature β€” file a request if you need it.

How fresh is the data?

The Seoul feed updates every few seconds. Two consecutive runs of the actor will return mostly the same trains; the actor dedupes within a run by record_id. For continuous monitoring, run the actor on a schedule and keep the last few minutes of records.

What's the Korea Rail Pass eligibility flag for?

The KR Pass is the Korean equivalent of the JR Pass β€” a tourist rail pass that covers Korail-operated services. The korea_rail_pass_eligible flag is set per line: true for Korail commuter lines and Lines 1/3/4 (which Korail co-operates with Seoul Metro), false for the rest. It does not cover SRT high-speed rail.


Need More Features?

Want KORAIL intercity (KTX/ITX/Mugunghwa), SRT, or one of the regional metros (Busan, Daegu, Incheon, Gwangju, Daejeon)? File an issue with what you need.

Why Use the South Korea Rail Transit Scraper?

  • Zero infrastructure cost β€” Pure JSON API, no proxy budget, no browser dependency. The cheapest possible Korean rail feed to run.
  • Bilingual output β€” Every station name comes in both Korean and romanised form. Saves you from rolling your own Revised Romanization engine.
  • KR Pass aware β€” Per-line eligibility flag. Few other rail feeds bother to surface this.
  • Sixteen lines, one actor β€” Seoul Metro 1-9, AREX, four Korail commuter lines, plus Shinbundang and Ui-Sinseol. One input, one output schema, no per-operator special-casing.

You might also like

Irish Rail Realtime Scraper

parseforge/irishrail-realtime-scraper

Stream live Irish Rail train movements with train code, public message, direction, status, and last reported location. Filter by Northbound or Southbound to follow commuter and intercity services across Ireland for transit apps, dashboards, or delay analytics.

Irish Rail Scraper - Train Fares & Schedules

studio-amba/irish-rail-scraper

Scrape train schedules, fares, and real-time data from Irish Rail (irishrail.ie). Extract Intercity, DART, Commuter, and Enterprise routes across Ireland. No login required.

Japan Rail Scraper - JR, Shinkansen, Metro Timetables

jungle_synthesizer/japan-rail-timetable-scraper

Scrape Japan rail timetables and fares from Yahoo! Transit. Covers JR Group, every Shinkansen line, Tokyo Metro, Toei, and major private rail (Odakyu, Tokyu, Keio, Hankyu, Kintetsu, etc). Returns IC fare, transfers, segments, train type, JR Pass eligibility. Hyperdia replacement.

πŸ‘ User avatar

BowTiedRaccoon

4

Hong Kong MTR Realtime Scraper

parseforge/hk-mtr-realtime-scraper

Query the official Hong Kong MTR realtime feed for any line and station. Returns line code, station code, direction, destination, platform, and minutes to arrival. Track Tuen Ma, East Rail, Tsuen Wan, Island, and other lines for commuter tools and travel dashboards.

UK National Rail Scraper β€” Live Train Times, Boards & Delays

jungle_synthesizer/national-rail-uk-timetable-scraper

Scrape live UK rail data from National Rail: departure and arrival boards by station, real-time delays, cancellations, platforms, and operator info. Covers GWR, LNER, Avanti, Southern, Thameslink, ScotRail, TfW, Elizabeth line, CrossCountry, Northern, and more.

πŸ‘ User avatar

BowTiedRaccoon

4

SEPTA Train View Scraper

parseforge/septa-train-view-scraper

Stream live SEPTA Regional Rail train positions around Philadelphia with line, train number, origin, destination, current station, and delay minutes. Filter by line such as Paoli or Trenton to power commuter dashboards, alert bots, or transit reliability studies.

MBTA Boston Realtime Vehicles Scraper

parseforge/mbta-realtime-scraper

Track MBTA vehicles across Boston with optional filters on route id like Red, Orange, Blue, Green B, 1, or 66 and on route type covering light rail, subway, commuter rail, bus, or ferry. Useful for transit dashboards, commute apps, transport research, and operational status alerts.

Hong Kong Transit Scraper - MTR, KMB, Citybus, Light Rail

jungle_synthesizer/hong-kong-transit-scraper

Hong Kong public transit data via the official HKSAR open APIs: MTR (10 lines), KMB and Citybus bus networks, and MTR Light Rail. Bilingual English / Traditional Chinese station names, real-time train and bus ETAs, full route catalogues.

πŸ‘ User avatar

BowTiedRaccoon

3

MBTA Boston Live Transit Scraper

parseforge/mbta-transit-scraper

Scrape live data from the MBTA (Massachusetts Bay Transportation Authority): routes, stops, vehicle positions, predictions, and service alerts across subway, commuter rail, bus, and ferry. Filter by mode, route, or stop.

Express Profile Scraper

getdataforme/express-profile-scraper

The Express Profile Scraper extracts detailed product data from Express.com, including titles, prices, ratings, and reviews....