{
 "path": "/buses/routes/first-20",
 "title": "Bus 20 Bath: route, stops and times · First · Hey Bath",
 "description": "The 20 runs between City Centre, Grand Parade and Ralph Allen School, run by First Bristol, Bath & the West. Every stop in order, first and last buses…",
 "canonical": "https://heybath.uk/buses/routes/first-20",
 "generated_at": "2026-10-10T09:11:55.314Z",
 "date_modified": "2026-10-10T09:00:11Z",
 "data": {
  "route": {
   "id": "bus-route:fbri:20",
   "line": "20",
   "name": "City Centre, Grand Parade – Ralph Allen School",
   "kind": "bus",
   "valid_to": "2027-07-18",
   "trips_week": 20,
   "ids": {
    "gtfs": [
     "120685"
    ],
    "agency": [
     "OP736"
    ],
    "noc": "FBRI"
   },
   "path": "/buses/routes/first-20",
   "bbox": [
    -2.36046,
    51.36408,
    -2.31763,
    51.38419
   ],
   "updated_at": "2026-10-10T05:05:15.425Z",
   "operator": {
    "name": "First Bristol, Bath & the West",
    "path": "/buses/operators/first-bristol-bath-the-west",
    "noc": "FBRI"
   },
   "first_today": null,
   "last_today": null,
   "every_minutes": null
  },
  "directions": [
   {
    "direction": 0,
    "towards": "City Centre, Grand Parade",
    "stops": [
     {
      "id": "bus-stop:0180baa01315",
      "name": "Ralph Allen School Grounds (W-bound)",
      "lat": 51.36385,
      "lng": -2.32883,
      "seq": 1,
      "some_trips_only": false,
      "path": "/buses/stops/ralph-allen-school-grounds-w-bound-0180baa01315"
     },
     {
      "id": "bus-stop:0180bac30082",
      "name": "Flatwoods Road (E-bound)",
      "lat": 51.36545,
      "lng": -2.32199,
      "seq": 2,
      "some_trips_only": false,
      "path": "/buses/stops/flatwoods-road-e-bound-0180bac30082"
     },
     {
      "id": "bus-stop:0180bac30039",
      "name": "Oakley (NW-bound)",
      "lat": 51.37441,
      "lng": -2.32906,
      "seq": 3,
      "some_trips_only": false,
      "path": "/buses/stops/oakley-nw-bound-0180bac30039"
     },
     {
      "id": "bus-stop:0180bac30041",
      "name": "North Road (NW-bound)",
      "lat": 51.37683,
      "lng": -2.33213,
      "seq": 4,
      "some_trips_only": false,
      "path": "/buses/stops/north-road-nw-bound-0180bac30041"
     },
     {
      "id": "bus-stop:0180bac30043",
      "name": "Woodland Place (W-bound)",
      "lat": 51.37751,
      "lng": -2.33446,
      "seq": 5,
      "some_trips_only": false,
      "path": "/buses/stops/woodland-place-w-bound-0180bac30043"
     },
     {
      "id": "bus-stop:0180bac30046",
      "name": "Smallcombe House (W-bound)",
      "lat": 51.37774,
      "lng": -2.33754,
      "seq": 6,
      "some_trips_only": false,
      "path": "/buses/stops/smallcombe-house-w-bound-0180bac30046"
     },
     {
      "id": "bus-stop:0180bac30047",
      "name": "Youth Hostel (NW-bound)",
      "lat": 51.37867,
      "lng": -2.3404,
      "seq": 7,
      "some_trips_only": false,
      "path": "/buses/stops/youth-hostel-nw-bound-0180bac30047"
     },
     {
      "id": "bus-stop:0180bac30049",
      "name": "White Lodge (NW-bound)",
      "lat": 51.37992,
      "lng": -2.3437,
      "seq": 8,
      "some_trips_only": false,
      "path": "/buses/stops/white-lodge-nw-bound-0180bac30049"
     },
     {
      "id": "bus-stop:0180bac30051",
      "name": "Cleveland Walk (NW-bound)",
      "lat": 51.38092,
      "lng": -2.34565,
      "seq": 9,
      "some_trips_only": false,
      "path": "/buses/stops/cleveland-walk-nw-bound-0180bac30051"
     },
     {
      "id": "bus-stop:0180bac30054",
      "name": "Raby Gardens (NW-bound)",
      "lat": 51.38328,
      "lng": -2.35025,
      "seq": 10,
      "some_trips_only": false,
      "path": "/buses/stops/raby-gardens-nw-bound-0180bac30054"
     },
     {
      "id": "bus-stop:0180bac23454",
      "name": "North Parade (Cd)",
      "lat": 51.38078,
      "lng": -2.35667,
      "seq": 11,
      "some_trips_only": false,
      "path": "/buses/stops/north-parade-cd-0180bac23454"
     },
     {
      "id": "bus-stop:0180bac30601",
      "name": "Manvers Street (Be)",
      "lat": 51.37836,
      "lng": -2.35698,
      "seq": 12,
      "some_trips_only": false,
      "path": "/buses/stops/manvers-street-be-0180bac30601"
     },
     {
      "id": "bus-stop:0180bac30612",
      "name": "Grand Parade (Cl)",
      "lat": 51.38233,
      "lng": -2.35746,
      "seq": 13,
      "some_trips_only": false,
      "path": "/buses/stops/grand-parade-cl-0180bac30612"
     }
    ]
   },
   {
    "direction": 1,
    "towards": "Ralph Allen School",
    "stops": [
     {
      "id": "bus-stop:0180baa01317",
      "name": "Dorchester Street (Bk)",
      "lat": 51.37796,
      "lng": -2.35912,
      "seq": 1,
      "some_trips_only": false,
      "path": "/buses/stops/dorchester-street-bk-0180baa01317"
     },
     {
      "id": "bus-stop:0180bay38419",
      "name": "Rossiter Road (E-bound)",
      "lat": 51.37691,
      "lng": -2.3575,
      "seq": 2,
      "some_trips_only": false,
      "path": "/buses/stops/rossiter-road-e-bound-0180bay38419"
     },
     {
      "id": "bus-stop:018000012",
      "name": "Widcombe Parade (E-bound)",
      "lat": 51.37655,
      "lng": -2.35383,
      "seq": 3,
      "some_trips_only": false,
      "path": "/buses/stops/widcombe-parade-e-bound-018000012"
     },
     {
      "id": "bus-stop:0180baz02414",
      "name": "Pulteney Court (N-bound)",
      "lat": 51.37828,
      "lng": -2.35135,
      "seq": 4,
      "some_trips_only": false,
      "path": "/buses/stops/pulteney-court-n-bound-0180baz02414"
     },
     {
      "id": "bus-stop:0180bac30068",
      "name": "Pulteney Gardens (N-bound)",
      "lat": 51.37995,
      "lng": -2.35132,
      "seq": 5,
      "some_trips_only": false,
      "path": "/buses/stops/pulteney-gardens-n-bound-0180bac30068"
     },
     {
      "id": "bus-stop:0180bac30055",
      "name": "St Mary's Church (SE-bound)",
      "lat": 51.38393,
      "lng": -2.35092,
      "seq": 6,
      "some_trips_only": false,
      "path": "/buses/stops/st-marys-church-se-bound-0180bac30055"
     },
     {
      "id": "bus-stop:0180bac30053",
      "name": "Sydney Buildings (SE-bound)",
      "lat": 51.38269,
      "lng": -2.34816,
      "seq": 7,
      "some_trips_only": false,
      "path": "/buses/stops/sydney-buildings-se-bound-0180bac30053"
     },
     {
      "id": "bus-stop:0180bac30052",
      "name": "Cleveland Walk (SE-bound)",
      "lat": 51.38099,
      "lng": -2.34553,
      "seq": 8,
      "some_trips_only": false,
      "path": "/buses/stops/cleveland-walk-se-bound-0180bac30052"
     },
     {
      "id": "bus-stop:0180bac30050",
      "name": "White Lodge (SE-bound)",
      "lat": 51.37976,
      "lng": -2.34269,
      "seq": 9,
      "some_trips_only": false,
      "path": "/buses/stops/white-lodge-se-bound-0180bac30050"
     },
     {
      "id": "bus-stop:0180bac30048",
      "name": "Youth Hostel (SE-bound)",
      "lat": 51.37859,
      "lng": -2.34,
      "seq": 10,
      "some_trips_only": false,
      "path": "/buses/stops/youth-hostel-se-bound-0180bac30048"
     },
     {
      "id": "bus-stop:0180bac30045",
      "name": "Smallcombe House (E-bound)",
      "lat": 51.37784,
      "lng": -2.33745,
      "seq": 11,
      "some_trips_only": false,
      "path": "/buses/stops/smallcombe-house-e-bound-0180bac30045"
     },
     {
      "id": "bus-stop:0180bac30044",
      "name": "Woodland Place (E-bound)",
      "lat": 51.37744,
      "lng": -2.33384,
      "seq": 12,
      "some_trips_only": false,
      "path": "/buses/stops/woodland-place-e-bound-0180bac30044"
     },
     {
      "id": "bus-stop:0180bac30042",
      "name": "North Road (SE-bound)",
      "lat": 51.37661,
      "lng": -2.33152,
      "seq": 13,
      "some_trips_only": false,
      "path": "/buses/stops/north-road-se-bound-0180bac30042"
     },
     {
      "id": "bus-stop:0180bac30040",
      "name": "Oakley (SE-bound)",
      "lat": 51.37424,
      "lng": -2.32819,
      "seq": 14,
      "some_trips_only": false,
      "path": "/buses/stops/oakley-se-bound-0180bac30040"
     },
     {
      "id": "bus-stop:0180bac30079",
      "name": "Rainbow Wood Farm (E-bound)",
      "lat": 51.37332,
      "lng": -2.32492,
      "seq": 15,
      "some_trips_only": false,
      "path": "/buses/stops/rainbow-wood-farm-e-bound-0180bac30079"
     },
     {
      "id": "bus-stop:0180bac30081",
      "name": "Brassknocker Hill (W-bound)",
      "lat": 51.36596,
      "lng": -2.31971,
      "seq": 16,
      "some_trips_only": false,
      "path": "/buses/stops/brassknocker-hill-w-bound-0180bac30081"
     },
     {
      "id": "bus-stop:0180bac30083",
      "name": "Flatwoods Road (W-bound)",
      "lat": 51.36538,
      "lng": -2.32196,
      "seq": 17,
      "some_trips_only": false,
      "path": "/buses/stops/flatwoods-road-w-bound-0180bac30083"
     },
     {
      "id": "bus-stop:0180baa01315",
      "name": "Ralph Allen School Grounds (W-bound)",
      "lat": 51.36385,
      "lng": -2.32883,
      "seq": 18,
      "some_trips_only": false,
      "path": "/buses/stops/ralph-allen-school-grounds-w-bound-0180baa01315"
     }
    ]
   }
  ],
  "disruptions": [
   {
    "title": "Stop closure: James Street West & St James Parade",
    "line": "James Street West & St James Parade stops will be closed 12 to 14 Oct 2026",
    "path": "/buses/stops/james-street-west-wf-0180bac30350",
    "link": null,
    "status": "planned",
    "starts_at": "2026-10-11T23:00:00.000Z",
    "ends_at": "2026-10-14T22:59:00.000Z",
    "lines": [
     "1",
     "4",
     "5",
     "5a",
     "19",
     "20",
     "39",
     "700",
     "716",
     "779",
     "A4"
    ]
   },
   {
    "title": "Stop closure: Northampton Street",
    "line": "The Northampton Street stop will be closed 12 - 23 Oct 2026",
    "path": "/buses/stops/northampton-street-e-bound-0180bac30472",
    "link": null,
    "status": "planned",
    "starts_at": "2026-10-11T23:00:00.000Z",
    "ends_at": "2026-10-23T22:59:00.000Z",
    "lines": [
     "20",
     "700"
    ]
   },
   {
    "title": "Stop closure: Manor Park",
    "line": "The Manor Park stops will be closed 0800 - 1800 on 12 & 13 Oct 2026",
    "path": "/buses/stops/manor-park-n-bound-0180bac30388",
    "link": null,
    "status": "planned",
    "starts_at": "2026-10-12T07:00:00.000Z",
    "ends_at": "2026-10-13T17:00:00.000Z",
    "lines": [
     "20"
    ]
   },
   {
    "title": "Stop closure: Newbridge Court",
    "line": "The Newbridge Court stops will be closed 13 - 15 Oct 2026",
    "path": "/buses/stops/newbridge-court-nw-bound-0180bac30382",
    "link": null,
    "status": "planned",
    "starts_at": "2026-10-13T07:00:00.000Z",
    "ends_at": "2026-10-15T16:00:00.000Z",
    "lines": [
     "19",
     "20"
    ]
   }
  ],
  "timetable": {
   "built_at": "2026-10-10T05:05:29.044Z",
   "feed_version": "20261010_025201",
   "feed_covers_to": "2027-12-01"
  },
  "attribution": [
   "Bus Open Data Service, Department for Transport, Open Government Licence v3.0"
  ],
  "photo": null,
  "inside": [],
  "indexable": true,
  "date_modified": "2026-10-10T09:00:11Z",
  "sources": [
   {
    "id": "bus-timetables",
    "name": "Bus timetables (Bus Open Data Service)",
    "url": "https://data.bus-data.dft.gov.uk/timetable/download/",
    "licence": "OGL v3",
    "attribution": "Bus Open Data Service, Department for Transport, Open Government Licence v3.0",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-10T09:00:11.772Z",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-10T09:00:11.772Z"
   },
   {
    "id": "bus-stops",
    "name": "Bus stops (NaPTAN)",
    "url": "https://www.data.gov.uk/dataset/ff93ffc1-6656-47d8-9155-85ea0b8f2251/naptan",
    "licence": "OGL v3",
    "attribution": "Contains NaPTAN data from the Department for Transport, Open Government Licence v3.0",
    "cadence_minutes": 10080,
    "last_ok": "2026-10-10T05:05:49.521Z",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-10T05:05:49.521Z"
   },
   {
    "id": "bus-disruptions",
    "name": "Bus disruptions (Bus Open Data Service)",
    "url": "https://data.bus-data.dft.gov.uk/",
    "licence": "OGL v3",
    "attribution": "Bus Open Data Service, Department for Transport, Open Government Licence v3.0",
    "cadence_minutes": 15,
    "last_ok": "2026-10-10T09:00:14.066Z",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-10T09:00:14.066Z"
   }
  ]
 }
}