Japan Rail Scraper - JR, Shinkansen, Metro Timetables avatar

Japan Rail Scraper - JR, Shinkansen, Metro Timetables

Pricing

Pay per event

Go to Apify Store
Japan Rail Scraper - JR, Shinkansen, Metro Timetables

Japan Rail Scraper - JR, Shinkansen, Metro Timetables

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.

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

5 days ago

Last modified

Share

Japan Rail Timetable Scraper - JR, Shinkansen & Metro

Scrape Japan rail timetables and fares from Yahoo! Transit. Returns ranked itineraries, segment-by-segment routing, IC-card fares, transfer counts, train type, and JR Pass eligibility for the JR Group, every Shinkansen line, Tokyo Metro, Toei, and the major private railways — which is more Japanese rail data than any single Apify actor has ever indexed.


Japan Rail Timetable Scraper Features

  • Scrapes A-to-B journey itineraries with up to three ranked routes per query.
  • Returns scheduled departure boards by station and line.
  • Covers JR East, JR West, JR Central, JR Kyushu, JR Hokkaido, and JR Shikoku — every Shinkansen included.
  • Indexes Tokyo Metro, Toei Subway, and the major private rail operators (Odakyu, Tokyu, Keio, Seibu, Tobu, Keikyu, Hankyu, Hanshin, Kintetsu, Meitetsu, Nankai, Sotetsu).
  • Splits IC-card fare from base fare and surfaces transfer counts. Most aggregators don't.
  • Resolves romaji station names for ~80 highest-traffic hubs (every Shinkansen station, every Tokyo / Osaka / Kyoto major). Accepts kanji or hiragana for full coverage.
  • Classifies train type — Shinkansen, Limited Express, Express, Rapid, Local — and named services (Nozomi, Hikari, Kodama, Sakura, Tsubame, Hayabusa, Komachi, Narita Express, Romancecar).
  • Computes JR Pass eligibility per route, correctly excluding Nozomi, Mizuho, and Hayabusa.
  • Pure HTML scraping — no Playwright, no captcha solving.

Who Uses Japan Rail Data?

  • Inbound-tourism platforms — Surface accurate timetables and fares to visitors planning trips. Japan is on track for 60M annual tourists by 2030, and most of them ride trains.
  • JR Pass calculators — Decide whether the 7/14/21-day pass beats individual tickets. Now you have the data to actually compare.
  • Travel aggregators — Feed clean rail data into multi-modal trip planners alongside flights and hotels.
  • MaaS startups — Build first-mile/last-mile services that integrate with the world's densest rail network.
  • Logistics & freight planners — Track passenger schedules to align operations around peak rail traffic.
  • Researchers & data journalists — Hyperdia shut down public access in 2022. There hasn't been a clean replacement until now.

How Japan Rail Timetable Scraper Works

  1. Pick a mode — journey_search for A-to-B itineraries, station_board for line-by-line departures from a single station.
  2. Enter origin and destination station names in kanji, hiragana, or romaji. The scraper resolves romaji for major hubs automatically; for smaller stations, paste the kanji.
  3. Optionally specify date and time. Empty values default to 24 hours ahead at 09:00 JST, which is a reasonable starting point.
  4. Run the actor. It hits Yahoo! Transit, parses the server-rendered HTML, and returns up to maxItems records.

Input

{
"mode": "journey_search",
"origin": "東京",
"destination": "京都",
"date": "",
"time": "",
"includeShinkansen": true,
"maxItems": 10
}
FieldTypeDefaultDescription
modestringjourney_searchEither journey_search (A-to-B itineraries) or station_board (departures from a single station).
originstring東京Origin station. Kanji, hiragana, or romaji. Used in journey_search mode.
destinationstring京都Destination station. Same encoding rules as origin.
stationstring東京Station for station_board mode. Same encoding rules.
datestring""YYYY-MM-DD. Empty defaults to 24h ahead.
timestring""HH:MM (24h). Empty defaults to 09:00.
includeShinkansenbooleantrueAllow Shinkansen segments in journey results.
maxItemsinteger10Cap on output rows (1-500).
proxyConfigurationobjectApify residential, JPOverride only if you have a reason.

Station Board Example

{
"mode": "station_board",
"station": "東京",
"maxItems": 50
}

Returns up to 50 scheduled departures from Tokyo Station, walking each major line's timetable.


Japan Rail Timetable Scraper Output Fields

Journey Search Mode

