train: 952495,0,4
Thu Aug  6 13:16:09 2026 2026-08-06T13:16:09Z

plat dest
 scheduled
 estimated
_*344824    From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works.
__352201    The following changes are in place at Mordialloc, due to level crossing removal works:
** current, _* Later today, __ in the future

Final stop Frankston

2 1155 Parliament Station 2026-08-06T11:49:00Z 21:49:00 -87m-9s -5229 21:56:00 -80m-9s -4809 disruptions 352201 344824
2 1120 Melbourne Central Station 2026-08-06T11:51:00Z 21:51:00 -85m-9s -5109 21:58:00 -78m-9s -4689 disruptions 352201 344824
2 1068 Flagstaff Station 2026-08-06T11:53:00Z 21:53:00 -83m-9s -4989 21:58:52 -77m-17s -4637 disruptions 352201 344824
12 1181 Southern Cross Station 2026-08-06T11:59:00Z 21:59:00 -77m-9s -4629 22:01:00 -75m-9s -4509 disruptions 352201 344824
6 1071 Flinders Street Station 2026-08-06T12:05:00Z 22:05:00 -71m-9s -4269 22:05:40 -70m-29s -4229 disruptions 352201 344824
4 1162 Richmond Station 2026-08-06T12:08:00Z 22:08:00 -68m-9s -4089 22:11:00 -65m-9s -3909 disruptions 352201 344824
4 1180 South Yarra Station 2026-08-06T12:11:00Z 22:11:00 -65m-9s -3909 22:13:00 -63m-9s -3789 disruptions 352201 344824
2 1089 Hawksburn Station 2026-08-06T12:13:00Z 22:13:00 -63m-9s -3789 22:15:00 -61m-9s -3669 disruptions 352201 344824
2 1194 Toorak Station 2026-08-06T12:15:00Z 22:15:00 -61m-9s -3669 22:17:00 -59m-9s -3549 disruptions 352201 344824
2 1008 Armadale Station 2026-08-06T12:16:00Z 22:16:00 -60m-9s -3609 22:19:00 -57m-9s -3429 disruptions 352201 344824
2 1118 Malvern Station 2026-08-06T12:19:00Z 22:19:00 -57m-9s -3429 22:21:00 -55m-9s -3309 disruptions 352201 344824
2 1036 Caulfield Station 2026-08-06T12:22:00Z 22:22:00 -54m-9s -3249 22:23:00 -53m-9s -3189 disruptions 352201 344824
3 1081 Glen Huntly Station 2026-08-06T12:25:00Z 22:25:00 -51m-9s -3069 22:26:00 -50m-9s -3009 disruptions 352201 344824
3 1152 Ormond Station 2026-08-06T12:27:00Z 22:27:00 -49m-9s -2949 22:28:00 -48m-9s -2889 disruptions 352201 344824
3 1119 McKinnon Station 2026-08-06T12:29:00Z 22:29:00 -47m-9s -2829 22:30:00 -46m-9s -2769 disruptions 352201 344824
3 1020 Bentleigh Station 2026-08-06T12:31:00Z 22:31:00 -45m-9s -2709 22:31:00 -45m-9s -2709 disruptions 352201 344824
3 1157 Patterson Station 2026-08-06T12:32:00Z 22:32:00 -44m-9s -2649 22:32:52 -43m-17s -2597 disruptions 352201 344824
3 1132 Moorabbin Station 2026-08-06T12:34:00Z 22:34:00 -42m-9s -2529 22:35:00 -41m-9s -2469 disruptions 352201 344824
2 1095 Highett Station 2026-08-06T12:37:00Z 22:37:00 -39m-9s -2349 22:37:00 -39m-9s -2349 disruptions 352201 344824
2 1001 Southland Station 2026-08-06T12:38:00Z 22:38:00 -38m-9s -2289 22:39:00 -37m-9s -2229 disruptions 352201 344824
3 1039 Cheltenham Station 2026-08-06T12:39:00Z 22:39:00 -37m-9s -2229 22:41:00 -35m-9s -2109 disruptions 352201 344824
2 1122 Mentone Station 2026-08-06T12:42:00Z 22:42:00 -34m-9s -2049 22:43:12 -32m-57s -1977 disruptions 352201 344824
2 1154 Parkdale Station 2026-08-06T12:44:00Z 22:44:00 -32m-9s -1929 22:46:00 -30m-9s -1809 disruptions 352201 344824
2 1134 Mordialloc Station 2026-08-06T12:47:00Z 22:47:00 -29m-9s -1749 22:48:00 -28m-9s -1689 disruptions 352201 344824
2 1011 Aspendale Station 2026-08-06T12:50:00Z 22:50:00 -26m-9s -1569 22:51:00 -25m-9s -1509 disruptions 352201 344824
2 1060 Edithvale Station 2026-08-06T12:52:00Z 22:52:00 -24m-9s -1449 22:53:00 -23m-9s -1389 disruptions 352201 344824
2 1038 Chelsea Station 2026-08-06T12:54:00Z 22:54:00 -22m-9s -1329 22:55:00 -21m-9s -1269 disruptions 352201 344824
2 1024 Bonbeach Station 2026-08-06T12:56:00Z 22:56:00 -20m-9s -1209 22:57:00 -19m-9s -1149 disruptions 352201 344824
2 1035 Carrum Station 2026-08-06T12:59:00Z 22:59:00 -17m-9s -1029 22:59:00 -17m-9s -1029 disruptions 352201 344824
2 1174 Seaford Station 2026-08-06T13:02:00Z 23:02:00 -14m-9s -849 23:03:00 -13m-9s -789 disruptions 352201 344824
2 1106 Kananook Station 2026-08-06T13:05:00Z 23:05:00 -11m-9s -669 23:05:00 -11m-9s -669 disruptions 352201 344824
2 1073 Frankston Station 2026-08-06T13:09:00Z 23:09:00 -7m-9s -429 no est disruptions 352201 344824
$perl_scalar = { 'departures' => [ { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 1, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T11:56:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T11:49:00Z', 'skipped_stops' => [], 'stop_id' => 1155 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 2, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T11:58:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T11:51:00Z', 'skipped_stops' => [], 'stop_id' => 1120 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 3, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T11:58:52Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T11:53:00Z', 'skipped_stops' => [], 'stop_id' => 1068 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 4, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:01:00Z', 'flags' => '', 'platform_number' => '12', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T11:59:00Z', 'skipped_stops' => [], 'stop_id' => 1181 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 5, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:05:40Z', 'flags' => '', 'platform_number' => '6', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:05:00Z', 'skipped_stops' => [], 'stop_id' => 1071 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 6, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:11:00Z', 'flags' => '', 'platform_number' => '4', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:08:00Z', 'skipped_stops' => [], 'stop_id' => 1162 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 7, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:13:00Z', 'flags' => '', 'platform_number' => '4', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:11:00Z', 'skipped_stops' => [], 'stop_id' => 1180 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 8, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:15:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:13:00Z', 'skipped_stops' => [], 'stop_id' => 1089 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 9, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:17:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:15:00Z', 'skipped_stops' => [], 'stop_id' => 1194 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 10, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:19:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:16:00Z', 'skipped_stops' => [], 'stop_id' => 1008 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 11, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:21:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:19:00Z', 'skipped_stops' => [], 'stop_id' => 1118 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 12, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:23:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:22:00Z', 'skipped_stops' => [], 'stop_id' => 1036 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 13, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:26:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:25:00Z', 'skipped_stops' => [], 'stop_id' => 1081 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 14, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:28:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:27:00Z', 'skipped_stops' => [], 'stop_id' => 1152 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 15, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:30:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:29:00Z', 'skipped_stops' => [], 'stop_id' => 1119 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 16, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:31:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:31:00Z', 'skipped_stops' => [], 'stop_id' => 1020 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 17, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:32:52Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:32:00Z', 'skipped_stops' => [], 'stop_id' => 1157 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 18, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:35:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:34:00Z', 'skipped_stops' => [], 'stop_id' => 1132 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 19, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:37:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:37:00Z', 'skipped_stops' => [], 'stop_id' => 1095 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 20, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:39:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:38:00Z', 'skipped_stops' => [], 'stop_id' => 1001 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 21, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:41:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:39:00Z', 'skipped_stops' => [], 'stop_id' => 1039 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 22, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:43:12Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:42:00Z', 'skipped_stops' => [], 'stop_id' => 1122 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 23, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:46:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:44:00Z', 'skipped_stops' => [], 'stop_id' => 1154 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 24, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:48:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:47:00Z', 'skipped_stops' => [], 'stop_id' => 1134 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 25, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:51:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:50:00Z', 'skipped_stops' => [], 'stop_id' => 1011 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 26, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:53:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:52:00Z', 'skipped_stops' => [], 'stop_id' => 1060 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 27, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:55:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:54:00Z', 'skipped_stops' => [], 'stop_id' => 1038 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 28, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:57:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:56:00Z', 'skipped_stops' => [], 'stop_id' => 1024 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 29, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T12:59:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T12:59:00Z', 'skipped_stops' => [], 'stop_id' => 1035 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 30, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T13:03:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T13:02:00Z', 'skipped_stops' => [], 'stop_id' => 1174 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 31, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => '2026-08-06T13:05:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T13:05:00Z', 'skipped_stops' => [], 'stop_id' => 1106 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 32, 'direction_id' => 5, 'disruption_ids' => [ 352201, 344824 ], 'estimated_departure_utc' => undef, 'flags' => 'E', 'platform_number' => '2', 'route_id' => 6, 'run_id' => 952495, 'run_ref' => '952495', 'scheduled_departure_utc' => '2026-08-06T13:09:00Z', 'skipped_stops' => [], 'stop_id' => 1073 } ], 'directions' => { '5' => { 'direction_id' => 5, 'direction_name' => 'Frankston', 'route_id' => 6, 'route_type' => 0 } }, 'disruptions' => [ { 'colour' => '#ffd500', 'description' => 'From Thursday 21 May, the Frankston Line will have a new timetable and the temporary timetable introduced for level crossing removal works will end. There may be changes to some journeys. Check your timetable before your travel.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 352201, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2025-01-29T10:37:00Z', 'last_updated' => '2026-05-20T20:28:25Z', 'published_on' => '2026-01-05T05:08:23Z', 'routes' => [], 'stops' => [], 'title' => 'Mordialloc Station: Major changes until further notice', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/mordialloc-station-major-changes-until-further-notice-2' }, { 'colour' => '#ffbb00', 'description' => 'Southern Cross Station: From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works.', 'display_on_board' => 'true', 'display_status' => 'false', 'disruption_id' => 344824, 'disruption_status' => 'Current', 'disruption_type' => 'Station detour', 'from_date' => '2025-09-25T05:13:00Z', 'last_updated' => '2026-02-10T10:00:02Z', 'published_on' => '2025-09-25T05:26:57Z', 'routes' => [], 'stops' => [], 'title' => 'Southern Cross Station: From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works.', 'to_date' => '2026-08-31T17:00:00Z', 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/page/plan-a-journey/maps/southern-cross-station-map-and-travel-information/' } ], 'routes' => { '6' => { 'geopath' => [], 'route_gtfs_id' => '2-FKN', 'route_id' => 6, 'route_name' => 'Frankston', 'route_number' => '', 'route_type' => 0 } }, 'runs' => { '952495' => { 'destination_name' => 'Frankston', 'direction_id' => 5, 'express_stop_count' => 0, 'externalService' => 7, 'final_stop_id' => 1073, 'geopath' => [], 'interchange' => { 'distributor' => undef, 'feeder' => { 'advertised' => 'false', 'destination_name' => 'Flinders Street', 'direction_id' => 1, 'route_id' => 6, 'run_ref' => '952992', 'stop_id' => 1071 } }, 'route_id' => 6, 'route_type' => 0, 'run_id' => 952495, 'run_note' => '', 'run_ref' => '952495', 'run_sequence' => 0, 'status' => 'scheduled', 'vehicle_descriptor' => { 'air_conditioned' => undef, 'description' => '6 Car Siemens', 'id' => '2519T-2524T-737M-738M-747M-748M', 'length' => '142', 'low_floor' => undef, 'operator' => 'Metro Trains Melbourne', 'supplier' => 'CIS - Metro Trains Melbourne' }, 'vehicle_position' => { 'bearing' => '199.290046219189', 'datetime_utc' => '2026-08-06T23:08:53', 'direction' => 'Outbound', 'easting' => '335780.160747911', 'expiry_time' => '2026-08-06T23:09:28', 'latitude' => '-38.1426200196377', 'longitude' => '145.126002426244', 'northing' => '5776701.78070821', 'supplier' => 'CIS - Metro Trains Melbourne' } } }, 'status' => { 'health' => 1, 'version' => '3.0' }, 'stops' => { '1001' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1001, 'stop_landmark' => '', 'stop_latitude' => '-37.95876', 'stop_longitude' => '145.049118', 'stop_name' => 'Southland', 'stop_sequence' => 0, 'stop_suburb' => 'Cheltenham', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1008' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1008, 'stop_landmark' => '', 'stop_latitude' => '-37.8564529', 'stop_longitude' => '145.019333', 'stop_name' => 'Armadale', 'stop_sequence' => 0, 'stop_suburb' => 'Armadale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1011' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1011, 'stop_landmark' => '', 'stop_latitude' => '-38.02722', 'stop_longitude' => '145.102158', 'stop_name' => 'Aspendale', 'stop_sequence' => 0, 'stop_suburb' => 'Aspendale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1020' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1020, 'stop_landmark' => '', 'stop_latitude' => '-37.9174271', 'stop_longitude' => '145.036987', 'stop_name' => 'Bentleigh', 'stop_sequence' => 0, 'stop_suburb' => 'Bentleigh', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1024' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1024, 'stop_landmark' => '', 'stop_latitude' => '-38.0629463', 'stop_longitude' => '145.119675', 'stop_name' => 'Bonbeach', 'stop_sequence' => 0, 'stop_suburb' => 'Bonbeach', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1035' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1035, 'stop_landmark' => '', 'stop_latitude' => '-38.0765038', 'stop_longitude' => '145.122833', 'stop_name' => 'Carrum', 'stop_sequence' => 0, 'stop_suburb' => 'Carrum', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1036' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1036, 'stop_landmark' => '', 'stop_latitude' => '-37.8774567', 'stop_longitude' => '145.042526', 'stop_name' => 'Caulfield', 'stop_sequence' => 0, 'stop_suburb' => 'Caulfield East', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1038' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1038, 'stop_landmark' => '', 'stop_latitude' => '-38.05196', 'stop_longitude' => '145.116043', 'stop_name' => 'Chelsea', 'stop_sequence' => 0, 'stop_suburb' => 'Chelsea', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1039' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1039, 'stop_landmark' => '', 'stop_latitude' => '-37.9666519', 'stop_longitude' => '145.05455', 'stop_name' => 'Cheltenham', 'stop_sequence' => 0, 'stop_suburb' => 'Cheltenham', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1060' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1060, 'stop_landmark' => '', 'stop_latitude' => '-38.0360641', 'stop_longitude' => '145.1073', 'stop_name' => 'Edithvale', 'stop_sequence' => 0, 'stop_suburb' => 'Edithvale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1068' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1068, 'stop_landmark' => '', 'stop_latitude' => '-37.8119774', 'stop_longitude' => '144.955658', 'stop_name' => 'Flagstaff', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1071' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1071, 'stop_landmark' => '', 'stop_latitude' => '-37.81831', 'stop_longitude' => '144.966965', 'stop_name' => 'Flinders Street', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1073' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1073, 'stop_landmark' => '', 'stop_latitude' => '-38.1429863', 'stop_longitude' => '145.12616', 'stop_name' => 'Frankston', 'stop_sequence' => 0, 'stop_suburb' => 'Frankston', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1081' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1081, 'stop_landmark' => '', 'stop_latitude' => '-37.8897171', 'stop_longitude' => '145.042221', 'stop_name' => 'Glen Huntly', 'stop_sequence' => 0, 'stop_suburb' => 'Glen Huntly', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1089' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1089, 'stop_landmark' => '', 'stop_latitude' => '-37.844593', 'stop_longitude' => '145.002136', 'stop_name' => 'Hawksburn', 'stop_sequence' => 0, 'stop_suburb' => 'South Yarra', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1095' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1095, 'stop_landmark' => '', 'stop_latitude' => '-37.9484253', 'stop_longitude' => '145.04187', 'stop_name' => 'Highett', 'stop_sequence' => 0, 'stop_suburb' => 'Highett', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1106' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1106, 'stop_landmark' => '', 'stop_latitude' => '-38.12174', 'stop_longitude' => '145.135284', 'stop_name' => 'Kananook', 'stop_sequence' => 0, 'stop_suburb' => 'Seaford', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1118' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1118, 'stop_landmark' => '', 'stop_latitude' => '-37.86625', 'stop_longitude' => '145.0293', 'stop_name' => 'Malvern', 'stop_sequence' => 0, 'stop_suburb' => 'Malvern', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1119' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1119, 'stop_landmark' => '', 'stop_latitude' => '-37.910305', 'stop_longitude' => '145.0383', 'stop_name' => 'McKinnon', 'stop_sequence' => 0, 'stop_suburb' => 'Mckinnon', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1120' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1120, 'stop_landmark' => '', 'stop_latitude' => '-37.8099365', 'stop_longitude' => '144.9626', 'stop_name' => 'Melbourne Central', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1122' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1122, 'stop_landmark' => '', 'stop_latitude' => '-37.98297', 'stop_longitude' => '145.066', 'stop_name' => 'Mentone', 'stop_sequence' => 0, 'stop_suburb' => 'Mentone', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1132' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1132, 'stop_landmark' => '', 'stop_latitude' => '-37.93435', 'stop_longitude' => '145.036743', 'stop_name' => 'Moorabbin', 'stop_sequence' => 0, 'stop_suburb' => 'Moorabbin', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1134' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1134, 'stop_landmark' => '', 'stop_latitude' => '-38.006588', 'stop_longitude' => '145.087662', 'stop_name' => 'Mordialloc', 'stop_sequence' => 0, 'stop_suburb' => 'Mordialloc', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1152' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1152, 'stop_landmark' => '', 'stop_latitude' => '-37.90321', 'stop_longitude' => '145.039612', 'stop_name' => 'Ormond', 'stop_sequence' => 0, 'stop_suburb' => 'Ormond', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1154' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1154, 'stop_landmark' => '', 'stop_latitude' => '-37.9930763', 'stop_longitude' => '145.076324', 'stop_name' => 'Parkdale', 'stop_sequence' => 0, 'stop_suburb' => 'Parkdale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1155' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1155, 'stop_landmark' => '', 'stop_latitude' => '-37.8110542', 'stop_longitude' => '144.9729', 'stop_name' => 'Parliament', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1157' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1157, 'stop_landmark' => '', 'stop_latitude' => '-37.9251442', 'stop_longitude' => '145.035461', 'stop_name' => 'Patterson', 'stop_sequence' => 0, 'stop_suburb' => 'Bentleigh', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1162' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1162, 'stop_landmark' => '', 'stop_latitude' => '-37.8240738', 'stop_longitude' => '144.990158', 'stop_name' => 'Richmond', 'stop_sequence' => 0, 'stop_suburb' => 'Richmond', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1174' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1174, 'stop_landmark' => '', 'stop_latitude' => '-38.1040154', 'stop_longitude' => '145.128235', 'stop_name' => 'Seaford', 'stop_sequence' => 0, 'stop_suburb' => 'Seaford', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1180' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1180, 'stop_landmark' => '', 'stop_latitude' => '-37.8384438', 'stop_longitude' => '144.99234', 'stop_name' => 'South Yarra', 'stop_sequence' => 0, 'stop_suburb' => 'South Yarra', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1181' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1181, 'stop_landmark' => '', 'stop_latitude' => '-37.8179321', 'stop_longitude' => '144.951416', 'stop_name' => 'Southern Cross', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'true', 'zone' => 'Zone 1' } }, '1194' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1194, 'stop_landmark' => '', 'stop_latitude' => '-37.85077', 'stop_longitude' => '145.0139', 'stop_name' => 'Toorak', 'stop_sequence' => 0, 'stop_suburb' => 'Armadale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } } } }