{"ok":true,"site":"sfmta","host":"sfmta.com","about":"SFMTA (San Francisco Muni): look up routes, stops, real-time arrival predictions, vehicle locations, trip updates, service alerts and stop relocations through the JSON APIs behind sfmta.com.","commands":[{"command":"list-routes","summary":"List all Muni routes from the GTFS feed: route id, number, name, hours description and color.","params":[],"exampleUrl":"https://clify-dev.netlify.app/sfmta/list-routes"},{"command":"list-muni-alerts","summary":"List recent Muni service alerts (delays, reroutes, all-clears) with publish time and affected route tags.","params":[],"exampleUrl":"https://clify-dev.netlify.app/sfmta/list-muni-alerts"},{"command":"get-stop-predictions","summary":"Real-time arrival predictions (minutes, vehicle, direction, occupancy) for every route serving a stop, by public 5-digit stop code.","params":[{"name":"stopCode","type":"string","required":true,"description":"Public 5-digit stop code shown at the stop and in URLs, e.g. 17954 (GTFS stop_code)"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-stop-predictions?stopCode=17954"},{"command":"get-route-vehicles","summary":"Live vehicle positions on a route: vehicle id, direction, lat/lon, speed, occupancy and time since last report.","params":[{"name":"routeId","type":"string","required":true,"description":"Route id (short name), e.g. 38, 38R, 22, N, KT"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-route-vehicles?routeId=38"},{"command":"get-route","summary":"Get GTFS details of one route: number, name, service hours description, type, color and links.","params":[{"name":"routeId","type":"string","required":true,"description":"Route id (short name), e.g. 22, 38R"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-route?routeId=22"},{"command":"get-route-stops","summary":"List all stops served by a route with stop id, public stop code, name and coordinates.","params":[{"name":"routeId","type":"string","required":true,"description":"Route id (short name), e.g. 22, 38R"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-route-stops?routeId=22"},{"command":"get-route-directions","summary":"Route configuration with its directions (inbound/outbound names and ordered stop ids) and all stops with codes and coordinates.","params":[{"name":"routeId","type":"string","required":true,"description":"Route id (short name), e.g. 38, 38R"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-route-directions?routeId=38R"},{"command":"find-stop","summary":"Look up a stop by public stop code: title, sfmta.com page URL, location, internal stop id and the routes serving it with their direction names.","params":[{"name":"stopCode","type":"string","required":true,"description":"Public 5-digit stop code, e.g. 17954"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/find-stop?stopCode=17954"},{"command":"get-stop","summary":"Get GTFS details of a stop by internal stop id (stop code without the leading 1): name, code, coordinates, wheelchair boarding.","params":[{"name":"stopId","type":"string","required":true,"description":"Internal GTFS stop_id, usually 4 digits (e.g. 7954 for stop code 17954)"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-stop?stopId=7954"},{"command":"get-stop-routes","summary":"List the routes that serve a stop (by internal stop id), with route names and service hours.","params":[{"name":"stopId","type":"string","required":true,"description":"Internal GTFS stop_id, usually 4 digits (e.g. 7954)"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-stop-routes?stopId=7954"},{"command":"get-trip-updates","summary":"GTFS-realtime trip updates (vehicle, headsign, per-stop predicted arrival times and delays in seconds) for a public stop code or a route id.","params":[{"name":"id","type":"string","required":true,"description":"Public 5-digit stop code (e.g. 17954) or route id (e.g. 22, 38R)"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-trip-updates?id=17954"},{"command":"get-route-alerts","summary":"Active GTFS-realtime service alerts affecting a route (empty list when none).","params":[{"name":"routeId","type":"string","required":true,"description":"Route id (short name), e.g. 14, 22, 38R"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-route-alerts?routeId=14"},{"command":"get-stop-alerts","summary":"Active GTFS-realtime service alerts affecting a stop, by public stop code (empty list when none).","params":[{"name":"stopCode","type":"string","required":true,"description":"Public 5-digit stop code, e.g. 15623"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-stop-alerts?stopCode=15623"},{"command":"get-route-annotations","summary":"Route notes posted by SFMTA (service hours, frequency, special notices) as HTML snippets.","params":[{"name":"routeId","type":"string","required":true,"description":"Route id (short name), e.g. 38R"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-route-annotations?routeId=38R"},{"command":"get-stop-annotations","summary":"Stop notes posted by SFMTA (relocations, closures, notices) for an internal stop id.","params":[{"name":"stopId","type":"string","required":true,"description":"Internal GTFS stop_id, usually 4 digits (stop code without leading 1), e.g. 7915"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-stop-annotations?stopId=7915"},{"command":"get-latest-alert","summary":"The single most recent Muni service alert plus the count of alerts in the last two days.","params":[],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-latest-alert"},{"command":"get-route-geojson","summary":"Route shape as a GeoJSON MultiLineString feature (coordinates as [lon, lat]) with route properties.","params":[{"name":"routeId","type":"string","required":true,"description":"Route id (short name), e.g. 38, 38R"}],"exampleUrl":"https://clify-dev.netlify.app/sfmta/get-route-geojson?routeId=38"},{"command":"list-stop-relocations","summary":"Feed of temporary Muni bus stop relocations/closures (stop, routes affected, dates, alternate stop).","params":[],"exampleUrl":"https://clify-dev.netlify.app/sfmta/list-stop-relocations"}]}