[
  {
    "name": "get_accidentstats",
    "description": "Gets all accident details for accidents occuring in the specified year",
    "inputSchema": {
      "type": "object",
      "properties": {
        "year": {
          "type": "integer",
          "description": "The year for which to filter the accidents on."
        }
      },
      "required": [
        "year"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/AccidentStats/{year}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_airquality",
    "description": "Gets air quality data feed",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/AirQuality",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_bikepoint",
    "description": "Gets all bike point locations. The Place object has an addtionalProperties array which contains the nbBikes, nbDocks and nbSpaces\r\n            numbers which give the status of the BikePoint. A mismatch in these numbers i.e. nbDocks - (nbBikes + nbSpaces) != 0 indicates broken docks.",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/BikePoint",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_bikepoint_by_id",
    "description": "Gets the bike point with the given id.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A bike point id (a list of ids can be obtained from the above BikePoint call)"
        }
      },
      "required": [
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/BikePoint/{id}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_bikepoint_search",
    "description": "Search for bike stations by their name, a bike point's name often contains information about the name of the street\r\n            or nearby landmarks, for example. Note that the search result does not contain the PlaceProperties i.e. the status\r\n            or occupancy of the BikePoint, to get that information you should retrieve the BikePoint by its id on /BikePoint/id.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "The search term e.g. \"St. James\""
        }
      },
      "required": [
        "query"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/BikePoint/Search",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_cabwise_search",
    "description": "Gets taxis and minicabs contact information",
    "inputSchema": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "number",
          "description": "Latitude"
        },
        "lon": {
          "type": "number",
          "description": "Longitude"
        },
        "optype": {
          "type": "string",
          "description": "Operator Type e.g Minicab, Executive, Limousine"
        },
        "wc": {
          "type": "string",
          "description": "Wheelchair accessible"
        },
        "radius": {
          "type": "number",
          "description": "The radius of the bounding circle in metres"
        },
        "name": {
          "type": "string",
          "description": "Trading name of operating company"
        },
        "maxResults": {
          "type": "integer",
          "description": "An optional parameter to limit the number of results return. Default and maximum is 20."
        },
        "legacyFormat": {
          "type": "boolean",
          "description": "Legacy Format"
        },
        "forceXml": {
          "type": "boolean",
          "description": "Force Xml"
        },
        "twentyFourSevenOnly": {
          "type": "boolean",
          "description": "Twenty Four Seven Only"
        }
      },
      "required": [
        "lat",
        "lon"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Cabwise/search",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_journey_journeyresults_to",
    "description": "Perform a Journey Planner search from the parameters specified in simple types",
    "inputSchema": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "description": "Origin of the journey. Can be WGS84 coordinates expressed as \"lat,long\", a UK postcode, a Naptan (StopPoint) id, an ICS StopId, or a free-text string (will cause disambiguation unless it exactly matches a point of interest name)."
        },
        "to": {
          "type": "string",
          "description": "Destination of the journey. Can be WGS84 coordinates expressed as \"lat,long\", a UK postcode, a Naptan (StopPoint) id, an ICS StopId, or a free-text string (will cause disambiguation unless it exactly matches a point of interest name)."
        },
        "via": {
          "type": "string",
          "description": "Travel through point on the journey. Can be WGS84 coordinates expressed as \"lat,long\", a UK postcode, a Naptan (StopPoint) id, an ICS StopId, or a free-text string (will cause disambiguation unless it exactly matches a point of interest name)."
        },
        "nationalSearch": {
          "type": "boolean",
          "description": "Does the journey cover stops outside London? eg. \"nationalSearch=true\""
        },
        "date": {
          "type": "string",
          "description": "The date must be in yyyyMMdd format"
        },
        "time": {
          "type": "string",
          "description": "The time must be in HHmm format"
        },
        "timeIs": {
          "type": "string",
          "description": "Does the time given relate to arrival or leaving time? Possible options: \"departing\" | \"arriving\""
        },
        "journeyPreference": {
          "type": "string",
          "description": "The journey preference eg possible options: \"leastinterchange\" | \"leasttime\" | \"leastwalking\""
        },
        "mode": {
          "type": "array",
          "description": "The mode must be a comma separated list of modes. eg possible options: \"public-bus,overground,train,tube,coach,dlr,cablecar,tram,river,walking,cycle\""
        },
        "accessibilityPreference": {
          "type": "array",
          "description": "The accessibility preference must be a comma separated list eg. \"noSolidStairs,noEscalators,noElevators,stepFreeToVehicle,stepFreeToPlatform\""
        },
        "fromName": {
          "type": "string",
          "description": "An optional name to associate with the origin of the journey in the results."
        },
        "toName": {
          "type": "string",
          "description": "An optional name to associate with the destination of the journey in the results."
        },
        "viaName": {
          "type": "string",
          "description": "An optional name to associate with the via point of the journey in the results."
        },
        "maxTransferMinutes": {
          "type": "string",
          "description": "The max walking time in minutes for transfer eg. \"120\""
        },
        "maxWalkingMinutes": {
          "type": "string",
          "description": "The max walking time in minutes for journeys eg. \"120\""
        },
        "walkingSpeed": {
          "type": "string",
          "description": "The walking speed. eg possible options: \"slow\" | \"average\" | \"fast\"."
        },
        "cyclePreference": {
          "type": "string",
          "description": "The cycle preference. eg possible options: \"allTheWay\" | \"leaveAtStation\" | \"takeOnTransport\" | \"cycleHire\""
        },
        "adjustment": {
          "type": "string",
          "description": "Time adjustment command. eg possible options: \"TripFirst\" | \"TripLast\""
        },
        "bikeProficiency": {
          "type": "array",
          "description": "A comma separated list of cycling proficiency levels. eg possible options: \"easy,moderate,fast\""
        },
        "alternativeCycle": {
          "type": "boolean",
          "description": "Option to determine whether to return alternative cycling journey"
        },
        "alternativeWalking": {
          "type": "boolean",
          "description": "Option to determine whether to return alternative walking journey"
        },
        "applyHtmlMarkup": {
          "type": "boolean",
          "description": "Flag to determine whether certain text (e.g. walking instructions) should be output with HTML tags or not."
        },
        "useMultiModalCall": {
          "type": "boolean",
          "description": "A boolean to indicate whether or not to return 3 public transport journeys, a bus journey, a cycle hire journey, a personal cycle journey and a walking journey"
        },
        "walkingOptimization": {
          "type": "boolean",
          "description": "A boolean to indicate whether to optimize journeys using walking"
        },
        "taxiOnlyTrip": {
          "type": "boolean",
          "description": "A boolean to indicate whether to return one or more taxi journeys. Note, setting this to true will override \"useMultiModalCall\"."
        },
        "routeBetweenEntrances": {
          "type": "boolean",
          "description": "A boolean to indicate whether public transport routes should include directions between platforms and station entrances."
        },
        "useRealTimeLiveArrivals": {
          "type": "boolean",
          "description": "A boolean to indicate if we want to receive real time live arrivals data where available."
        },
        "calcOneDirection": {
          "type": "boolean",
          "description": "A boolean to make Journey Planner calculate journeys in one temporal direction only. In other words, only calculate journeys after the 'depart' time, or before the 'arrive' time. By default, the Journey Planner engine (EFA) calculates journeys in both temporal directions."
        },
        "includeAlternativeRoutes": {
          "type": "boolean",
          "description": "A boolean to make Journey Planner return alternative routes. Alternative routes are calculated by removing one or more lines included in the fastest route and re-calculating. By default, these journeys will not be returned."
        },
        "overrideMultiModalScenario": {
          "type": "integer",
          "description": "An optional integer to indicate what multi modal scenario we want to use."
        },
        "combineTransferLegs": {
          "type": "boolean",
          "description": "A boolean to indicate whether walking leg to station entrance and walking leg from station entrance to platform should be combined. Defaults to true"
        }
      },
      "required": [
        "from",
        "to"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Journey/JourneyResults/{from}/to/{to}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_journey_meta_modes",
    "description": "Gets a list of all of the available journey planner modes",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Journey/Meta/Modes",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line",
    "description": "Gets lines that match the specified line ids.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids."
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{ids}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_arrivals",
    "description": "Get the list of arrival predictions for given line ids based at the given stop",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids."
        },
        "stopPointId": {
          "type": "string",
          "description": "Optional. Id of stop to get arrival predictions for (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)"
        },
        "direction": {
          "type": "string",
          "description": "Optional. The direction of travel. Can be inbound or outbound or all. If left blank, and destinationStopId is set, will default to all"
        },
        "destinationStationId": {
          "type": "string",
          "description": "Optional. Id of destination stop"
        }
      },
      "required": [
        "ids",
        "stopPointId"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{ids}/Arrivals/{stopPointId}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_disruption",
    "description": "Get disruptions for the given line ids",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids."
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{ids}/Disruption",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_meta_disruptioncategories",
    "description": "Gets a list of valid disruption categories",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Meta/DisruptionCategories",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_meta_modes",
    "description": "Gets a list of valid modes",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Meta/Modes",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_meta_servicetypes",
    "description": "Gets a list of valid ServiceTypes to filter on",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Meta/ServiceTypes",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_meta_severity",
    "description": "Gets a list of valid severity codes",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Meta/Severity",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_mode",
    "description": "Gets lines that serve the given modes.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "modes": {
          "type": "array",
          "description": "A comma-separated list of modes e.g. tube,dlr"
        }
      },
      "required": [
        "modes"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Mode/{modes}",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_mode_disruption",
    "description": "Get disruptions for all lines of the given modes.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "modes": {
          "type": "array",
          "description": "A comma-separated list of modes e.g. tube,dlr"
        }
      },
      "required": [
        "modes"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Mode/{modes}/Disruption",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_mode_route",
    "description": "Gets all lines and their valid routes for given modes, including the name and id of the originating and terminating stops for each route",
    "inputSchema": {
      "type": "object",
      "properties": {
        "modes": {
          "type": "array",
          "description": "A comma-separated list of modes e.g. tube,dlr"
        },
        "serviceTypes": {
          "type": "array",
          "description": "A comma seperated list of service types to filter on. Supported values: Regular, Night. Defaulted to 'Regular' if not specified"
        }
      },
      "required": [
        "modes"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Mode/{modes}/Route",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_mode_status",
    "description": "Gets the line status of for all lines for the given modes",
    "inputSchema": {
      "type": "object",
      "properties": {
        "modes": {
          "type": "array",
          "description": "A comma-separated list of modes to filter by. e.g. tube,dlr"
        },
        "detail": {
          "type": "boolean",
          "description": "Include details of the disruptions that are causing the line status including the affected stops and routes"
        },
        "severityLevel": {
          "type": "string",
          "description": "If specified, ensures that only those line status(es) are returned within the lines that have disruptions with the matching severity level."
        }
      },
      "required": [
        "modes"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Mode/{modes}/Status",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_route",
    "description": "Get all valid routes for all lines, including the name and id of the originating and terminating stops for each route.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "serviceTypes": {
          "type": "array",
          "description": "A comma seperated list of service types to filter on. Supported values: Regular, Night. Defaulted to 'Regular' if not specified"
        }
      }
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Route",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_route_by_ids",
    "description": "Get all valid routes for given line ids, including the name and id of the originating and terminating stops for each route.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids."
        },
        "serviceTypes": {
          "type": "array",
          "description": "A comma seperated list of service types to filter on. Supported values: Regular, Night. Defaulted to 'Regular' if not specified"
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{ids}/Route",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_route_sequence",
    "description": "Gets all valid routes for given line id, including the sequence of stops on each route.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A single line id e.g. victoria"
        },
        "direction": {
          "type": "string",
          "description": "The direction of travel. Can be inbound or outbound."
        },
        "serviceTypes": {
          "type": "array",
          "description": "A comma seperated list of service types to filter on. Supported values: Regular, Night. Defaulted to 'Regular' if not specified"
        },
        "excludeCrowding": {
          "type": "boolean",
          "description": "That excludes crowding from line disruptions. Can be true or false."
        }
      },
      "required": [
        "id",
        "direction"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{id}/Route/Sequence/{direction}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_search",
    "description": "Search for lines or routes matching the query string",
    "inputSchema": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "Search term e.g victoria"
        },
        "modes": {
          "type": "array",
          "description": "Optionally filter by the specified modes"
        },
        "serviceTypes": {
          "type": "array",
          "description": "A comma seperated list of service types to filter on. Supported values: Regular, Night. Defaulted to 'Regular' if not specified"
        }
      },
      "required": [
        "query"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Search/{query}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_status",
    "description": "Gets the line status of for given line ids e.g Minor Delays",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids."
        },
        "detail": {
          "type": "boolean",
          "description": "Include details of the disruptions that are causing the line status including the affected stops and routes"
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{ids}/Status",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_status_by_severity",
    "description": "Gets the line status for all lines with a given severity\r\n            A list of valid severity codes can be obtained from a call to Line/Meta/Severity",
    "inputSchema": {
      "type": "object",
      "properties": {
        "severity": {
          "type": "integer",
          "description": "The level of severity (eg: a number from 0 to 14)"
        }
      },
      "required": [
        "severity"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/Status/{severity}",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_line_status_to",
    "description": "Gets the line status for given line ids during the provided dates e.g Minor Delays",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids."
        },
        "detail": {
          "type": "boolean",
          "description": "Include details of the disruptions that are causing the line status including the affected stops and routes"
        },
        "startDate": {
          "type": "string"
        },
        "endDate": {
          "type": "string"
        },
        "dateRange.startDate": {
          "type": "string"
        },
        "dateRange.endDate": {
          "type": "string"
        }
      },
      "required": [
        "ids",
        "startDate",
        "endDate"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{ids}/Status/{StartDate}/to/{EndDate}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_stoppoints",
    "description": "Gets a list of the stations that serve the given line id",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A single line id e.g. victoria"
        },
        "tflOperatedNationalRailStationsOnly": {
          "type": "boolean",
          "description": "If the national-rail line is requested, this flag will filter the national rail stations so that only those operated by TfL are returned"
        }
      },
      "required": [
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{id}/StopPoints",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_timetable",
    "description": "Gets the timetable for a specified station on the give line",
    "inputSchema": {
      "type": "object",
      "properties": {
        "fromStopPointId": {
          "type": "string",
          "description": "The originating station's stop point id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)"
        },
        "id": {
          "type": "string",
          "description": "A single line id e.g. victoria"
        }
      },
      "required": [
        "fromStopPointId",
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{id}/Timetable/{fromStopPointId}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_line_timetable_to",
    "description": "Gets the timetable for a specified station on the give line with specified destination",
    "inputSchema": {
      "type": "object",
      "properties": {
        "fromStopPointId": {
          "type": "string",
          "description": "The originating station's stop point id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)"
        },
        "id": {
          "type": "string",
          "description": "A single line id e.g. victoria"
        },
        "toStopPointId": {
          "type": "string",
          "description": "The destination stations's Naptan code"
        }
      },
      "required": [
        "fromStopPointId",
        "id",
        "toStopPointId"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Line/{id}/Timetable/{fromStopPointId}/to/{toStopPointId}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_mode_activeservicetypes",
    "description": "Returns the service type active for a mode.\r\n            Currently only supports tube",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Mode/ActiveServiceTypes",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_mode_arrivals",
    "description": "Gets the next arrival predictions for all stops of a given mode",
    "inputSchema": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "description": "A mode name e.g. tube, dlr"
        },
        "count": {
          "type": "integer",
          "description": "A number of arrivals to return for each stop, -1 to return all available."
        }
      },
      "required": [
        "mode"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Mode/{mode}/Arrivals",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_occupancy_bikepoints",
    "description": "Get the occupancy for bike points.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array"
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Occupancy/BikePoints/{ids}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_occupancy_carpark",
    "description": "Gets the occupancy for all car parks that have occupancy data",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Occupancy/CarPark",
      "effect": "reads",
      "verification": "broken",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_occupancy_carpark_by_id",
    "description": "Gets the occupancy for a car park with a given id",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Occupancy/CarPark/{id}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_occupancy_chargeconnector",
    "description": "Gets the occupancy for all charge connectors",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Occupancy/ChargeConnector",
      "effect": "reads",
      "verification": "broken",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_occupancy_chargeconnector_by_ids",
    "description": "Gets the occupancy for a charge connectors with a given id (sourceSystemPlaceId)",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array"
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Occupancy/ChargeConnector/{ids}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_place",
    "description": "Gets the places that lie within a geographic region. The geographic region of interest can either be specified\r\n            by using a lat/lon geo-point and a radius in metres to return places within the locus defined by the lat/lon of\r\n            its centre or alternatively, by the use of a bounding box defined by the lat/lon of its north-west and south-east corners.\r\n            Optionally filters on type and can strip properties for a smaller payload.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "radius": {
          "type": "number",
          "description": "The radius of the bounding circle in metres when only lat/lon are specified."
        },
        "categories": {
          "type": "array",
          "description": "An optional list of comma separated property categories to return in the Place's property bag. If null or empty, all categories of property are returned. Pass the keyword \"none\" to return no properties (a valid list of categories can be obtained from the /Place/Meta/categories endpoint)"
        },
        "includeChildren": {
          "type": "boolean",
          "description": "Defaults to false. If true child places e.g. individual charging stations at a charge point while be included, otherwise just the URLs of any child places will be returned"
        },
        "type": {
          "type": "array",
          "description": "Place types to filter on, or null to return all types"
        },
        "activeOnly": {
          "type": "boolean",
          "description": "An optional parameter to limit the results to active records only (Currently only the 'VariableMessageSign' place type is supported)"
        },
        "numberOfPlacesToReturn": {
          "type": "integer",
          "description": "If specified, limits the number of returned places equal to the given value"
        },
        "placeGeo.swLat": {
          "type": "number"
        },
        "placeGeo.swLon": {
          "type": "number"
        },
        "placeGeo.neLat": {
          "type": "number"
        },
        "placeGeo.neLon": {
          "type": "number"
        },
        "placeGeo.lat": {
          "type": "number"
        },
        "placeGeo.lon": {
          "type": "number"
        }
      }
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place",
      "effect": "reads",
      "verification": "broken",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_place_address_streets",
    "description": "Gets the set of streets associated with a post code.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "postcode": {
          "type": "string"
        },
        "postcodeInput.postcode": {
          "type": "string"
        }
      },
      "required": [
        "postcode"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place/Address/Streets/{Postcode}",
      "effect": "reads",
      "verification": "broken",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_place_at",
    "description": "Gets any places of the given type whose geography intersects the given latitude and longitude. In practice this means the Place\r\n            must be polygonal e.g. a BoroughBoundary.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "type": {
          "type": "array",
          "description": "The place type (a valid list of place types can be obtained from the /Place/Meta/placeTypes endpoint)"
        },
        "lat": {
          "type": "string"
        },
        "lon": {
          "type": "string"
        },
        "location.lat": {
          "type": "number"
        },
        "location.lon": {
          "type": "number"
        }
      },
      "required": [
        "type",
        "lat",
        "lon",
        "location.lat",
        "location.lon"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place/{type}/At/{Lat}/{Lon}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_place_by_id",
    "description": "Gets the place with the given id.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the place, you can use the /Place/Types/{types} endpoint to get a list of places for a given type including their ids"
        },
        "includeChildren": {
          "type": "boolean",
          "description": "Defaults to false. If true child places e.g. individual charging stations at a charge point while be included, otherwise just the URLs of any child places will be returned"
        }
      },
      "required": [
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place/{id}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_place_meta_categories",
    "description": "Gets a list of all of the available place property categories and keys.",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place/Meta/Categories",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_place_meta_placetypes",
    "description": "Gets a list of the available types of Place.",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place/Meta/PlaceTypes",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_place_overlay",
    "description": "Gets the place overlay for a given set of co-ordinates and a given width/height.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "z": {
          "type": "integer",
          "description": "The zoom level"
        },
        "type": {
          "type": "array",
          "description": "The place type (a valid list of place types can be obtained from the /Place/Meta/placeTypes endpoint)"
        },
        "width": {
          "type": "integer",
          "description": "The width of the requested overlay."
        },
        "height": {
          "type": "integer",
          "description": "The height of the requested overlay."
        },
        "lat": {
          "type": "string"
        },
        "lon": {
          "type": "string"
        },
        "location.lat": {
          "type": "number"
        },
        "location.lon": {
          "type": "number"
        }
      },
      "required": [
        "z",
        "type",
        "width",
        "height",
        "lat",
        "lon",
        "location.lat",
        "location.lon"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place/{type}/overlay/{z}/{Lat}/{Lon}/{width}/{height}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_place_search",
    "description": "Gets all places that matches the given query",
    "inputSchema": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the place, you can use the /Place/Types/{types} endpoint to get a list of places for a given type including their names."
        },
        "types": {
          "type": "array",
          "description": "A comma-separated list of the types to return. Max. approx 12 types."
        }
      },
      "required": [
        "name"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place/Search",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_place_type",
    "description": "Gets all places of a given type",
    "inputSchema": {
      "type": "object",
      "properties": {
        "types": {
          "type": "array",
          "description": "A comma-separated list of the types to return. Max. approx 12 types.\r\n            A valid list of place types can be obtained from the /Place/Meta/placeTypes endpoint."
        },
        "activeOnly": {
          "type": "boolean",
          "description": "An optional parameter to limit the results to active records only (Currently only the 'VariableMessageSign' place type is supported)"
        }
      },
      "required": [
        "types"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Place/Type/{types}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_road",
    "description": "Gets all roads managed by TfL",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Road",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_road_all_disruption",
    "description": "Gets a list of active disruptions filtered by disruption Ids.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "disruptionIds": {
          "type": "array",
          "description": "Comma-separated list of disruption identifiers to filter by."
        },
        "stripContent": {
          "type": "boolean",
          "description": "Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location and comments."
        }
      },
      "required": [
        "disruptionIds"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Road/all/Disruption/{disruptionIds}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_road_all_street_disruption",
    "description": "Gets a list of disrupted streets. If no date filters are provided, current disruptions are returned.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "startDate": {
          "type": "string",
          "description": "Optional, the start time to filter on."
        },
        "endDate": {
          "type": "string",
          "description": "Optional, The end time to filter on."
        }
      },
      "required": [
        "startDate",
        "endDate"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Road/all/Street/Disruption",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_road_by_ids",
    "description": "Gets the road with the specified id (e.g. A1)",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "Comma-separated list of road identifiers e.g. \"A406, A2\" (a full list of supported road identifiers can be found at the /Road/ endpoint)"
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Road/{ids}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_road_disruption",
    "description": "Get active disruptions, filtered by road ids",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "Comma-separated list of road identifiers e.g. \"A406, A2\" use all for all to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)"
        },
        "stripContent": {
          "type": "boolean",
          "description": "Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location, comments and streets"
        },
        "severities": {
          "type": "array",
          "description": "an optional list of Severity names to filter on (a valid list of severities can be obtained from the /Road/Meta/severities endpoint)"
        },
        "categories": {
          "type": "array",
          "description": "an optional list of category names to filter on (a valid list of categories can be obtained from the /Road/Meta/categories endpoint)"
        },
        "closures": {
          "type": "boolean",
          "description": "Optional, defaults to true. When true, always includes disruptions that have road closures, regardless of the severity filter. When false, the severity filter works as normal."
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Road/{ids}/Disruption",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_road_meta_categories",
    "description": "Gets a list of valid RoadDisruption categories",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Road/Meta/Categories",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_road_meta_severities",
    "description": "Gets a list of valid RoadDisruption severity codes",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Road/Meta/Severities",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_road_status",
    "description": "Gets the specified roads with the status aggregated over the date range specified, or now until the end of today if no dates are passed.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "Comma-separated list of road identifiers e.g. \"A406, A2\" or use \"all\" to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)"
        },
        "dateRangeNullable.startDate": {
          "type": "string"
        },
        "dateRangeNullable.endDate": {
          "type": "string"
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Road/{ids}/Status",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_search",
    "description": "Search the site for occurrences of the query string. The maximum number of results returned is equal to the maximum page size\r\n            of 100. To return subsequent pages, use the paginated overload.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "The search query"
        }
      },
      "required": [
        "query"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Search",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_search_busschedules",
    "description": "Searches the bus schedules folder on S3 for a given bus number.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "The search query"
        }
      },
      "required": [
        "query"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Search/BusSchedules",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_search_meta_categories",
    "description": "Gets the available search categories.",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Search/Meta/Categories",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_search_meta_searchproviders",
    "description": "Gets the available searchProvider names.",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Search/Meta/SearchProviders",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_search_meta_sorts",
    "description": "Gets the available sorting options.",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Search/Meta/Sorts",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_stoppoint",
    "description": "Gets a list of StopPoints within {radius} by the specified criteria",
    "inputSchema": {
      "type": "object",
      "properties": {
        "stopTypes": {
          "type": "array",
          "description": "a list of stopTypes that should be returned (a list of valid stop types can be obtained from the StopPoint/meta/stoptypes endpoint)"
        },
        "radius": {
          "type": "integer",
          "description": "the radius of the bounding circle in metres (default : 200)"
        },
        "useStopPointHierarchy": {
          "type": "boolean",
          "description": "Re-arrange the output into a parent/child hierarchy"
        },
        "modes": {
          "type": "array",
          "description": "the list of modes to search (comma separated mode names e.g. tube,dlr)"
        },
        "categories": {
          "type": "array",
          "description": "an optional list of comma separated property categories to return in the StopPoint's property bag. If null or empty, all categories of property are returned. Pass the keyword \"none\" to return no properties (a valid list of categories can be obtained from the /StopPoint/Meta/categories endpoint)"
        },
        "returnLines": {
          "type": "boolean",
          "description": "true to return the lines that each stop point serves as a nested resource"
        },
        "location.lat": {
          "type": "number"
        },
        "location.lon": {
          "type": "number"
        }
      },
      "required": [
        "stopTypes",
        "location.lat",
        "location.lon"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_arrivaldepartures",
    "description": "Gets the list of arrival and departure predictions for the given stop point id (overground, Elizabeth line and thameslink only)",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A StopPoint id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)"
        },
        "lineIds": {
          "type": "array",
          "description": "A comma-separated list of line ids e.g. elizabeth, london-overground, thameslink"
        }
      },
      "required": [
        "id",
        "lineIds"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{id}/ArrivalDepartures",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_arrivals",
    "description": "Gets the list of arrival predictions for the given stop point id",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A StopPoint id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)"
        }
      },
      "required": [
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{id}/Arrivals",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_by_ids",
    "description": "Gets a list of StopPoints corresponding to the given list of stop ids.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-separated list of stop point ids (station naptan code e.g. 940GZZLUASL). Max. approx. 20 ids.\r\n            You can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name."
        },
        "includeCrowdingData": {
          "type": "boolean",
          "description": "Include the crowding data (static). To Filter further use: /StopPoint/{ids}/Crowding/{line}"
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{ids}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_canreachonline",
    "description": "Gets Stopoints that are reachable from a station/line combination.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name) of the stop point to filter by"
        },
        "lineId": {
          "type": "string",
          "description": "Line id of the line to filter by (e.g. victoria)"
        },
        "serviceTypes": {
          "type": "array",
          "description": "A comma-separated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified"
        }
      },
      "required": [
        "id",
        "lineId"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{id}/CanReachOnLine/{lineId}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_carparks",
    "description": "Get car parks corresponding to the given stop point id.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "stopPointId": {
          "type": "string",
          "description": "stopPointId is required to get the car parks."
        }
      },
      "required": [
        "stopPointId"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{stopPointId}/CarParks",
      "effect": "reads",
      "verification": "mismatch",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_stoppoint_crowding",
    "description": "Gets all the Crowding data (static) for the StopPointId, plus crowding data for a given line and optionally a particular direction.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The Naptan id of the stop"
        },
        "line": {
          "type": "string",
          "description": "A particular line e.g. victoria, circle, northern etc."
        },
        "direction": {
          "type": "string",
          "description": "The direction of travel. Can be inbound or outbound."
        }
      },
      "required": [
        "id",
        "line",
        "direction"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{id}/Crowding/{line}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_directionto",
    "description": "Returns the canonical direction, \"inbound\" or \"outbound\", for a given pair of stop point Ids in the direction from -&gt; to.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Originating stop id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)"
        },
        "toStopPointId": {
          "type": "string",
          "description": "Destination stop id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)"
        },
        "lineId": {
          "type": "string",
          "description": "Optional line id filter e.g. victoria"
        }
      },
      "required": [
        "id",
        "toStopPointId"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{id}/DirectionTo/{toStopPointId}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_disruption",
    "description": "Gets all disruptions for the specified StopPointId, plus disruptions for any child Naptan records it may have.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-seperated list of stop point ids. Max. approx. 20 ids.\r\n            You can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name."
        },
        "getFamily": {
          "type": "boolean",
          "description": "Specify true to return disruptions for entire family, or false to return disruptions for just this stop point. Defaults to false."
        },
        "includeRouteBlockedStops": {
          "type": "boolean"
        },
        "flattenResponse": {
          "type": "boolean",
          "description": "Specify true to associate all disruptions with parent stop point. (Only applicable when getFamily is true)."
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{ids}/Disruption",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_meta_categories",
    "description": "Gets the list of available StopPoint additional information categories",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Meta/Categories",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_stoppoint_meta_modes",
    "description": "Gets the list of available StopPoint modes",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Meta/Modes",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_stoppoint_meta_stoptypes",
    "description": "Gets the list of available StopPoint types",
    "inputSchema": {
      "type": "object",
      "properties": {}
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Meta/StopTypes",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_stoppoint_mode",
    "description": "Gets a list of StopPoints filtered by the modes available at that StopPoint.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "modes": {
          "type": "array",
          "description": "A comma-seperated list of modes e.g. tube,dlr"
        },
        "page": {
          "type": "integer",
          "description": "The data set page to return. Page 1 equates to the first 1000 stop points, page 2 equates to 1001-2000 etc. Must be entered for bus mode as data set is too large."
        }
      },
      "required": [
        "modes"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Mode/{modes}",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_stoppoint_mode_disruption",
    "description": "Gets a distinct list of disrupted stop points for the given modes",
    "inputSchema": {
      "type": "object",
      "properties": {
        "modes": {
          "type": "array",
          "description": "A comma-seperated list of modes e.g. tube,dlr"
        },
        "includeRouteBlockedStops": {
          "type": "boolean"
        }
      },
      "required": [
        "modes"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Mode/{modes}/Disruption",
      "effect": "reads",
      "verification": "verified",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_stoppoint_placetypes",
    "description": "Get a list of places corresponding to a given id and place types.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A naptan id for a stop point (station naptan code e.g. 940GZZLUASL)."
        },
        "placeTypes": {
          "type": "array",
          "description": "A comcomma-separated value representing the place types."
        }
      },
      "required": [
        "id",
        "placeTypes"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{id}/placeTypes",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_route",
    "description": "Returns the route sections for all the lines that service the given stop point ids",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A stop point id (station naptan codes e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)"
        },
        "serviceTypes": {
          "type": "array",
          "description": "A comma-separated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified"
        }
      },
      "required": [
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{id}/Route",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_search",
    "description": "Search StopPoints by their common name, or their 5-digit Countdown Bus Stop Code.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "The query string, case-insensitive. Leading and trailing wildcards are applied automatically."
        },
        "modes": {
          "type": "array",
          "description": "An optional, parameter separated list of the modes to filter by"
        },
        "faresOnly": {
          "type": "boolean",
          "description": "True to only return stations in that have Fares data available for single fares to another station."
        },
        "maxResults": {
          "type": "integer",
          "description": "An optional result limit, defaulting to and with a maximum of 50. Since children of the stop point heirarchy are returned for matches,\r\n            it is possible that the flattened result set will contain more than 50 items."
        },
        "lines": {
          "type": "array",
          "description": "An optional, parameter separated list of the lines to filter by"
        },
        "includeHubs": {
          "type": "boolean",
          "description": "If true, returns results including HUBs."
        },
        "tflOperatedNationalRailStationsOnly": {
          "type": "boolean",
          "description": "If the national-rail mode is included, this flag will filter the national rail stations so that only those operated by TfL are returned"
        }
      },
      "required": [
        "query"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Search",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_search_by_query",
    "description": "Search StopPoints by their common name, or their 5-digit Countdown Bus Stop Code.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "The query string, case-insensitive. Leading and trailing wildcards are applied automatically."
        },
        "modes": {
          "type": "array",
          "description": "An optional, parameter separated list of the modes to filter by"
        },
        "faresOnly": {
          "type": "boolean",
          "description": "True to only return stations in that have Fares data available for single fares to another station."
        },
        "maxResults": {
          "type": "integer",
          "description": "An optional result limit, defaulting to and with a maximum of 50. Since children of the stop point heirarchy are returned for matches,\r\n            it is possible that the flattened result set will contain more than 50 items."
        },
        "lines": {
          "type": "array",
          "description": "An optional, parameter separated list of the lines to filter by"
        },
        "includeHubs": {
          "type": "boolean",
          "description": "If true, returns results including HUBs."
        },
        "tflOperatedNationalRailStationsOnly": {
          "type": "boolean",
          "description": "If the national-rail mode is included, this flag will filter the national rail stations so that only those operated by TfL are returned"
        }
      },
      "required": [
        "query"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Search/{query}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_servicetypes",
    "description": "Gets the service types for a given stoppoint",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The Naptan id of the stop"
        },
        "lineIds": {
          "type": "array",
          "description": "The lines which contain the given Naptan id (all lines relevant to the given stoppoint if empty)"
        },
        "modes": {
          "type": "array",
          "description": "The modes which the lines are relevant to (all if empty)"
        }
      },
      "required": [
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/ServiceTypes",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_sms",
    "description": "Gets a StopPoint for a given sms code.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A 5-digit Countdown Bus Stop Code e.g. 73241, 50435, 56334."
        },
        "output": {
          "type": "string",
          "description": "If set to \"web\", a 302 redirect to relevant website bus stop page is returned. Valid values are : web. All other values are ignored."
        }
      },
      "required": [
        "id"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Sms/{id}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_taxiranks",
    "description": "Gets a list of taxi ranks corresponding to the given stop point id.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "stopPointId": {
          "type": "string",
          "description": "stopPointId is required to get the taxi ranks."
        }
      },
      "required": [
        "stopPointId"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/{stopPointId}/TaxiRanks",
      "effect": "reads",
      "verification": "mismatch",
      "checkedAt": "2026-10-10"
    }
  },
  {
    "name": "get_stoppoint_type",
    "description": "Gets all stop points of a given type",
    "inputSchema": {
      "type": "object",
      "properties": {
        "types": {
          "type": "array",
          "description": "A comma-separated list of the types to return. Max. approx. 12 types. \r\n            A list of valid stop types can be obtained from the StopPoint/meta/stoptypes endpoint."
        }
      },
      "required": [
        "types"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Type/{types}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_stoppoint_type_page",
    "description": "Gets all the stop points of given type(s) with a page number",
    "inputSchema": {
      "type": "object",
      "properties": {
        "types": {
          "type": "array"
        },
        "page": {
          "type": "integer"
        }
      },
      "required": [
        "types",
        "page"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/StopPoint/Type/{types}/page/{page}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_traveltimes_compareoverlay_mapcenter_pinlocation_dimensions",
    "description": "Gets the TravelTime overlay.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "z": {
          "type": "integer",
          "description": "The zoom level."
        },
        "pinLat": {
          "type": "number",
          "description": "The latitude of the pin."
        },
        "pinLon": {
          "type": "number",
          "description": "The longitude of the pin."
        },
        "mapCenterLat": {
          "type": "number",
          "description": "The map center latitude."
        },
        "mapCenterLon": {
          "type": "number",
          "description": "The map center longitude."
        },
        "scenarioTitle": {
          "type": "string",
          "description": "The title of the scenario."
        },
        "timeOfDayId": {
          "type": "string",
          "description": "The id for the time of day (AM/INTER/PM)"
        },
        "modeId": {
          "type": "string",
          "description": "The id of the mode."
        },
        "width": {
          "type": "integer",
          "description": "The width of the requested overlay."
        },
        "height": {
          "type": "integer",
          "description": "The height of the requested overlay."
        },
        "direction": {
          "type": "string",
          "description": "The direction of travel."
        },
        "travelTimeInterval": {
          "type": "integer",
          "description": "The total minutes between the travel time bands"
        },
        "compareType": {
          "type": "string"
        },
        "compareValue": {
          "type": "string"
        }
      },
      "required": [
        "z",
        "pinLat",
        "pinLon",
        "mapCenterLat",
        "mapCenterLon",
        "scenarioTitle",
        "timeOfDayId",
        "modeId",
        "width",
        "height",
        "direction",
        "travelTimeInterval",
        "compareType",
        "compareValue"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/TravelTimes/compareOverlay/{z}/mapcenter/{mapCenterLat}/{mapCenterLon}/pinlocation/{pinLat}/{pinLon}/dimensions/{width}/{height}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_traveltimes_overlay_mapcenter_pinlocation_dimensions",
    "description": "Gets the TravelTime overlay.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "z": {
          "type": "integer",
          "description": "The zoom level."
        },
        "pinLat": {
          "type": "number",
          "description": "The latitude of the pin."
        },
        "pinLon": {
          "type": "number",
          "description": "The longitude of the pin."
        },
        "mapCenterLat": {
          "type": "number",
          "description": "The map center latitude."
        },
        "mapCenterLon": {
          "type": "number",
          "description": "The map center longitude."
        },
        "scenarioTitle": {
          "type": "string",
          "description": "The title of the scenario."
        },
        "timeOfDayId": {
          "type": "string",
          "description": "The id for the time of day (AM/INTER/PM)"
        },
        "modeId": {
          "type": "string",
          "description": "The id of the mode."
        },
        "width": {
          "type": "integer",
          "description": "The width of the requested overlay."
        },
        "height": {
          "type": "integer",
          "description": "The height of the requested overlay."
        },
        "direction": {
          "type": "string",
          "description": "The direction of travel."
        },
        "travelTimeInterval": {
          "type": "integer",
          "description": "The total minutes between the travel time bands"
        }
      },
      "required": [
        "z",
        "pinLat",
        "pinLon",
        "mapCenterLat",
        "mapCenterLon",
        "scenarioTitle",
        "timeOfDayId",
        "modeId",
        "width",
        "height",
        "direction",
        "travelTimeInterval"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/TravelTimes/overlay/{z}/mapcenter/{mapCenterLat}/{mapCenterLon}/pinlocation/{pinLat}/{pinLon}/dimensions/{width}/{height}",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  },
  {
    "name": "get_vehicle_arrivals",
    "description": "Gets the predictions for a given list of vehicle Id's.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "description": "A comma-separated list of vehicle ids e.g. LX58CFV,LX11AZB,LX58CFE. Max approx. 25 ids."
        }
      },
      "required": [
        "ids"
      ]
    },
    "x-dyph": {
      "method": "GET",
      "path": "/Vehicle/{ids}/Arrivals",
      "effect": "reads",
      "verification": "unverified",
      "checkedAt": null
    }
  }
]
