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 Sydenham and New Cross Gate may be cancelled, delayed or revised. Latest information can be found in the Disruptions area of the National Rail website.
Time Destination Platform Expected
13:10 London Victoria

CALLING AT:

London Victoria (13:41)

Gatwick Express (8 coaches)

5 13:17
13:16 Cambridge 4 Cancelled
13:17 Horsham

CALLING AT:

Three Bridges (13:22)
Crawley (13:27)
Ifield (13:30)
Littlehaven (13:36)
Horsham (13:40)

Thameslink (12 coaches)

3 On time
13:19 Peterborough

CALLING AT:

Horley (13:21)
Redhill (13:29)
Merstham (13:33)
Coulsdon South (13:38)
East Croydon (13:45)
London Bridge (14:00)
London Blackfriars (14:06)
City Thameslink (14:08)
Farringdon (14:11)
London St Pancras (Intl) (14:15)
Finsbury Park (14:22)
Stevenage (14:43)
Hitchin (14:50)
Arlesey (14:56)
Biggleswade (15:01)
Sandy (15:05)
St Neots (15:12)
Huntingdon (15:20)
Peterborough (15:41)

Thameslink (12 coaches)

1 On time
13:22 Littlehampton

CALLING AT:

Three Bridges (13:25)
Haywards Heath (13:32)
Burgess Hill (13:39)
Hassocks (13:43)
Preston Park (13:50)
Hove (13:54)
Portslade (13:57)
Shoreham-by-Sea (14:02)
Lancing (14:07)
Worthing (14:11)
West Worthing (14:14)
Durrington-on-Sea (14:16)
Goring-by-Sea (14:19)
Angmering (14:24)
Littlehampton (14:34)

Southern (12 coaches)

6 On time
13:26 London Victoria

CALLING AT:

East Croydon (13:41)
Clapham Junction (13:51)
London Victoria (13:58)

Southern (8 coaches)

4 On time
13:26 Ore

CALLING AT:

Haywards Heath (13:37)
Wivelsfield (13:42)
Plumpton (13:49)
Lewes (13:56)
Polegate (14:09)
Eastbourne (14:17)
Hampden Park (14:27)
Pevensey & Westham (14:32)
Normans Bay (14:36)
Cooden Beach (14:40)
Collington (14:44)
Bexhill (14:47)
St Leonards Warrior Square (14:55)
Hastings (14:58)
Ore (15:02)

Southern (8 coaches)

7 13:32
13:29 Reading

CALLING AT:

Redhill (13:37)
Reigate (13:44)
Betchworth (13:49)
Dorking Deepdene (13:53)
Dorking West (13:57)
Shalford (14:10)
Guildford (14:15)
North Camp (14:31)
Blackwater (14:37)
Wokingham (14:46)
Reading (14:57)

Great Western Railway (3 coaches)

2 On time
13:31 Brighton

CALLING AT:

Haywards Heath (13:42)
Brighton (13:57)

Gatwick Express (8 coaches)

6 13:33
13:32 London Victoria

CALLING AT:

East Croydon (13:48)
Clapham Junction (13:58)
London Victoria (14:06)

Southern (8 coaches)

5 On time