Get full line detail (stops + live buses)
bus_get_line_detailGet complete details for a bus line including stations, real-time bus positions, first/last times, and reverse direction info.
Instructions
Full info for a line: rider-facing fields (name, first/last/price, stationsNum), the full ordered station list, the reverse-direction lineId, and every bus currently on the line.
Use this — not bus_get_timetable — to answer "is line X still running" or "first/last bus time" questions. The timetable tool only has data for a small minority of lines.
Subway lines are NOT supported. If bus_search returned a line with isSubway=true (e.g. lineId=1057 for 地铁2号线), this endpoint returns an empty payload — the response will carry empty: true and a hint field pointing at bus_get_nearby_stops / bus_plan_transit. Don't retry; route to those tools instead.
Args:
city_id (string, required)
line_id (string, required): from bus_search.lines[*].lineId
lat / lng (string, optional): caller's WGS-84 coordinates
response_format ('markdown' | 'json')
Returns (json): { "line": { "lineId":"...", "name":"71", "lineNo":"r95817", "direction":0, "startSn":"...", "endSn":"...", "firstTime":"05:30", "lastTime":"23:30", "price":"2元", "stationsNum":24 }, "stations": [{ "order":1, "sId":"...", "sn":"...", "wgsLat":..., "wgsLng":..., "physicalStId":"...", "namesakeStId":"...", "metros":[{"name":"地铁14号线","lineNo":"14号线","color":"97,96,32"}] }, ...], "buses": [{ "busId":"...", "order":2, "lat":..., "lng":..., "speed":5.7, "capacity":0, "distanceToWaitStn":...}], "reverseDirection": { "lineId":"...", "startSn":"...", "endSn":"...", "firstTime":"04:30", "lastTime":"22:30", "price":"2元" } | null, "depDesc": "...", "preArrivalTime": "...", "targetOrder": 24, "empty": true, "hint": "..." // present only when upstream returned no data (subway / retired line) }
Each station carries:
'order' → feed into bus_get_line_realtime / bus_list_line_buses as target_order
'sId' → feed into bus_get_line_realtime as station_id (NOT into bus_get_stop_detail!)
'physicalStId' + 'namesakeStId' → feed into bus_get_stop_detail to see every line through that stop
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city_id | Yes | ||
| line_id | Yes | lineId from bus_search.lines / bus_get_nearby_stops.lines | |
| lat | No | ||
| lng | No | ||
| response_format | No | Output format: 'markdown' for human-readable text, 'json' for full structured data | markdown |