Transperth is the public transport system serving Perth, Western Australia. The Transperth rail network is owned and operated by the Public Transport Authority (PTA), a state government agency. It has 85 stations and eight lines which radiate out from the central station of Perth. The lines are the Airport, Armadale, Ellenbrook, Fremantle, Mandurah, Midland, Thornlie–Cockburn, and Yanchep lines. From June 2022 to June 2023, the Transperth rail network had 53.2 million boardings.
History The first railway to open in the Perth area was the Eastern Railway, which opened in 1881 between Fremantle to Guildford via Perth, forming the modern-day Fremantle and Midland lines. This was later extended past Midland and suburban services were extended to Midland in 1904 and 1905. The South Western Railway was opened between Perth and Bunbury in 1893. Suburban services initially ran as far as Cannington, but were extended over the following decades to reach Armadale station by the 1950s to form the Armadale line.
Initially served by steam trains, diesel railcars began running on 28 November 1954. This allowed for smaller spacing between stations, and so seven new stations opened on that day: Ashfield, Higham (now known as Beckenham station), Grant Street, Stokely, Loch Street, Oats Street, and Victoria Street. The Fremantle line was closed on 2 September 1979 due to declining patronage, but it was reopened on 29 July 1983 after a public outcry. The network was electrified in the early 1990s, and the Yanchep line opened on 20 December 1992 as the Joondalup line with three stations operational: Leederville, Edgewater, and Joondalup. The remaining stations between Perth and Joondalup opened on 21 March 1993, and an extension to Currambine station opened on 8 August 1993. Subiaco station was rebuilt in the late 1990s, opening on 9 December 1998 as Perth's first underground station.
A number of new stations opened in the 2000s under the New MetroRail project. This included an extension of the Joondalup line to Clarkson on 4 October 2004, a branch off the Armadale line to Thornlie on 7 August 2005, and the Mandurah line, which opened in 2007. The first section of the Mandurah line, which was the two underground stations (Perth Underground and Elizabeth Quay), opened on 15 October 2007, and the second section, which was the nine stations between Elizabeth Quay and Mandurah, which opened on 23 December 2007. On 21 September 2014, an extension of the Joondalup line to Butler opened.
Another large increase in the station count occurred under the Metronet program in the 2020s. This included the Airport line, a three-station branch off the Midland line that opened on 9 October 2022, a three-station extension of the Joondalup line (renamed to the Yanchep line) to Yanchep that opened on 14 July 2024, the Ellenbrook line, a five-station branch off the Midland line which opened on 8 December 2024, an extension of the Thornlie line (renamed the Thornlie–Cockburn line) to link up to the Mandurah line with two new stations which opened on 8 June 2025, and an extension of the Armadale line by one station to Byford which was completed on 12 October 2025. Additionally, five stations along the Armadale line were rebuilt and one station was closed as part of the Victoria Park-Canning Level Crossing Removal Project, which temporarily closed the Armadale line for 18 months from November 2023 to October 2025.
Stations There are 85 Transperth railway stations. 39 of those stations have bus transfers. Five of those stations are underground: Airport Central, Elizabeth Quay, Perth Underground, Redcliffe, and Subiaco stations. Showgrounds station only operates during events at the Claremont Showground.
The Armadale, Fremantle, and Midland lines are known as the "heritage lines" as they were constructed long before the other lines. Over half the stations on the heritage lines have poor disabled accessibility despite all stations having step-free access. Factors limiting accessibility include non-compliant ramps, a lack of tactile paving, large platform gaps, and pedestrian level crossings. Perth station is accessible with the exception of platform four, which is used by the Armadale line. All stations along the Thornlie Cockburn line and inner section of the Armadale Line are now accessible thanks to a wide program of upgrades and station rebuilds, with the exception of McIver and Burswood. 7 stations along the temporarily closed outer Armadale line remain inaccessible. 13 stations on the Fremantle line remain inaccessible, with the exceptions being Fremantle, Subiaco, and West Leederville stations. Eight stations along the Midland line are also not accessible, with the exceptions being Bassendean, Bayswater, Claisebrook, East Perth, Maylands, and Midland stations. All stations along the Ellenbrook and Airport line branches, Mandurah line and the Yanchep line are accessible except Edgewater, Leederville, and Stirling stations.
All stations along the Ellenbrook and Airport line branches, the Yanchep line, the Mandurah line and the Thornlie-Cockburn Line (except McIver, Claisebrook, Burswood and Victoria Park) have long platforms, which are long enough for six car trains, the longest trains used on the network. Most stations along the heritage lines have platforms which are only long, limiting the length of trains that can be used on those lines. The exceptions are Bayswater, East Perth, Perth (except Platforms 3 and 4), West Leederville, Perth Stadium, Carlisle, Oats Street, Queens Park, Cannington, Beckenham, Armadale and Byford stations. The other stations are planned to be lengthened eventually as part of a wider upgrade project on the heritage lines.
List of current stations
StationImageServed byDistance from PerthLocationOpenedNoteskmmiAirport Central13.48.3Perth AirportAlkimos43.926.7AlkimosBus interchangeArmadale30.418.9ArmadaleBus interchange Transwa Australind (from 2026)Ashfield9.35.8Ashfield, BassendeanAubin Grove23.814.8Atwell, SuccessBus interchangeBallajura15.99.9WhitemanBus interchangeBassendean10.86.7BassendeanBus interchangeOriginally named West Guildford. Renamed to Bassendean in 1922.Bayswater6.74.2Bayswater1896Bus interchangeRebuilt station opened on 8 October 2023Beckenham13.68.5BeckenhamOriginally named Higham.Bull Creek11.77.3Bateman, Bull CreekBus interchangeBurswood4.62.9Burswood1893Originally named Burswood. Renamed to Rivervale in 1906, on 30 May 1923 or in April 1929. Renamed to Burswood on 1 May 1994.Butler40.725.3ButlerBus interchangeByford38.424.0Byford12 October 2025Bus interchange Transwa Australind (from 2026) Line terminusCanning Bridge7.24.5ComoBus interchangeCannington12.27.6Cannington, East CanningtonBus interchangeCarlisle7.44.6Carlisle, East Victoria ParkOriginally named Mint Street. Renamed to East Victoria Park in 1912. Renamed to Carlisle in April 1919.Challis27.317.0KelmscottCity West1.61.0West PerthOriginally named West Perth. Renamed to City West on 19 November 1987.Claisebrook1.30.8East Perth, PerthOriginally named East Perth. Renamed to Claisebrook in 1969.Claremont9.45.8ClaremontBus interchangeOriginally named Butler's Swamp. Renamed to Claremont in 1882/1883.Airport Line Western TerminusClarkson33.220.6ClarksonBus interchangeCockburn Central20.512.7Cockburn Central, JandakotBus interchangeThornlie-Cockburn Line TerminusCottesloe12.47.7CottesloeBus interchangeCurrambine29.218.1Currambine, JoondalupDaglish4.93.0Daglish, SubiacoEast Guildford14.18.8GuildfordOriginally named Woodbridge. Renamed East Guildford in 1908.East Perth2.11.3East Perth, PerthBuilt in 1969, this station was originally named Perth Terminal. Changed name to East Perth Terminal on 14 August 1989. The new suburban station is called East Perth. East Perth Terminal is located next to the station for state and interstate travel.Edgewater22.914.2Edgewater, HeathridgeEglinton46.729.0EglintonBus interchangeElizabeth Quay 0.6 0.4PerthBus interchangeOriginally named Esplanade. Renamed to Elizabeth Quay in January 2016.UndergroundEllenbrook27.917.3EllenbrookBus interchangeEllenbrook Line TerminusFremantle19.011.8Fremantle1907Bus interchangeFremantle Line TerminusGlendalough5.63.5Glendalough, Osborne Park, Mount HawthornBus interchangeGosnells20.712.9GosnellsBus interchangeOriginal station opened in 1905. Station relocated northeast in 2005.Grant Street11.27.0CottesloeGreenwood17.711.0Duncraig, Greenwood, Kingsley, PadburyGuildford12.67.8GuildfordHigh Wycombe15.89.8High WycombeBus interchangeAirport Line Eastern TerminusJoondalup26.216.3JoondalupBus interchangeKarrakatta7.64.7KarrakattaKelmscott25.816.0KelmscottBus interchangeKenwick15.69.7KenwickKwinana32.920.4Bertram, ParmeliaBus interchangeLakelands64.540.1LakelandsBus interchangeLeederville2.41.5Leederville, West LeedervilleBus interchangeLoch Street8.05.0Claremont, KarrakattaMaddington17.610.9MaddingtonBus interchangeMandurah70.844.0MandurahBus interchangeMandurah Line TerminusMaylands4.52.8MaylandsOriginally named 15 mile Siding. Renamed to Falkirk in 1897. Renamed to Maylands in 1899.McIver0.70.4PerthMeltham5.53.4BayswaterMidland16.110.0MidlandBus interchangeMidland Line TerminusMorley10.36.4Embleton, MorleyBus interchangeMosman Park13.68.5Cottesloe, Mosman ParkOriginally named Cottesloe Beach. Renamed to Buckland Hill in 1931. Renamed to Mosman Park in 1937.Mount Lawley3.22.0Mount LawleyOriginally opened in 1907. Rebuilt northwest in 1968. Originally named Fenian's Crossing.Murdoch13.98.6Leeming, MurdochBus interchangeNoranda12.88.0Morley, NorandaBus interchangeNicholson Road20.312.6Canning Vale8 June 2025Bus interchangeNorth Fremantle16.110.0North FremantleOats Street8.15.0Carlisle, East Victoria ParkBus interchangePerth0.00.0PerthBus interchangePerth Stadium3.32.1BurswoodPerth Underground0.00.0PerthBus interchangeUndergroundQueens Park11.37.0Cannington, Queens ParkOriginally named Woodlupine. Renamed to Queens Park on 16 April 1912.Ranford Road23.214.4Canning Vale8 June 2025Bus interchangeRedcliffe10.76.6RedcliffeBus interchangeUndergroundRockingham43.226.8Cooloongup, RockinghamBus interchangeSeaforth22.614.0GosnellsShenton Park6.03.7Shenton ParkBus interchangeOriginally named West Subiaco. Renamed to Shenton Park in 1934.Sherwood28.617.8ArmadaleOriginally named Kingsley.Showgrounds§8.75.4ClaremontOnly used during events at Claremont ShowgroundStirling8.85.5Innaloo, Osborne Park, StirlingBus interchangeSubiaco3.62.2SubiacoBus interchangeUndergroundSuccess Hill11.77.3BassendeanSwanbourne10.56.6Claremont, SwanbourneOriginally named Congdon Street. Renamed to Osborne in 1911/12. Renamed to Swanbourne in 1921.Thornlie17.010.6ThornlieBus interchangeVictoria Park6.13.8Lathlain, Victoria ParkOriginal station opened in 1898. Rebuilt southeast in 2007 and 2008.Victoria Street14.28.8Cottesloe, Mosman ParkWarnbro47.529.5WarnbroBus interchangeWarwick14.59.0Carine, Duncraig, Hamersley, WarwickBus interchangeWellard37.123.1WellardBus interchangeWest Leederville2.71.7Subiaco, West LeedervilleOriginally named Leederville. Renamed West Leederville in 1912/1913.Whiteman Park21.613.4Whiteman ParkBus interchange, heritage tramWhitfords19.812.3Craigie, Kingsley, Padbury, WoodvaleBus interchangeWoodbridge15.49.6WoodbridgeOriginally named West Midland. Renamed to Woodbridge in 2004.Yanchep54.533.9YanchepBus interchangeLine Terminus List of future stations + StationImageLineLocationPlanned construction startNotesKarnupKarnup2028Bus interchange
See also List of Transwa railway stations List of closed railway stations in Perth List of Transperth bus stations
References
Sources