Rome2Rio

How to get fromYogyakarta to Surabayaby train, bus, car, taxi, or shuttle

Find Transport to Surabaya

See all options

There are 5 ways to get from Yogyakarta to Surabaya by train, bus, car, taxi, or shuttle

Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.

  1. Train

    best
    1. Take the train from Yogyakarta to Surabaya Gubengtrain train Sancaka / ...
    4h
    Rp 180,000–330,000
  2. Bus

    cheapest
    1. Take the bus from Yogyakarta Giwandan to Terminal Purabayabus bus
    7h 18m
    Rp 131,000–455,000
  3. Drive  322.3 km

    1. Drive from Yogyakarta to Surabayacar car 322.3 km
    3h 39m
    Rp 638,720–922,595
  4. Taxi

    1. Take the taxi from Yogyakarta to Surabayataxi taxi 322.3 km
    3h 39m
    Rp 1,900,000–2,300,000
  5. Shuttle

    1. Take a shuttle bus from Yogyakarta to Surabayashuttle bus Surabaya
    3h
    Rp 200,000–250,000

Yogyakarta to Surabaya by train

Calendar63Weekly Trains
Duration4hAverage Duration
TicketRp 180,000Cheapest Price
See schedules

Comparing Your Travel Options

What companies run services between Yogyakarta, Indonesia and Surabaya, Indonesia?

Kereta API operates a train from Yogyakarta to Surabaya Gubeng every 3 hours. Tickets cost Rp 180,000–330,000 and the journey takes 4h. Alternatively, Eka Cepat operates a bus from Yogyakarta Giwandan to Terminal Purabaya 3 times a day. Tickets cost Rp 120,000–140,000 and the journey takes 6h.

Train operators
Bus operators
Other operators

Want to know more about travelling around the world?

Rome2Rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including Bali: What to do if Mount Agung erupts, French strikes 2018: What are my alternative transport options?, and How to get from JFK to New York City - to help you get the most out of your next trip.

Booking & Getting There