{
  "info": {
    "name": "TransCAPI",
    "description": "Public transport data for Great Britain (England, Scotland and Wales): stops and places, bus and rail departures and arrivals with live running, routes and services, live bus positions, disruptions and journey planning. Every departure says in `source` whether its time is live or timetabled. Data is official open data; attribution requirements are at https://www.transcapi.com/docs/data-sources.\n\nGet a free key at https://www.transcapi.com/signup and set it as the `api_key` collection variable. Requests use Sheffield and Leeds, where live bus tracking and live rail are both available. Trip ids change daily: take one from a departure or vehicle response and set `trip_id`.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-Api-Key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{api_key}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.transcapi.com"
    },
    {
      "key": "api_key",
      "value": ""
    },
    {
      "key": "trip_id",
      "value": ""
    },
    {
      "key": "route_id",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Airports",
      "item": [
        {
          "name": "Airports with scheduled flights in Great Britain",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/airports.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "airports.json"
              ],
              "query": [
                {
                  "key": "query",
                  "value": "Newport",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "lat",
                  "value": "53.3811",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "lon",
                  "value": "-1.4701",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "radius",
                  "value": "500",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                }
              ]
            },
            "description": "The 50 airports in England, Scotland and Wales with scheduled flights, each with its IATA and ICAO codes and its terminal entrances (where passengers arrive, from NaPTAN). Filter by `query` (name, town or code), or give `lat`/`lon` (and optionally `radius` in metres) to sort by distance. Otherwise largest first."
          }
        },
        {
          "name": "An airport and its public transport",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/airports/{{iata}}.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "airports",
                "{{iata}}.json"
              ],
              "query": []
            },
            "description": "An airport by IATA code (LHR, MAN, EDI...) with its terminal entrances; the rail stations within 3 km of a terminal (pass a `crs_code` to /v1/rail/station_timetables/{crs_code}.json for live departures); the bus, coach and tram stops within 500 m with the lines that serve them (pass an `atcocode` to /v1/bus/stop_timetables/{atcocode}.json); and disruptions in force within 3 km. Distances are straight lines to the nearest terminal entrance."
          }
        }
      ]
    },
    {
      "name": "Alerts",
      "item": [
        {
          "name": "List your push alerts",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/alerts.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "alerts.json"
              ],
              "query": []
            },
            "description": "List your push alerts"
          }
        },
        {
          "name": "Create a push alert (webhook)",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{baseUrl}}/v1/alerts.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "alerts.json"
              ],
              "query": []
            },
            "description": "TransCAPI POSTs signed JSON to your https URL when the condition is met. vehicle_approaching: a tracked bus is due at `atcocode` within `minutes` (1-30), optionally only `line`. disruption: a disruption newly matches `filters` (any of mode, severity, operator, line, atcocode, lat+lon+radius, planned). The response includes `secret`, shown once, for checking the X-TransCAPI-Signature header."
          }
        },
        {
          "name": "Delete a push alert",
          "request": {
            "method": "DELETE",
            "url": {
              "raw": "{{baseUrl}}/v1/alerts/{{alert_id}}.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "alerts",
                "{{alert_id}}.json"
              ],
              "query": []
            },
            "description": "Delete a push alert"
          }
        },
        {
          "name": "A push alert and its last 20 deliveries",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/alerts/{{alert_id}}.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "alerts",
                "{{alert_id}}.json"
              ],
              "query": []
            },
            "description": "A push alert and its last 20 deliveries"
          }
        },
        {
          "name": "Send a test event to the alert's URL",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{baseUrl}}/v1/alerts/{{alert_id}}/test.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "alerts",
                "{{alert_id}}",
                "test.json"
              ],
              "query": []
            },
            "description": "Delivers a `test` event straight away and reports what your server answered. Re-enables a paused alert if the test succeeds."
          }
        }
      ]
    },
    {
      "name": "Bus",
      "item": [
        {
          "name": "Bus activity by line or vehicle",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/activity.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "activity.json"
              ],
              "query": [
                {
                  "key": "operator",
                  "value": "",
                  "description": "National Operator Code",
                  "disabled": true
                },
                {
                  "key": "line",
                  "value": "",
                  "description": "Line name as on the bus",
                  "disabled": true
                },
                {
                  "key": "vehicle",
                  "value": "",
                  "description": "Fleet number or vehicle_id",
                  "disabled": true
                },
                {
                  "key": "days",
                  "value": "7",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Over the last `days` complete days (default 7, 1-28), from the stops each tracked bus was seen passing: trips run, distance driven, buses used, stops served, the places passed and how often, trips by hour, and for each bus its trips, distance and lines. Give operator + line, or operator + vehicle (a fleet number such as 35682, or a vehicle_id from /v1/bus/vehicles.json). Built for bus and roadside advertising: where a line or an advertised bus went and how often. It counts buses, not passengers. Distance is each trip's route length where known, otherwise straight-line between stops plus a quarter."
          }
        },
        {
          "name": "Bus punctuality by route or line",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/reliability.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "reliability.json"
              ],
              "query": [
                {
                  "key": "route_id",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "operator",
                  "value": "",
                  "description": "National Operator Code",
                  "disabled": true
                },
                {
                  "key": "line",
                  "value": "",
                  "description": "Line name as on the bus",
                  "disabled": true
                },
                {
                  "key": "days",
                  "value": "28",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Observed punctuality over the last `days` complete days (default 28, 7-56): the share of stop calls on time, early, late and very late, mean delay and its spread, on-time rates at timing points, first and last stops, and an hour-by-hour breakdown. Give a route_id (from /v1/bus/routes.json), or operator + line. operator alone lists that operator's lines. Measured where TransCAPI tracks buses: northern England and West Sussex."
          }
        },
        {
          "name": "Find bus routes by line number, operator, or a stop they serve",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/routes.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "routes.json"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "52",
                  "description": "Line number or name, e.g. \"36\" or \"X1\"",
                  "disabled": false
                },
                {
                  "key": "operator",
                  "value": "",
                  "description": "Operator name or agency id",
                  "disabled": true
                },
                {
                  "key": "atcocode",
                  "value": "370022870",
                  "description": "Only routes calling at this stop",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Find bus routes by line number, operator, or a stop they serve"
          }
        },
        {
          "name": "A bus route's directions, stops and timetable for a day",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/routes/{{route_id}}.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "routes",
                "{{route_id}}.json"
              ],
              "query": [
                {
                  "key": "date",
                  "value": "",
                  "description": "Service date (default today, UK local)",
                  "disabled": true
                },
                {
                  "key": "direction",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "Journeys per page of the timetable",
                  "disabled": false
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "A route id covers every journey run under one line number by one operator, including short workings and school journeys, so `representative_stops` is the longest single journey found rather than a union of them. `timetable` lists that day's journeys in departure order; each carries a `trip_id` to look up with /v1/bus/services/{trip_id}.json. Each entry in `directions` carries a `shape`: the path those journeys actually take, as an encoded polyline (Google algorithm, precision 5) with its point count and length in metres. It is null where the operator publishes no geometry. Do not substitute a line drawn through `representative_stops` for it -- that cuts through buildings and down roads no bus can use."
          }
        },
        {
          "name": "One scheduled journey - every stop it calls at, and where it is now",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/services/{{trip_id}}.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "services",
                "{{trip_id}}.json"
              ],
              "query": [
                {
                  "key": "date",
                  "value": "",
                  "description": "Service date the times are for (default today, UK local)",
                  "disabled": true
                },
                {
                  "key": "live",
                  "value": "True",
                  "description": "Look up the live vehicle position for this journey",
                  "disabled": true
                }
              ]
            },
            "description": "Answers \"where does the 09:42 stop, and where has it got to?\" for a single journey. `trip_id` is the value returned as `trip_id` (or `dated_vehicle_journey_ref`) on a stop timetable, or in a route's timetable. `live_vehicle` carries the tracked position and `current_stop_sequence` when a vehicle is working the journey right now, and is null otherwise - including for a journey later today, which has not set off and so has nothing to report."
          }
        },
        {
          "name": "Bus punctuality at a stop",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/stop_reliability/370022870.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "stop_reliability",
                "370022870.json"
              ],
              "query": [
                {
                  "key": "days",
                  "value": "28",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "For each line calling at the stop, over the last `days` complete days (default 28, 7-35): observations, the share on time, early, late and very late, and the median and 90th-percentile delay. Measured where TransCAPI tracks buses: northern England and West Sussex since 4 August 2026, the rest of Great Britain since 30 September 2026."
          }
        },
        {
          "name": "Departures and arrivals for a bus stop, with expected times for tracked buses and live positions",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/stop_timetables/370022870.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "stop_timetables",
                "370022870.json"
              ],
              "query": [
                {
                  "key": "datetime",
                  "value": "",
                  "description": "ISO 8601 datetime to plan around (default now)",
                  "disabled": true
                },
                {
                  "key": "from_offset",
                  "value": "0",
                  "description": "Minutes from `datetime` to start the departure window",
                  "disabled": true
                },
                {
                  "key": "to_offset",
                  "value": "60",
                  "description": "Minutes from `datetime` to end the departure window",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "live",
                  "value": "False",
                  "description": "Also fetch live BODS SIRI-VM vehicle positions and match them to departures. Applies to departures only - the feed carries an origin departure time to match on, not an arrival time at this stop.",
                  "disabled": true
                },
                {
                  "key": "type",
                  "value": "departures",
                  "description": "Which board to return. `arrivals` lists services terminating or calling here by the time they arrive, including those that terminate at this stop and so never appear as a departure.",
                  "disabled": true
                }
              ]
            },
            "description": "Departures and arrivals for a bus stop, with expected times for tracked buses and live positions"
          }
        },
        {
          "name": "Find bus/tram/rail stops near a location or within a bounding box",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/stops.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "stops.json"
              ],
              "query": [
                {
                  "key": "lat",
                  "value": "53.3811",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "lon",
                  "value": "-1.4701",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "radius",
                  "value": "500",
                  "description": "Search radius in metres (used with lat/lon)",
                  "disabled": false
                },
                {
                  "key": "min_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "min_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "type",
                  "value": "",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Roughly a third of stop names are shared by more than one stop, because a name describes a place and the two poles either side of a road are both at it. Three fields tell them apart. `towards` is the commonest destination of journeys calling there, derived from the timetable, and is the one a passenger can act on. `towards_next` is the first differently-named stop the bus calls at next, which separates the pairs that share a destination -- any circular route does. `bearing` is NaPTAN's own compass direction and is the weakest of the three: opposite poles on one road are frequently given the same one."
          }
        },
        {
          "name": "Live bus positions near a point or in a bounding box",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/bus/vehicles.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bus",
                "vehicles.json"
              ],
              "query": [
                {
                  "key": "lat",
                  "value": "53.3811",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "lon",
                  "value": "-1.4701",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "radius",
                  "value": "500",
                  "description": "Metres from lat/lon, up to 10000",
                  "disabled": false
                },
                {
                  "key": "min_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "min_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "line",
                  "value": "",
                  "description": "Line name, e.g. 52a (case-insensitive)",
                  "disabled": true
                },
                {
                  "key": "operator",
                  "value": "",
                  "description": "Operator code (NOC) or exact name",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                }
              ]
            },
            "description": "Every bus reporting its position to BODS in the area, linked to its timetabled trip where the timetable holds it, so `trip_id` can be passed to /v1/bus/services/{trip_id}.json. `delay_seconds` is given where TransCAPI tracks the bus against its timetable (currently wherever the operator reports positions to BODS) and null elsewhere. Positions older than five minutes are left out."
          }
        }
      ]
    },
    {
      "name": "Disruptions",
      "item": [
        {
          "name": "Planned works, incidents and line status across bus, National Rail and TfL modes",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/disruptions.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "disruptions.json"
              ],
              "query": [
                {
                  "key": "mode",
                  "value": "",
                  "description": "Comma-separated modes to include - any of `bus`, `tram`, `rail`, `tube`, `dlr`, `overground`, `elizabeth-line`. Default is all of them. `tram` draws on both SIRI-SX and TfL. `rail` is National Rail's engineering works and incidents, plus any rail situations bus operators publish through SIRI-SX.",
                  "disabled": true
                },
                {
                  "key": "severity",
                  "value": "",
                  "description": "Comma-separated severities - any of `severe`, `minor`, `information`, `good`, `unknown`.",
                  "disabled": true
                },
                {
                  "key": "atcocode",
                  "value": "370022870",
                  "description": "Only disruptions naming this stop as affected",
                  "disabled": true
                },
                {
                  "key": "operator",
                  "value": "",
                  "description": "Operator name or code, matched as a substring",
                  "disabled": true
                },
                {
                  "key": "line",
                  "value": "",
                  "description": "Line or route name, matched as a substring",
                  "disabled": true
                },
                {
                  "key": "lat",
                  "value": "53.3811",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "lon",
                  "value": "-1.4701",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "radius",
                  "value": "500",
                  "description": "Search radius in metres around lat/lon. Only disruptions naming at least one stop with coordinates can match a geographic query.",
                  "disabled": false
                },
                {
                  "key": "min_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "min_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "path",
                  "value": "",
                  "description": "An encoded polyline (precision 5, as OpenTripPlanner and Google Maps emit) describing a route. Only disruptions naming a stop within `path_radius` metres of it are returned. Use this rather than a bounding box to ask \"what is disrupting this journey\": a service number identifies a route only within one operator's area, so filtering by `line` alone will match the same number in other towns. Matching uses each situation's complete stop list, not the capped one in the response.",
                  "disabled": true
                },
                {
                  "key": "path_radius",
                  "value": "300",
                  "description": "How far from the path a stop may be, in metres. Maximum 5000. Only meaningful alongside `path`.",
                  "disabled": true
                },
                {
                  "key": "planned",
                  "value": "",
                  "description": "True for planned works only, false for unplanned incidents only. Omit to include both.",
                  "disabled": true
                },
                {
                  "key": "active_only",
                  "value": "True",
                  "description": "Exclude disruptions whose validity period has not started or has ended",
                  "disabled": true
                },
                {
                  "key": "include_good_service",
                  "value": "False",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Combines the DfT's national BODS SIRI-SX bus situation feed, National Rail's Knowledgebase incidents (planned engineering works and unplanned incidents), and TfL's line status for the Tube, DLR, Overground, Elizabeth line and trams, normalised into one shape. Each result carries the `source` it came from (`bods_siri_sx`, `nre_kb`, `tfl`). National Rail incidents list the stations named in their affected routes, with CRS codes and positions, so stop, location and route filters apply to rail too. By default only disruptions currently in force are returned, and lines running a good service are omitted; pass `include_good_service=true` to see every TfL line's status including the healthy ones. The `sources` object reports when each feed was last retrieved and whether it last failed, so an empty list is distinguishable from an outage."
          }
        }
      ]
    },
    {
      "name": "Journey",
      "item": [
        {
          "name": "Plan a journey between two points",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/journey.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "journey.json"
              ],
              "query": [
                {
                  "key": "from_lat",
                  "value": "53.3811",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "from_lon",
                  "value": "-1.4701",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "to_lat",
                  "value": "53.4106",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "to_lon",
                  "value": "-1.4290",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "datetime",
                  "value": "",
                  "description": "ISO8601 datetime for departure (or arrival if arrive_by=true). Defaults to now.",
                  "disabled": true
                },
                {
                  "key": "arrive_by",
                  "value": "False",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "modes",
                  "value": "walk,bicycle",
                  "description": "Comma-separated non-transit alternatives to compute alongside the transit result - any of `walk`, `bicycle`, `car`. Pass an empty value to skip them. Transit is always returned. `car` is off by default and returns a single driving itinerary for comparison against transit; like the other alternatives it is subject to the same coverage area, since driving needs the same street network.",
                  "disabled": true
                },
                {
                  "key": "transit_modes",
                  "value": "tram,rail",
                  "description": "Comma-separated optional transit sub-modes - any of `tram`, `rail`. Bus and coach are always included. Pass an empty value to search bus and coach only.",
                  "disabled": true
                },
                {
                  "key": "railcard",
                  "value": "",
                  "description": "Price rail legs with a railcard (code from /v1/rail/railcards.json, e.g. YNG for the 16-25 Railcard).",
                  "disabled": true
                },
                {
                  "key": "include_fares",
                  "value": "True",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "include_live",
                  "value": "True",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "include_intermediate_stops",
                  "value": "False",
                  "description": "Include every stop called at on each transit leg.",
                  "disabled": true
                },
                {
                  "key": "max_walk_distance",
                  "value": "",
                  "description": "Maximum length in metres of any single walking leg. Itineraries with a longer walk are excluded. Does not apply to the direct walking alternative.",
                  "disabled": true
                },
                {
                  "key": "max_total_walk_distance",
                  "value": "",
                  "description": "Maximum total metres walked across the whole journey, summed over every walking leg. Does not apply to the direct walking alternative.",
                  "disabled": true
                },
                {
                  "key": "max_gradient",
                  "value": "",
                  "description": "Steepest slope, in percent, allowed on any walking leg, up or down (8.3 is the 1-in-12 ramp standard). Itineraries with a steeper walk are excluded, measured from OS Terrain 50. Walks that couldn't be measured don't exclude a journey but leave accessibility.gradient_checked false.",
                  "disabled": true
                },
                {
                  "key": "include_steps",
                  "value": "False",
                  "description": "Include turn-by-turn directions on each walking leg - direction, street name, distance and coordinate per step.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                }
              ]
            },
            "description": "Returns transit itineraries between two coordinates, with per-leg fare estimates and live vehicle positions where available, plus optional walking and cycling alternatives. Covers England, Scotland and Wales (bus, coach, rail, Underground, metro, tram, ferry) up to two months ahead, and the island of Ireland (Translink in Northern Ireland, every NTA-listed operator in the Republic, Luas and Irish Rail) as a separate area: a journey between Great Britain and Ireland returns 422 outside_coverage, as does the Isle of Man. Bus, tram and metro legs follow the operator's route where published (leg_geometry_source). Walking legs carry terrain (climb, descent, steepest gradient, shape and estimated calories, from OS Terrain 50) and each itinerary a walking summary. Every leg and itinerary carries carbon: grams of CO2e from the UK government's 2026 conversion factors, with driving alone the same distance for comparison. Itineraries with changes carry connections: the time to spare at each and the chance of making it, from how the buses involved have run on recent days."
          }
        },
        {
          "name": "Area reachable by public transport (isochrones)",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/journey/reachable.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "journey",
                "reachable.json"
              ],
              "query": [
                {
                  "key": "lat",
                  "value": "53.3811",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "lon",
                  "value": "-1.4701",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "cutoffs",
                  "value": "15,30,45",
                  "description": "Comma-separated minutes, up to four, each at most 90.",
                  "disabled": true
                },
                {
                  "key": "datetime",
                  "value": "",
                  "description": "Departure time, ISO 8601, now until the end of tomorrow. Defaults to now.",
                  "disabled": true
                },
                {
                  "key": "max_walk",
                  "value": "800",
                  "description": "Longest walk to or from a stop, metres (100-2000).",
                  "disabled": true
                }
              ]
            },
            "description": "GeoJSON of the area reachable from a point within each cutoff, by bus, coach, tram, metro, Underground, ferry and rail, anywhere in Great Britain or Ireland, leaving at a given time today or tomorrow. Walking to, between and from stops is estimated by straight-line distance with a detour allowance, so edges are good estimates rather than street-exact."
          }
        },
        {
          "name": "Travel times from one origin to many destinations",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{baseUrl}}/v1/journey/travel_times.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "journey",
                "travel_times.json"
              ],
              "query": []
            },
            "description": "Minutes by public transport (with walking) from one point to up to 500 destinations, anywhere in Great Britain or Ireland, leaving at a given time today or tomorrow. null where a destination can't be reached within max_minutes. Walking is estimated by straight-line distance with a detour allowance. Also accepts GET with `to=lat,lon|lat,lon` (up to 100)."
          }
        }
      ]
    },
    {
      "name": "Places",
      "item": [
        {
          "name": "Search for places (stops, settlements, postcodes, streets, landmarks)",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/places.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "places.json"
              ],
              "query": [
                {
                  "key": "query",
                  "value": "Newport",
                  "description": "Free text search term",
                  "disabled": false
                },
                {
                  "key": "type",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "lat",
                  "value": "53.3811",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "lon",
                  "value": "-1.4701",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "min_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "min_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Streets and landmarks (schools, hospitals, parks, hills, lakes) are Great Britain only, from OS Open Names. A street is matched with its town when the query names one, \"Broad Street, Sheffield\" or \"broad street sheffield\"; otherwise nearest to lat/lon, or in the largest towns first."
          }
        }
      ]
    },
    {
      "name": "Rail",
      "item": [
        {
          "name": "Rail fares between two stations",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/rail/fares.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "rail",
                "fares.json"
              ],
              "query": [
                {
                  "key": "from",
                  "value": "",
                  "description": "Origin station CRS code",
                  "disabled": true
                },
                {
                  "key": "to",
                  "value": "",
                  "description": "Destination station CRS code",
                  "disabled": true
                },
                {
                  "key": "railcard",
                  "value": "",
                  "description": "Railcard code from /v1/rail/railcards.json, e.g. YNG for the 16-25 Railcard",
                  "disabled": true
                },
                {
                  "key": "class",
                  "value": "all",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "include_seasons",
                  "value": "False",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Walk-up and Advance fares for one adult between two stations in Great Britain, from the Rail Delivery Group's fares data: Anytime, Off-Peak, Super Off-Peak and Advance singles and returns, with the route each is valid on, its time restriction and validity. Advance fares are given as a range (`price` from the cheapest tier, `price_to` the dearest): the data has the prices but not how many seats are left at each. With `railcard`, prices are the railcard price and tickets the railcard can't be used with are left out."
          }
        },
        {
          "name": "Railcards that rail fares can be priced with",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/rail/railcards.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "rail",
                "railcards.json"
              ],
              "query": []
            },
            "description": "Railcards that rail fares can be priced with"
          }
        },
        {
          "name": "Find rail routes by operator",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/rail/routes.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "rail",
                "routes.json"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "Northern",
                  "description": "Operator name or 2-letter ATOC code, e.g. \"Northern\" or \"NT\"",
                  "disabled": false
                },
                {
                  "key": "operator",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "crs_code",
                  "value": "LDS",
                  "description": "Only operators calling at this station",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "The rail schedule is built from the Network Rail CIF feed, which groups services by operator rather than by named line - so a rail route is one train operating company, and its `operator` field names it. Use /v1/rail/services/{trip_id}.json for an individual train."
          }
        },
        {
          "name": "A rail operator's services for a day",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/rail/routes/{{route_id}}.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "rail",
                "routes",
                "{{route_id}}.json"
              ],
              "query": [
                {
                  "key": "date",
                  "value": "",
                  "description": "Service date (default today, UK local)",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Because a rail route is a whole operator, `timetable` here is every train that operator runs on the date - thousands for the largest ones - so it is paged, and `representative_stops` is one journey's calling points rather than anything resembling a line."
          }
        },
        {
          "name": "One train - every station it calls at, and when",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/rail/services/{{trip_id}}.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "rail",
                "services",
                "{{trip_id}}.json"
              ],
              "query": [
                {
                  "key": "date",
                  "value": "",
                  "description": "Service date the times are for (default today, UK local)",
                  "disabled": true
                },
                {
                  "key": "live",
                  "value": "True",
                  "description": "Merge live running from Darwin, for a train running today.",
                  "disabled": true
                }
              ]
            },
            "description": "Answers \"where does the 09:42 to Leeds stop?\" for a single train. `trip_id` comes from the `trip_id` field of a station timetable or a route's timetable. For a train running today, each call carries live running from National Rail's Darwin: expected and actual times, status, and the platform at the next station."
          }
        },
        {
          "name": "Departures and arrivals for a rail station, with live running from National Rail",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/rail/station_timetables/LDS.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "rail",
                "station_timetables",
                "LDS.json"
              ],
              "query": [
                {
                  "key": "datetime",
                  "value": "",
                  "description": "ISO 8601 datetime to plan around (default now)",
                  "disabled": true
                },
                {
                  "key": "from_offset",
                  "value": "0",
                  "description": "Minutes from `datetime` to start the departure window",
                  "disabled": true
                },
                {
                  "key": "to_offset",
                  "value": "60",
                  "description": "Minutes from `datetime` to end the departure window",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "type",
                  "value": "departures",
                  "description": "Which board to return. `arrivals` lists services by the time they reach this station, including those terminating here, which a departure board can never show.",
                  "disabled": true
                },
                {
                  "key": "live",
                  "value": "True",
                  "description": "Merge live running from National Rail's Darwin: expected times, platforms, cancellations and delay reasons. Applies within two hours either side of now; further out the board is scheduled.",
                  "disabled": true
                }
              ]
            },
            "description": "Departures and arrivals for a rail station, with live running from National Rail"
          }
        },
        {
          "name": "Find rail stations near a location or within a bounding box",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/v1/rail/stations.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "rail",
                "stations.json"
              ],
              "query": [
                {
                  "key": "lat",
                  "value": "53.3811",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "lon",
                  "value": "-1.4701",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "radius",
                  "value": "500",
                  "description": "Search radius in metres (used with lat/lon)",
                  "disabled": false
                },
                {
                  "key": "min_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "min_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lat",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "max_lon",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "Find rail stations near a location or within a bounding box"
          }
        }
      ]
    }
  ]
}