OrbTop

Japan Highway Bus Scraper — Timetables & Fares (Kosokubus)

TRAVELBUSINESS

Japan Highway Bus Scraper (Kosokubus)

Extracts Japanese intercity highway-bus timetables and fares from Kosokubus.com — Japan's largest bus booking aggregator. Covers Willer Express, all six JR Bus regional subsidiaries (Kanto, Tohoku, Chubu, West, Shikoku, Kyushu), Sakura Kotsu, Keio Bus, Odakyu City Bus, Meitetsu Bus, Kintetsu Bus, Hankyu Bus, and 30+ other operators. Returns structured records per route with seat class, amenities, overnight flag, fares in JPY, and live availability.

Japan Highway Bus Scraper Features

  • Search any origin-to-destination prefecture pair using 5-digit prefecture codes (e.g. 00013 for Tokyo, 00027 for Osaka)
  • Leave origin/destination blank to crawl all major corridors automatically
  • Filter by overnight-only service, seat class (4-row standard, 3-row relax, 2-row executive, Cocoon pod), or female-only seating requirement
  • Extracts 26 fields per route including operator name (Japanese + English romaji), all boarding/alighting stops, departure/arrival times, journey duration, fares, amenities, and direct booking URLs
  • Cap total results with maxItems to retrieve a quick sample without crawling full corridors
  • Runs on residential Japanese proxy for reliable geo-consistent results

Who Uses Japanese Bus Timetable Data?

  • Travel aggregators — build or update Japan bus search engines with structured route, fare, and availability data
  • Inbound tourism apps — show visitors affordable highway-bus alternatives to Shinkansen, with seat-class breakdowns and overnight options
  • JR Pass calculators — surface competing bus fares on covered corridors to help travelers decide whether a pass makes sense
  • Transport researchers — map intercity bus networks, track fare changes, or analyse operator coverage by prefecture pair
  • Price monitoring tools — alert on fare changes or availability drops for specific corridors

How Japan Highway Bus Scraper Works

  1. You supply origin and destination prefecture codes (or leave them blank for major corridors).
  2. The scraper fetches the Kosokubus bus-list page for each corridor — a fully server-rendered HTML page listing all routes, no JavaScript needed.
  3. Each route card is parsed: operator, stops, seat class, amenities, fares, and availability are extracted and saved as a structured record. Filters (overnight, seat class, female-only) are applied before saving. The scraper stops when maxItems is reached.

Input

{
  "origin": "00013",
  "destination": "00027",
  "overnightOnly": false,
  "seatClass": "any",
  "femaleOnly": false,
  "maxItems": 10
}
Field Type Default Description
origin String (blank) Origin prefecture code. 00013 = Tokyo, 00027 = Osaka, 00026 = Kyoto. Leave blank for major corridors.
destination String (blank) Destination prefecture code. Leave blank to crawl all destinations from the given origin.
overnightOnly Boolean false When true, returns only overnight services (depart evening, arrive morning).
seatClass String "any" Minimum seat class: any, 4row, 3row, 2row, or pod (Cocoon).
femaleOnly Boolean false When true, returns only routes with a female-only seating area.
maxItems Integer 10 Maximum route records to return.
proxyConfiguration Object Residential JP Apify proxy config. Residential Japan proxy is strongly recommended for geo-consistent results.

Tokyo to Osaka — First 5 Routes

{
  "origin": "00013",
  "destination": "00027",
  "maxItems": 5
}

Overnight Buses Only — Tokyo to Nagoya

{
  "origin": "00013",
  "destination": "00023",
  "overnightOnly": true,
  "maxItems": 20
}

All Routes from Osaka — No Destination Filter

{
  "origin": "00027",
  "maxItems": 50
}

Japan Highway Bus Scraper Output Fields

