[{"data":1,"prerenderedAt":379},["ShallowReactive",2],{"docs-\u002Fdocs\u002Frouting-platform\u002Ftransit-otp":3,"_apollo:default":378,"_apollo:stationEditor":378,"_apollo:feedManagement":378,"_apollo:transferAnalyst":378},{"id":4,"title":5,"body":6,"description":368,"extension":369,"meta":370,"navigation":372,"path":373,"seo":374,"stem":375,"__hash__":376,"lastUpdated":377},"content\u002Fdocs\u002Frouting-platform\u002Ftransit-otp.md","Transit routing (OTP-compatible)",{"type":7,"value":8,"toc":354},"minimark",[9,16,20,23,32,59,64,67,75,79,92,130,137,140,144,147,150,154,157,194,198,201,262,265,280,284,291,294,301,306,309,318,321,325,328,336,340,346],[10,11,12],"div",{},[13,14],"account-tiers",{"explorer":15,"paygo":15,"academic":15,"enterprise":15},"",[17,18,19],"p",{},"The Transitland Routing API plans routes from an origin\u002Fstart location to a destination\u002Fstop location by transit and other modes of travel.",[17,21,22],{},"The Transitland Routing API is powered by the same archive of GTFS archives as the other Transitland v2 APIs. Users can combine itineraries from the Transitland Routing API with queries performed against other Transitland v2 APIs.",[17,24,25,26,31],{},"For definitions of journeys, itineraries, and legs, see ",[27,28,30],"a",{"href":29},"\u002Fdocumentation\u002Fconcepts\u002Fjourneys-and-itineraries","Journeys and itineraries",".",[33,34,35,36],"info",{},"\n  ",[17,37,38,39,44,45,49,50,53,54,58],{},"To get an API key, use your Interline account to ",[27,40,43],{"href":41,"target":42},"https:\u002F\u002Fapp.interline.io\u002Fproducts\u002Ftlv2_api\u002Forders\u002Fnew","_blank","order a Transitland API plan",": ",[46,47,48],"em",{},"Explorer"," for free, non-commercial use, or ",[46,51,52],{},"Pay As You Go"," for commercial use. See ",[27,55,57],{"href":56},"\u002Fplans-pricing#transitland-routing","plans and pricing"," for each plan's quota and pricing.",[60,61,63],"h2",{"id":62},"online-vs-batch-usage","Online vs. batch usage",[17,65,66],{},"The public Transitland Routing API is intended for \"online\" purposes such as interactive web or mobile applications.",[33,68,69,70,74],{},"\n  For batch purposes, such as analyzing transit travel between thousands or millions of origin\u002Fdestination pairs that are known in advance, Interline also offers a full-service option. ",[27,71,73],{"href":72},"https:\u002F\u002Fapp.interline.io\u002Fcontact_forms\u002Fbatch_routing","Contact Interline for more information about batch routing analysis",".\n",[60,76,78],{"id":77},"coverage","Coverage",[17,80,81,82,86,87,91],{},"The Transitland Routing API plans itineraries from static GTFS ",[27,83,85],{"href":84},"\u002Fdocumentation\u002Fconcepts\u002Ftrips-schedules","trips and schedules"," and, where supported, from ",[27,88,90],{"href":89},"\u002Fdocumentation\u002Fconcepts\u002Fsource-feeds#gtfs-realtime-feed-fetching-and-caching","GTFS Realtime"," TripUpdates:",[93,94,95,107],"table",{},[96,97,98],"thead",{},[99,100,101,105],"tr",{},[102,103,104],"th",{},"Data",[102,106,78],{},[108,109,110,122],"tbody",{},[99,111,112,116],{},[113,114,115],"td",{},"Static GTFS schedules",[113,117,118],{},[27,119,121],{"href":120},"\u002Fexplore\u002Fplaces\u002FUnited+States+of+America","All current operators in the United States",[99,123,124,127],{},[113,125,126],{},"Real-time trip updates",[113,128,129],{},"Operators in the San Francisco Bay Area",[17,131,132,133,31],{},"Outside real-time coverage, itineraries follow the published schedule. For how the transit graph is built and updated, see ",[27,134,136],{"href":135},"\u002Fdocumentation\u002Fconcepts\u002Frouting-graph-and-costing","Routing graph and costing models",[17,138,139],{},"In the future, we expect to expand static coverage to match the worldwide coverage of other Transitland v2 APIs, and to add real-time coverage for more operators and regions.",[60,141,143],{"id":142},"modes-of-travel","Modes of travel",[17,145,146],{},"Transitland Routing APIs support travel by transit and walking.",[17,148,149],{},"In the future, additional modes of travel may be supported.",[60,151,153],{"id":152},"features-and-benefits","Features and benefits",[17,155,156],{},"The Transitland Routing API provides the following features and benefits:",[158,159,160,168,174,188],"ul",{},[161,162,163,167],"li",{},[164,165,166],"strong",{},"Broad coverage in one routing engine",": Transit routing across all locations in the United States where Transitland has GTFS source feed coverage (to be expanded worldwide in the future). No need to maintain separate routing engines for each metro region.",[161,169,170,173],{},[164,171,172],{},"Rapidly updating schedules",": When the Transitland platform receives new versions of source feeds, the new routing graph tiles are rapidly created behind the scenes. Transitland Routing API switches to using the new source feed version's service schedules within minutes. No need to wait hours or days for the routing engine to rebuild.",[161,175,176,178,179,183,184,187],{},[164,177,126],{},": Where an operator's GTFS Realtime TripUpdates are supported, itineraries use the predicted departure times, and each transit leg reports its delay. Use ",[180,181,182],"code",{},"ignoreRealtimeUpdates"," to plan from the schedule alone. See ",[27,185,78],{"href":186},"#coverage"," for the operators currently supported.",[161,189,190,193],{},[164,191,192],{},"Compatible APIs",": Transitland Routing API provides an endpoint compatible with OpenTripPlanner. We may add additional compatibility modes in the future, such as a Google Directions API compatibility endpoint.",[60,195,197],{"id":196},"known-limitations","Known limitations",[17,199,200],{},"Transitland Routing API is under ongoing development. The following are known limitations:",[158,202,203,214,242,250],{},[161,204,205,206],{},"Journey itineraries:\n",[158,207,208,211],{},[161,209,210],{},"Pedestrian legs include a shape, origin, and destination, which is sufficient for plotting on a map; pedestrian legs do not include detailed street names or maneuver routing for narrative instructions.",[161,212,213],{},"Itineraries do not include fares.",[161,215,216,217],{},"Stops and routes:\n",[158,218,219,229,239],{},[161,220,221,224,225,228],{},[180,222,223],{},"pickup_type"," or ",[180,226,227],{},"drop_off_type"," > 0 not supported.",[161,230,231,234,235,238],{},[180,232,233],{},"continuous_pickup"," and ",[180,236,237],{},"continuous_drop_off"," not supported",[161,240,241],{},"Loop routes not well supported.",[161,243,244,245],{},"Timezones:\n",[158,246,247],{},[161,248,249],{},"Trips spanning multiple timezones are not well supported.",[161,251,252,253],{},"Transfers:\n",[158,254,255],{},[161,256,257,258,261],{},"Transitland Routing API doesn't make use of ",[180,259,260],{},"transfers.txt"," when calculating transfers.",[17,263,264],{},"The following are previous limitations that have since been resolved:",[158,266,267,270],{},[161,268,269],{},"Transfers after midnight are now supported.",[161,271,272,275,276,279],{},[180,273,274],{},"block_id"," in ",[180,277,278],{},"trips.txt"," is now used when calculating transfers.",[60,281,283],{"id":282},"otp-compatible-api-endpoint","OTP-compatible API endpoint",[17,285,286,287,290],{},"The Transitland Routing API provides an endpoint that supports the main request options and response type as OpenTripPlanner's ",[180,288,289],{},"plan"," REST API.",[17,292,293],{},"Software libraries designed to work with the OTP REST API will also likely work with the Transitland Routing API.",[33,295,35,296,300],{},[27,297,299],{"href":298},"http:\u002F\u002Fwww.opentripplanner.org","OpenTripPlanner"," (OTP) is an open-source transit trip planner. No code from the OTP project is used to power the Transitland Routing API.\n",[302,303,305],"h3",{"id":304},"endpoint","Endpoint",[17,307,308],{},"Submit requests to",[310,311,316],"pre",{"className":312,"code":314,"language":315},[313],"language-text","https:\u002F\u002Ftransit.land\u002Fapi\u002Fv2\u002Frouting\u002Fotp\u002Fplan\n","text",[180,317,314],{"__ignoreMap":15},[17,319,320],{},"Requests may use GET or POST methods.",[302,322,324],{"id":323},"transit-routing-or-stop-departures","Transit routing or stop departures?",[17,326,327],{},"This endpoint plans a journey from an origin to a destination. It selects stops, routes, and transfers, and returns itineraries with walking legs and timings.",[17,329,330,331,335],{},"To list departures from a known stop, use the REST API ",[27,332,334],{"href":333},"\u002Fdocumentation\u002Frest-api\u002Fdepartures","stop departures endpoint",". It returns the trips serving a stop in a time window, with real-time estimates where a feed provides them.",[302,337,339],{"id":338},"request-and-response","Request and response",[341,342],"openapi-endpoint",{":heading-level":343,"doc":344,"path":345},"4","routing","\u002Fotp\u002Fplan",[17,347,348,349,353],{},"See the ",[27,350,352],{"href":351},"\u002Fdocumentation\u002Frouting-platform","Routing Platform overview"," for API access and the machine-readable schema.",{"title":15,"searchDepth":355,"depth":355,"links":356},2,[357,358,359,360,361,362],{"id":62,"depth":355,"text":63},{"id":77,"depth":355,"text":78},{"id":142,"depth":355,"text":143},{"id":152,"depth":355,"text":153},{"id":196,"depth":355,"text":197},{"id":282,"depth":355,"text":283,"children":363},[364,366,367],{"id":304,"depth":365,"text":305},3,{"id":323,"depth":365,"text":324},{"id":338,"depth":365,"text":339},"The Transitland Routing API plans transit and walking itineraries across the United States through an OpenTripPlanner-compatible endpoint built on GTFS.","md",{"template":371},"api-reference",true,"\u002Fdocs\u002Frouting-platform\u002Ftransit-otp",{"title":5,"description":368},"docs\u002Frouting-platform\u002Ftransit-otp","Lbz5MT58GJg6lw_vH-o4eZjioVtwUzgeBY6u7guCM4Q","2026-10-16T20:03:59-07:00","{}",1793614319042]