buses.appPerth public transport
331

Perth · bus timetable

Bus 331 Thomas St After Old Northam Rd Craig St After Nichol St

Bus Regular line Operator: Transperth

Line 331 runs between Thomas St After Old Northam Rd and Craig St After Nichol St; on weekdays the first departure is at 08:12 and the last at 15:29, 4 departures a day.

  • Headway~37 min
  • First departure08:12
  • Last departure15:29
  • Average ride~33 min
  • Stops44
  • Departures per day4
  • Route length19.4 km
  • Peak~58 min
  • Off-peak~9 min
  • Saturdaynot running
  • Sundaynot running

Bus of Perth public transport — connects Thomas St After Old Northam Rd and Craig St After Nichol St, with 44 stops per direction.The first departure is at 08:12, the last at 15:29.Departures run every ~37 min, and the ride takes ~33 min on average.

Timetable

Line 331 timetable — on weekdays
081249
0922
1529

Line 331 does not run on Saturdays.

Line 331 does not run on Sundays and holidays.

Changed25.10.2026.
Checked25.10.2026.

Stops

44 stops~33 min in total
  1. Thomas St After Old Northam Rd

    #15206 — Thomas St After Old Northam Rd

    328departure0min
  2. Thomas St After Pennell St

    #15208 — Thomas St After Pennell St

    328+0 min0min
  3. Elliott Rd After Thomas St

    #15196 — Elliott Rd After Thomas St

    328+1 min1min
  4. Elliott Rd After Mathieson Rd

    #15198 — Elliott Rd After Mathieson Rd

    328+1 min2min
  5. Elliott Rd After Sime Rd

    #15199 — Elliott Rd After Sime Rd

    328+1 min3min
  6. Elliott Rd Before Silia Rtt

    #26357 — Elliott Rd Before Silia Rtt

    328+1 min4min
  7. Elliott Rd After Wilkins Rd

    #15200 — Elliott Rd After Wilkins Rd

    328+0 min4min
  8. Elliott Rd Before Bernard St

    #15201 — Elliott Rd Before Bernard St

    328+1 min5min
  9. Elliott Rd After Bernard St

    #15202 — Elliott Rd After Bernard St

    328+0 min5min
  10. Elliott Rd Before Lion St

    #15203 — Elliott Rd Before Lion St

    328+1 min6min
  11. 328+0 min6min
  12. Chidlow St After Keane St

    #15185 — Chidlow St After Keane St

    +1 min7min
  13. Chidlow St After Honey St

    #15186 — Chidlow St After Honey St

    +0 min7min
  14. Cook St After Chidlow St

    #15179 — Cook St After Chidlow St

    +1 min8min
  15. +0 min8min
  16. Cook St Before Dargin St

    #15181 — Cook St Before Dargin St

    +1 min9min
  17. Princess Rd After Cook St

    #15170 — Princess Rd After Cook St

    +0 min9min
  18. Princess Rd Between Cook St And Dibble St

    #15171 — Princess Rd Between Cook St And Dibble St

    +0 min9min
  19. Dibble St After Princess Rd

    #15172 — Dibble St After Princess Rd

    +1 min10min
  20. Sawyers Rd After Keane St

    #15144 — Sawyers Rd After Keane St

    328+1 min11min
  21. Keane St After Sawyers Rd

    #15164 — Keane St After Sawyers Rd

    328+1 min12min
  22. Keane St Before Marquis St

    #15165 — Keane St Before Marquis St

    328+0 min12min
  23. 328+0 min12min
  24. Stretch Rd After Binder St

    #15158 — Stretch Rd After Binder St

    328+1 min13min
  25. Stretch Rd After Traylen Rd

    #15159 — Stretch Rd After Traylen Rd

    328+1 min14min
  26. Osborne St After Bedford St

    #15154 — Osborne St After Bedford St

    328+1 min15min
  27. Osborne St After Short St

    #15155 — Osborne St After Short St

    328+0 min15min
  28. Kevin St After Osborne St

    #15150 — Kevin St After Osborne St

    328+1 min16min
  29. Traylen Rd After Kevin St

    #15136 — Traylen Rd After Kevin St

    328+0 min16min
  30. Traylen Rd After Emmerson St

    #15137 — Traylen Rd After Emmerson St

    328+1 min17min
  31. Traylen Rd After Kalari Wy

    #15138 — Traylen Rd After Kalari Wy

    328+0 min17min
  32. Stoneville Rd After Grenville Rd

    #15111 — Stoneville Rd After Grenville Rd

    328+1 min18min
  33. Bentley St After Stoneville Rd

    #15129 — Bentley St After Stoneville Rd

    328+1 min19min
  34. Bentley St After Possum Wy

    #15130 — Bentley St After Possum Wy

    328+1 min20min
  35. Bentley St Before Hawke St

    #15132 — Bentley St Before Hawke St

    328+0 min20min
  36. 328+1 min21min
  37. Ayres Rd After Grenville Rd

    #22927 — Ayres Rd After Grenville Rd

    328+1 min22min
  38. Richardson Rd After Ayres Rd

    #25025 — Richardson Rd After Ayres Rd

    +0 min22min
  39. Richardson Rd Before Stoneville Rd

    #15098 — Richardson Rd Before Stoneville Rd

    +1 min23min
  40. Stoneville Rd After Riley Rd

    #15090 — Stoneville Rd After Riley Rd

    +1 min24min
  41. Stoneville Rd After Milligan Rd

    #15114 — Stoneville Rd After Milligan Rd

    +2 min26min
  42. Stoneville Rd Before Breckler Dr

    #15115 — Stoneville Rd Before Breckler Dr

    +2 min28min
  43. Stoneville Rd After Hartung St

    #22791 — Stoneville Rd After Hartung St

    +3 min31min
  44. Craig St After Nichol St

    #15056 — Craig St After Nichol St

    320321+2 min33min

Frequently asked questions

When are the first and last departures of line 331?

On weekdays the first departure from Thomas St After Old Northam Rd is at 08:12 and the last at 15:29. There are 4 departures in total.

Does line 331 run on weekends?

No, there are no published weekend departures.

Does line 331 run on Sundays?

No. The current timetable has no Sunday departures for line 331.

How often does line 331 run?

Departures run about every 37 minutes (median headway between 06:00 and 21:00 on weekdays). It is denser at peak and sparser in the evening and at weekends.

How long is the ride on line 331?

The whole ride takes about 33 minutes on average — from about 9 minutes off-peak to about 58 minutes at peak.

How many stops does line 331 have?

In the Thomas St After Old Northam Rd → Craig St After Nichol St direction, line 331 has 44 stops.

How long is the route of line 331?

The route in this direction is about 19.4 km long.