Please note: Rail Delivery Group plans to retire the National Rail Data Portal (including OpenLDBWS) in early 2026. Alternatives are now available via the Rail Data Marketplace

↓ Output (cached 60s)


<!DOCTYPE html>
<html lang="en">
  <head>
    <style type='text/css'>
      body {
        font-family: monospace;
        white-space: nowrap;
      }
      table {
        border-collapse: collapse;
      }
      th,td {
        border: 1px solid #eee;
        padding: 10px;
        vertical-align:top;
      }
      th:nth-child(1),th:nth-child(2) {
        text-align: left;
      }
      th:nth-child(3),td:nth-child(3) {
        text-align: center;
      }
      th:nth-child(4),td:nth-child(4) {
        text-align: right;
      }
    </style>
  </head>
  <body>
    <?php
      
require("OpenLDBWS.php");
      
$OpenLDBWS = new OpenLDBWS("YOUR_ACCESS_TOKEN");
      
$response $OpenLDBWS->GetDepBoardWithDetails(10,"GTW");
      
$template["header"] = "
        <table>
          <thead>
            <tr>
              <th>Time</th>
              <th>Destination</th>
              <th>Platform</th>
              <th>Expected</th>
            </tr>
          </thead>
          <tbody>
        "
;
      
$template["row"] = "
            <tr>
              <td>{std}</td>
              <td><strong>{destination}</strong>{detail}</td>
              <td>{platform}</td>
              <td>{etd}</td>
            </tr>
      "
;
      
$template["footer"] = "
          </tbody>
        </table>
      "
;

      if (isset(
$response->GetStationBoardResult))
      {
        print 
"<p><strong>".$response->GetStationBoardResult->locationName."</strong> Departures</p>";

        if (isset(
$response->GetStationBoardResult->nrccMessages))
        {
          print 
"<ul>";

          foreach(
$response->GetStationBoardResult->nrccMessages->message as $message)
          {
            print 
"<li>".$message->{"_"}."</li>";
          }

          print 
"</ul>";
        }

        if (isset(
$response->GetStationBoardResult->trainServices->service))
        {
          print 
$template["header"];

          foreach(
$response->GetStationBoardResult->trainServices->service as $service)
          {
            
$row $template["row"];

            
$destinations = array();

            foreach(
$service->destination->location as $location)
            {
              
$destinations[] = $location->locationName;
            }

            
$row str_replace("{std}",$service->std,$row);

            
$row str_replace("{destination}",implode(" and ",$destinations),$row);

            
$row str_replace("{platform}",(isset($service->platform)?$service->platform:"&nbsp;"),$row);

            
$row str_replace("{etd}",$service->etd,$row);

            
$detail "";

            if ((
$service->etd != "Cancelled") && isset($service->subsequentCallingPoints))
            {
              foreach(
$service->subsequentCallingPoints->callingPointList as $k => $callingPointList)
              {
                
$callingPoints $callingPointList->callingPoint;

                if (
$k)
                {
                  
$callingPoint array_shift($callingPoints);

                  
$detail .= "<p>Train divides at <strong>".$callingPoint->locationName."</strong></p>";
                }

                
$detail .= "<p>CALLING AT:</p>";

                foreach(
$callingPoints as $callingPoint)
                {
                  
$detail .= $callingPoint->locationName." (".(($callingPoint->st == "On time")?$callingPoint->et:$callingPoint->st).")<br />";
                }
              }

              
$detail .= "<p>".$service->operator.(isset($service->length)?" (".$service->length." coaches)":"")."</p>";
            }

            
$row str_replace("{detail}",$detail,$row);

            print 
$row;
          }

          print 
$template["footer"];
        }
        else
        {
          print 
"<p>No services within 2 hours.</p>";
        }
      }
    
?>
  </body>
</html>

Gatwick Airport Departures

  • Trains running between London St Pancras International and Luton may be cancelled, delayed by up to 30 minutes or revised. Latest information can be found in Status and Disruptions.
Time Destination Platform Expected
12:35 Brighton   Cancelled
12:35 Three Bridges

CALLING AT:

Three Bridges (12:40)

Thameslink (8 coaches)

3 On time
12:36 Bedford

CALLING AT:

East Croydon (12:51)
London Bridge (13:05)
London Blackfriars (13:11)
City Thameslink (13:13)
Farringdon (13:16)
London St Pancras (Intl) (13:20)
West Hampstead Thameslink (13:29)
St Albans (13:41)
Harpenden (13:47)
Luton Airport Parkway (13:53)
Luton (13:57)
Leagrave (14:01)
Harlington (14:06)
Flitwick (14:10)
Bedford (14:24)

Thameslink (12 coaches)

4 On time
12:39 Havant and Bognor Regis

CALLING AT:

Three Bridges (12:44)
Crawley (12:48)
Horsham (12:57)
Barnham (13:29)
Chichester (13:37)
Fishbourne (West Sussex) (13:43)
Bosham (13:47)
Nutbourne (13:51)
Southbourne (13:54)
Emsworth (13:57)
Warblington (14:01)
Havant (14:04)

Train divides at Horsham

CALLING AT:

Christs Hospital (13:09)
Billingshurst (13:15)
Pulborough (13:22)
Amberley (13:28)
Arundel (13:32)
Ford (13:39)
Barnham (13:44)
Bognor Regis (13:51)

Southern (12 coaches)

6 On time
12:40 London Victoria

CALLING AT:

London Victoria (13:12)

Gatwick Express (8 coaches)

5 On time
12:43 London Victoria

CALLING AT:

East Croydon (12:58)
Clapham Junction (13:07)
London Victoria (13:15)

Southern (12 coaches)

2 On time
12:45 Brighton

CALLING AT:

Three Bridges (12:49)
Haywards Heath (12:59)
Burgess Hill (13:05)
Brighton (13:18)

Thameslink (12 coaches)

7 On time
12:46 Cambridge

CALLING AT:

East Croydon (13:01)
London Bridge (13:15)
London Blackfriars (13:21)
City Thameslink (13:23)
Farringdon (13:26)
London St Pancras (Intl) (13:30)
Finsbury Park (13:37)
Stevenage (13:58)
Hitchin (14:04)
Letchworth Garden City (14:09)
Baldock (14:13)
Ashwell & Morden (14:18)
Royston (14:22)
Cambridge (14:39)

Thameslink (12 coaches)

4 On time
12:47 Horsham

CALLING AT:

Three Bridges (12:52)
Crawley (12:57)
Ifield (13:00)
Littlehaven (13:06)
Horsham (13:10)

Thameslink (12 coaches)

3 On time
12:49 Peterborough

CALLING AT:

Horley (12:51)
Redhill (12:59)
Merstham (13:03)
Coulsdon South (13:08)
East Croydon (13:15)
London Bridge (13:30)
London Blackfriars (13:36)
City Thameslink (13:38)
Farringdon (13:41)
London St Pancras (Intl) (13:45)
Finsbury Park (13:52)
Stevenage (14:13)
Hitchin (14:20)
Arlesey (14:26)
Biggleswade (14:31)
Sandy (14:35)
St Neots (14:42)
Huntingdon (14:50)
Peterborough (15:08)

Thameslink (12 coaches)

1 On time