# Data Structures

### ESR

<div id="bkmrk--8"></div><div id="bkmrk--9"></div><div id="bkmrk-esr-data-structure"><span style="color: #800000; font-weight: bold;">ESR Data Structure</span></div><div id="bkmrk-"></div><div id="bkmrk---refnum-%28string%29---"><span style="color: #0451a5;">-</span><span style="color: #000000;"> refnum (string) - this is made up of a route specific prefix, a three digit incremental counter, plus the two digit year</span></div><div id="bkmrk---routename-%28string%29"><div id="bkmrk---speed-%28string%29---%22"><span style="color: #0451a5;">-</span><span style="color: #000000;"> speed (object) - "Freight Speed / Passenger Speed" - single number if both are same, units and unrestricted line speed</span></div><div id="bkmrk---withdrawn-%28bool%29--"></div><span style="color: #0451a5;">-</span><span style="color: #000000;"> route (object) - all properties of the route</span></div><div id="bkmrk---deliveryunit-%28stri"><span style="color: #0451a5;">-</span><span style="color: #000000;"> du (object) - responsible Delivery Unit</span></div><div id="bkmrk---elrcode-%28string%29--"><span style="color: #0451a5;">-</span><span style="color: #000000;"> elr (object) - ELR of track segment impacted e.g. LTN1</span></div><div id="bkmrk---lorid-%28int%29---inte"><span style="color: #0451a5;">-</span><span style="color: #000000;"> lor (object) - LOR properties</span></div><div id="bkmrk---location-%28string%29-"><span style="color: #0451a5;">-</span><span style="color: #000000;"> location (string) - description of where the restriction is applied, should be "At X" or "Between X and Y"</span></div><div id="bkmrk---reason-%28string%29---"><span style="color: #0451a5;">-</span><span style="color: #000000;"> reason (object) - describes reason the ESR is imposed</span></div><div id="bkmrk---withdrawn-%28bool%29---1"><span style="color: #0451a5;">-</span><span style="color: #000000;"> withdrawn (bool) - 0 = active, 1 = withdrawn</span></div><div id="bkmrk---whenimposed-%28strin"><span style="color: #0451a5;">-</span><span style="color: #000000;"> whenimposed (string) - W3C format date time string, updated during amendment</span></div><div id="bkmrk---etc-%28null%7Cstring%29-"><span style="color: #0451a5;">-</span><span style="color: #000000;"> etc (null|string) - if set this is a W3C format date time string</span></div><div id="bkmrk---whenwithdrawn-%28nul"><span style="color: #0451a5;">-</span><span style="color: #000000;"> whenwithdrawn (null|string) - if withdrawn === 1, W3C format date time string</span></div><div id="bkmrk---line-%28array%29---det"><span style="color: #0451a5;">-</span><span style="color: #000000;"> lines (array) - object for each "line". A "line" is the combination of ELR + TrackID</span></div><div id="bkmrk-%C2%A0-%C2%A0---elrid---intern"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> elr (object) - as above</span></div><div id="bkmrk-%C2%A0-%C2%A0---trackid-%28int%29-"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> trackId (int) - e.g. 1100 = Up Main</span></div><div id="bkmrk-%C2%A0-%C2%A0---direction-%28str"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> direction (string) - "Up Direction" | "Down Direction" (yuk)</span></div><div id="bkmrk-%C2%A0-%C2%A0---linedescriptio"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> linedescription (string) - can be driven by trackId or overridden by Controller</span></div><div id="bkmrk-%C2%A0-%C2%A0---routeheader-%28s"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> routeheader (string) - "Primary Line" | "Additional Line"</span></div><div id="bkmrk-%C2%A0-%C2%A0---boards-%28array%29"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> boards (array)</span></div><div id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0---type-%28stri"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> type (string) - short name (no spaces)</span></div><div id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0---descriptio"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> description (string) - long name</span></div><div id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0---elrid-%28int"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> elrId (int) - copied from line</span></div><div id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0---trackid-%28i"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> trackId (int) - copied from line</span></div><div id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0---miles-%28int"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> miles (int) -</span></div><div id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0---chains-%28in"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> chains (int) - 0 &gt;= X &lt; 80</span></div><div id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0---serialnumb"><span style="color: #000000;"> </span><span style="color: #0451a5;">-</span><span style="color: #000000;"> serialNumber (string) - not currently used</span></div><div id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0---marker-%28ge"><span style="color: #000000;"> - marker (GeoJSON)</span></div><div id="bkmrk---references-%28object"><span style="color: #000000;">- references (object)</span></div><div id="bkmrk---updated_at---time-"><span style="color: #000000;">- updated\_at - time of last database change</span></div><div id="bkmrk--1"></div><div id="bkmrk-example"><span style="color: #800000; font-weight: bold;">Example Response</span></div>```json
{
  "id": 5,
  "refnum": "AICC 001.26",
  "speed": {
    "value": "40",
    "unit": "mph",
    "linespeed": "120"
  },
  "route": {
    "routecode": "EA",
    "routename": "Anglia",
    "shortname": "AICC",
  },
  "du": {
    "name": "Ipswich",
    "routeId": 2,
  },
  "elr": {
    "elrcode": "LTN1",
    "elrdescription": "LIVERPOOL STREET - TROWSE LOWER JN",
  },
  "lor": {
    "lorcode": "EA1011",
    "lordescription": "SEVEN KINGS TO IPSWICH",
  },
  "location": "At Colchester South Jn",
  "reason": {
    "reason": "Structural - Station",
  },
  "lines": [
    {
      "elr": {
        "elrId": 668,
        "elrcode": "LTN1",
        "elrdescription": "LIVERPOOL STREET - TROWSE LOWER JN",
        "active": true
      },
      "trackId": 1100,
      "routeheader": "Primary Line",
      "direction": "Up Direction",
      "linedescription": "Up Main",
      "newStyleBoards": true,
      "boards": [
        {
          "type": "commencement",
          "description": "Speed Indicator (Commencement)",
          "elrId": 668,
          "trackId": 1100,
          "miles": 50,
          "chains": 75,
          "serialNumber": null,
          "marker": {
            "type": "Feature",
            "geometry": {
              "type": "Point",
              "coordinates": [
                0.876876605,
                51.90208042
              ]
            },
            "properties": {
              "type": "commencement",
              "description": "Speed Indicator (Commencement)",
              "elrId": 668,
              "trackId": 1100,
              "miles": 50,
              "chains": 75,
              "serialNumber": null
            }
          }
        },
        {
          "type": "termination",
          "description": "Termination Indicator",
          "elrId": 668,
          "trackId": 1100,
          "miles": 49,
          "chains": 75,
          "serialNumber": null,
          "marker": {
            "type": "Feature",
            "geometry": {
              "type": "Point",
              "coordinates": [
                0.85427535,
                51.89894058
              ]
            },
            "properties": {
              "type": "termination",
              "description": "Termination Indicator",
              "elrId": 668,
              "trackId": 1100,
              "miles": 49,
              "chains": 75,
              "serialNumber": null
            }
          }
        }
      ]
    }
  ],
  "whenimposed": "2026-03-18 11:42:06",
  "etr": null,
  "withdrawn": false,
  "whenwithdrawn": null,
  "references": {
    "fmsnumber": "123",
    "ccilnumber": "23645657",
    "tsrreference": "",
    "tdanumber": "",
    "wo": "",
    "rdms": "",
    "trustcode": "",
    "owner": ""
  },
  "updated_at": "2026-03-18 11:42:06"
}
```