{
"mode": "journey_search",
"route_id": "2026-04-26-1",
"origin_station": "東京",
"origin_station_en": "Tokyo",
"origin_line": "JR東海道本線",
"destination_station": "京都",
"destination_station_en": "Kyoto",
"destination_line": "JR琵琶湖線新快速",
"departure_time": "2026-04-26T09:20:00",
"arrival_time": "2026-04-26T17:42:00",
"duration_minutes": 502,
"transfers": 4,
"segments": [
"JR東海道本線 (熱海行) | dep 09:20 東京 -> arr 11:09 熱海 | platform 10->2",
"JR東海道本線 (当駅始発浜松行) | dep 11:14 熱海 -> arr 13:44 浜松 | platform 3->4",
"JR東海道本線 (当駅始発豊橋行) | dep 13:46 浜松 -> arr 14:21 豊橋 | platform 3->8",
"JR東海道本線快速 (当駅始発米原行) | dep 14:32 豊橋 -> arr 16:39 米原 | platform 5->2",
"JR琵琶湖線新快速 (播州赤穂行) | dep 16:47 米原 -> arr 17:42 京都 | platform 3->5"
],
"total_fare_yen": 8470,
"ic_card_fare_yen": 8470,
"seat_fee_yen": 0,
"distance_km": 513.6,
"train_type": "Rapid",
"train_name": "",
"operator": "JR",
"operator_type": "jr",
"is_shinkansen": false,
"jr_pass_eligible": true,
"source_url": "https://transit.yahoo.co.jp/search/result?...",
"scraped_at": "2026-04-25T14:13:08.073Z"
}
FieldTypeDescription
modestringjourney_search for itinerary records.
route_idstringRoute identifier within the result set (1, 2, 3 prefixed by date).
origin_stationstringOrigin station in kanji.
origin_station_enstringOrigin station romanised when available.
origin_linestringFirst-leg line name.
destination_stationstringDestination in kanji.
destination_station_enstringDestination romanised when available.
destination_linestringLast-leg line name.
departure_timestringScheduled departure (ISO8601 JST).
arrival_timestringScheduled arrival (ISO8601 JST).
duration_minutesintegerTotal journey duration.
transfersintegerNumber of train transfers.
segmentsarrayPer-leg summary: line, destination, departure, arrival, platforms.
total_fare_yenintegerTotal fare in JPY (IC-priority).
ic_card_fare_yenintegerIC-card (Suica/Pasmo) fare.
seat_fee_yenintegerReserved-seat / Shinkansen supplement. 0 unless the page surfaces it.
distance_kmnumberTotal distance.
train_typestringHighest-tier type: Shinkansen, Limited Express, Express, Rapid, Local.
train_namestringNamed service (Nozomi, Hikari, Narita Express, etc.) or empty.
operatorstringPrimary operator name.
operator_typestringOne of: jr_shinkansen, jr, metro, private_rail, monorail, new_transit, other.
is_shinkansenbooleanTrue if any segment is on a Shinkansen line.
jr_pass_eligiblebooleanTrue if every JR/Shinkansen segment is covered by the nationwide JR Pass.
source_urlstringYahoo! Transit URL the row was extracted from.
scraped_atstringISO8601 timestamp.

Station Board Mode

{
"mode": "station_board",
"route_id": "16646",
"origin_station": "東京",
"origin_station_en": "Tokyo",
"origin_line": "JR東海道新幹線",
"destination_station": "博",
"destination_line": "JR東海道新幹線",
"departure_time": "2026-04-25T06:00:00",
"train_type": "Shinkansen",
"train_name": "",
"operator": "JR Central",
"operator_type": "jr_shinkansen",
"is_shinkansen": true,
"jr_pass_eligible": true,
"direction": "JR東海道新幹線 新大阪・博多方面",
"station_id": "22828",
"source_url": "https://transit.yahoo.co.jp/timetable/22828/1341"
}

The same field set as journey mode, with direction and station_id populated. Fare, distance, and transfer fields are zero in this mode — they don't apply to single-departure rows.


FAQ

How do I scrape Japan rail timetables?

Japan Rail Timetable Scraper hits Yahoo! Transit, the most stable English-friendly back-end for Japanese rail data. Pick journey_search to get A-to-B itineraries between two stations, or station_board to walk every line departing from one station. Enter station names in kanji, hiragana, or (for major hubs) romaji.

How much does Japan Rail Timetable Scraper cost to run?

Japan Rail Timetable Scraper uses pay-per-event pricing. Each run costs $0.10 to start plus $0.001 per record returned. A full journey-search query typically returns 3 records, putting it well under a cent in record charges.

Does this scraper work without proxies?

Japan Rail Timetable Scraper runs without proxies in most cases. Yahoo! Transit doesn't gate the public route planner behind a captcha or WAF. The default proxy configuration is Apify Residential JP as a defensive measure — flip useApifyProxy off if you'd prefer no proxy at all.

Can I get Shinkansen seat fees and reserved-seat supplements?

Japan Rail Timetable Scraper surfaces the seat-fee field but does not always populate it. Yahoo! Transit's summary view reports the IC-priority fare; the per-route detail page (the next planned enhancement) is where 特急料金 / 新幹線料金 lives. For now, expect seat_fee_yen: 0 on most rows — open an issue if you need it now.

How do I look up a station that's not in the romaji map?

Use the kanji or hiragana name. The actor passes any non-ASCII input directly to Yahoo! Transit, which understands every Japanese station. Romaji shortcuts only exist for the ~80 highest-traffic hubs (every Shinkansen station plus major Tokyo / Osaka / Kyoto / Sapporo / Fukuoka stations) since maintaining a full romaji index would be a separate project.

Is JR Pass eligibility accurate?

Japan Rail Timetable Scraper sets jr_pass_eligible: true only when every segment runs on a JR-operated line and no segment uses a Nozomi, Mizuho, or Hayabusa service — which is exactly the rule the official JR Pass terms encode. Mixed itineraries that cross onto private rail return false, as they should.


Need More Features?

Need per-segment seat fees, a regional JR Pass eligibility breakdown, or a bilingual station name on every row? File an issue or get in touch.

Why Use Japan Rail Timetable Scraper?

  • No supply on Apify. Hyperdia died in 2022 and Navitime's enterprise API runs ¥200,000+/month. This is the gap.
  • One actor, every operator. JR Group, all Shinkansen, Tokyo Metro, Toei, and a long list of private rail operators in a single, consistent schema. You don't have to stitch together five sources.
  • Clean output. Returns structured JSON with split fares, segment routing, and JR Pass logic baked in — so you spend less time parsing Japanese rail conventions and more time using the data.