{
  "trip_id": "express-dream-goto",
  "operator": "ジェイアールバス関東",
  "operator_en": "JR Bus Kanto",
  "route_name": "ドリームなごや号",
  "origin_terminal": "東京駅八重洲南口",
  "origin_terminal_en": "",
  "origin_city": "東京",
  "destination_terminal": "名古屋駅新幹線口",
  "destination_terminal_en": "",
  "destination_city": "愛知",
  "departure_time": "23:00",
  "arrival_time": "06:30",
  "duration_minutes": 450,
  "is_overnight": true,
  "seat_class": "4-row standard",
  "seats_per_row": 4,
  "amenities": ["outlet", "toilet"],
  "female_only_seats": false,
  "fare_yen": 3800,
  "fare_yen_max": 5200,
  "seats_available": 12,
  "has_toilet": true,
  "stops": ["東京駅八重洲南口 (23:00)", "浜松 (02:45)", "名古屋駅新幹線口 (06:30)"],
  "booking_url": "https://www.kosokubus.com/bus_detail_rosen/express-dream-goto/",
  "scrape_url": "https://www.kosokubus.com/bus_list/00013/00023/"
}
Field Type Description
trip_id String Internal route code from Kosokubus
operator String Operator name in Japanese
operator_en String Operator name in English / romaji
route_name String Marketed route name (Japanese)
origin_terminal String First boarding stop name (Japanese)
origin_terminal_en String First boarding stop name (romaji) — populated when available
origin_city String Origin prefecture name
destination_terminal String Final alighting stop name (Japanese)
destination_terminal_en String Final alighting stop name (romaji) — populated when available
destination_city String Destination prefecture name
departure_time String Scheduled departure time in JST (HH:MM)
arrival_time String Scheduled arrival time in JST (HH:MM)
duration_minutes Integer Total journey duration in minutes
is_overnight Boolean true if this is an overnight service
seat_class String One of: 4-row standard, 3-row relax, 2-row executive, Cocoon pod
seats_per_row Integer Number of seats per row (2, 3, or 4)
amenities Array Amenities: wifi, outlet, toilet, blanket, slippers, reading_light, curtain_divider, female_only_area
female_only_seats Boolean true if a female-only seating area is available
fare_yen Integer Minimum fare in JPY
fare_yen_max Integer Maximum fare in JPY when a range is shown
seats_available Integer Available seats at scrape time
has_toilet Boolean true if toilet is on board
stops Array All intermediate stops with departure times: "Stop Name (HH:MM)"
booking_url String Direct booking detail URL on kosokubus.com
scrape_url String Source bus-list page URL

Prefecture Code Reference

The most common origin/destination codes:

Code Prefecture
00013 Tokyo (東京)
00027 Osaka (大阪)
00026 Kyoto (京都)
00023 Aichi / Nagoya (愛知)
00040 Fukuoka (福岡)
00014 Kanagawa / Yokohama (神奈川)
00011 Saitama (埼玉)
00012 Chiba (千葉)
00028 Hyogo / Kobe (兵庫)
00034 Hiroshima (広島)

Codes follow the pattern 00001 (Hokkaido) through 00047 (Okinawa).

FAQ

How many routes can this scraper collect? Kosokubus lists all routes on a single corridor page with no pagination — typically 1 to 20 routes per prefecture pair. Active corridor count across all pairs is estimated at 1,000 to 3,000 routes nationwide. A full multi-corridor run returns proportionally more.

Does it handle all operators? The scraper extracts whichever operators Kosokubus lists for a given corridor. Willer Express, all six JR Bus subsidiaries, Sakura Kotsu, Keio Bus, Odakyu City Bus, Meitetsu Bus, Kintetsu Bus, and Hankyu Bus all appear in typical runs.

How fresh is the data? Timetable data (routes, stops, durations) is static and updated seasonally. Availability (seats remaining) and fares change daily — run the scraper on your schedule to keep those fields current.

What does it cost to run? Each run has a $0.10 start fee plus $0.001 per route record. A 100-route run costs roughly $0.20. A full 1,000-route corpus costs around $1.10.

Why do I need a Japanese residential proxy? Kosokubus returns geo-consistent content to Japanese IPs. Without a JP proxy, some corridors may return empty results or slightly different data. The scraper defaults to Apify residential proxy with country set to Japan.

Need More Features?

Need custom filters, additional fields, or a different target site? File a request or get in touch.

Why Use Japan Highway Bus Scraper?

  • 26 structured fields per route — operator, stops, seat class, amenities, fares, and availability in one clean record, ready for import without manual cleanup
  • All major operators — Willer, JR Bus (all 6 regionals), Sakura Kotsu, Keio, Odakyu, Meitetsu, and 30+ more on a single platform
  • Flexible scoping — single corridor, all destinations from one origin, or full major-corridor sweep, all controlled from the same input
  • No JavaScript rendering needed — Kosokubus serves full HTML, so the scraper is fast and lightweight on 256 MB memory