{"status":"ok","message":"GTFS Data API","version":"1.0.0","endpoints":{"/shapes/{trip_id}":"Get route shape for a trip","/stops/{trip_id}":"Get stops for a trip","/trips/{trip_id}":"Get trip details","/duties/{trip_id}":"Get complete shift details for a trip","/duty-sheets":"Get list of all duty numbers for today","/duty-sheet/{dty_number}":"Get complete shift details by duty number","/routes":"Get list of all routes","/directions/{route_id}":"Get directions for a route","/route-directions":"Get unique route-direction combinations","/timetable?route_id={route_id}&headsign={headsign}&timing_points_only={bool}":"Get timetable data","/vehicle-history/{vehicle_id}":"Get position history for a vehicle","/api/network-health":"Network on-time percentage (optional ?region=SBL|SUN)","/api/trip-sighting":"Share of due scheduled trips sighted in TripUpdates today (optional ?region=SBL|SUN, ?service_type=urban|school)","/api/trip-sighting/unsighted":"Unsighted-trip register for the current service date (optional ?region=SBL|SUN, ?service_type=urban|school)","/delays/leaderboard":"Top-10 late & early routes+directions for the Board View (optional ?region=SBL|SUN)","/api/depots":"Depot locations (GET, optional ?region=SBL|SUN; POST admin-only)","/api/depots/{depot_id}":"Update or delete a depot (PUT/DELETE, admin-only)","/health":"Health check","/admin/invalidate-cache":"Invalidate all Redis caches (POST)"}}