Upcoming change to Trip Planner APIs on 19 April

From Monday 19 April 2021 you will see a new field in our Trip Planner API responses.
In short, the new “GlobalID” field will align to “stop_ID” in our GTFS feeds.

All stops in NSW (bus stops, ferry wharfs, train platforms, light rail stops) are assigned a unique identifier called a Transit Stop Number (TSN). These numbers are in the format postcode + sequential number and are present in our GTFS data and on bus stop signs (eg 200060).

There has also been an internal system generated number called an EFA ID exposed in place TSNs in Trip Planner APIs and the TXC feed (eg 10101100).

Individual stops may be arranged into Stop Groups, with an associated unique identifier called a Stop Group Global ID. For example a station like Central would be a Parent Stop Group, with individual stops; platforms, bus stops, and light rail stops sharing the same Parent Stop Group. The unique identifier for the Stop Group can be a number, or contain a letter eg G2135210.

On April 19 TfNSW will be making changes to replace the system generated EFA ID with the Stop Group Global ID in the TXC feed and trip planner, departure board, Stop co-ords, and AddInfo APIs.

Ultimately this will deliver long overdue alignment of reference data between our feeds, and reduce effort on downstream systems and consumers.

Note that Stop Groups have the potential to change over time to align with on the ground changes, so there may be ad hoc updates to Stop Group Global IDs and/or the relationship of Stop Groups to child TSNs.

A mapping table of EFA ID to Global ID/TSN can be found here.

Below is an example of a departure_mon response before and after the change.

Before

{
  "version": "10.2.1.42",
  "systemMessages": [],
  "locations": [
    {
      "id": "10101100",
      "name": "Central Station, Sydney",
      "disassembledName": "Central Station",
      "coord": [
        -33.88408,
        151.20629
      ],
      "type": "stop",
      "matchQuality": 100000,
      "isBest": false,
      "parent": {
        "id": "95301001|1",
        "name": "Sydney",
        "type": "locality"
      },
      "assignedStops": [
        {
          "id": "10101100",
          "name": "Central Station",
          "type": "stop",
          "coord": [
            -33.88408,
            151.20629
          ],
          "parent": {
            "name": "Sydney",
            "type": "locality"
          },
          "modes": [
            1,
            4,
            5,
            7,
            11
          ],
          "connectingMode": 100
        }
      ]
    }
  ],

After

{
  "version": "10.2.2.48",
  "systemMessages": [],
  "locations": [
    {
      "id": "200060",
      "isGlobalId": true,
      "name": "Central Station, Sydney",
      "disassembledName": "Central Station",
      "coord": [
        -33.88408,
        151.20629
      ],
      "type": "stop",
      "matchQuality": 100000,
      "isBest": false,
      "parent": {
        "id": "95301001|1",
        "name": "Sydney",
        "type": "locality"
      },
      "assignedStops": [
        {
          "id": "200060",
          "isGlobalId": true,
          "name": "Central Station",
          "type": "stop",
          "coord": [
            -33.88408,
            151.20629
          ],
          "parent": {
            "name": "Sydney",
            "type": "locality"
          },
          "modes": [
            1,
            4,
            5,
            7,
            11
          ],
          "connectingMode": 100,
          "properties": {
            "stopId": "10101100"
          }
        }
      ],
      "properties": {
        "stopId": "10101100"
      }
    }
  ],

Update - This change has been postponed by 1 day to 20 April

Thanks for this change. I think it’s a great improvement.

Cheers,
Steven

1 Like