[{"data":1,"prerenderedAt":380},["ShallowReactive",2],{"docs-\u002Fdocs\u002Frouting-platform":3,"_apollo:default":376,"_apollo:stationEditor":377,"_apollo:feedManagement":378,"_apollo:transferAnalyst":379},{"id":4,"title":5,"body":6,"description":367,"extension":368,"meta":369,"navigation":370,"path":371,"seo":372,"stem":373,"__hash__":374,"lastUpdated":375},"content\u002Fdocs\u002Frouting-platform\u002Findex.md","Interline Routing Platform",{"type":7,"value":8,"toc":360},"minimark",[9,16,27,50,53,86,91,219,223,226,236,258,265,287,291,294,314,325,329,338,344,348,351,354],[10,11,12],"div",{},[13,14],"account-tiers",{"explorer":15,"paygo":15,"academic":15,"enterprise":15},"",[17,18,19,20,26],"p",{},"The ",[21,22,5],"a",{"href":23,"rel":24},"https:\u002F\u002Fwww.interline.io\u002Frouting-platform\u002F",[25],"nofollow"," combines two complementary routing engines behind one API and one key.",[28,29,30,38],"ul",{},[31,32,33,37],"li",{},[34,35,36],"strong",{},"Transit routing"," comes from the Transitland Routing API, built on the platform's continuously updated archive of GTFS feeds.",[31,39,40,43,44,49],{},[34,41,42],{},"Street routing"," (auto, bicycle, and pedestrian) comes from ",[21,45,48],{"href":46,"rel":47},"https:\u002F\u002Fwww.interline.io\u002Fvalhalla\u002F",[25],"Valhalla",", an open-source engine running against OpenStreetMap data.",[17,51,52],{},"Together they cover a whole journey: walking, cycling, or driving to a stop, riding transit, and walking to a destination.",[17,54,55,56,60,61,65,66,70,71,75,76,80,81,85],{},"Transit itinerary legs include ",[21,57,59],{"href":58},"\u002Fdocumentation\u002Fconcepts\u002Fonestop-id-scheme","Onestop IDs"," that resolve through the ",[21,62,64],{"href":63},"\u002Fdocumentation\u002Frest-api","REST"," and ",[21,67,69],{"href":68},"\u002Fdocumentation\u002Fgraphql-api","GraphQL"," APIs, and the SHA1 of the ",[21,72,74],{"href":73},"\u002Fdocumentation\u002Fconcepts\u002Fstatic-gtfs-feed-versions","feed version"," the schedule came from. See ",[21,77,79],{"href":78},"\u002Fdocumentation\u002Fconcepts\u002Fjourneys-and-itineraries","Journeys and itineraries",". For departures from a single stop, use the REST API ",[21,82,84],{"href":83},"\u002Fdocumentation\u002Frest-api\u002Fdepartures","stop departures endpoint",".",[87,88,90],"h2",{"id":89},"endpoints","Endpoints",[92,93,94,107],"table",{},[95,96,97],"thead",{},[98,99,100,104],"tr",{},[101,102,103],"th",{},"Endpoint",[101,105,106],{},"What it does",[108,109,110,121,131,142,153,164,175,186,197,208],"tbody",{},[98,111,112,118],{},[113,114,115],"td",{},[21,116,36],{"href":117},"\u002Fdocumentation\u002Frouting-platform\u002Ftransit-otp",[113,119,120],{},"Transit and walking itineraries, OpenTripPlanner-compatible",[98,122,123,128],{},[113,124,125],{},[21,126,42],{"href":127},"\u002Fdocumentation\u002Frouting-platform\u002Froute",[113,129,130],{},"Turn-by-turn directions for auto, bicycle, and pedestrian",[98,132,133,139],{},[113,134,135],{},[21,136,138],{"href":137},"\u002Fdocumentation\u002Frouting-platform\u002Foptimized-route","Optimized route",[113,140,141],{},"Visit several locations in the most efficient order",[98,143,144,150],{},[113,145,146],{},[21,147,149],{"href":148},"\u002Fdocumentation\u002Frouting-platform\u002Fmatrix","Matrix",[113,151,152],{},"Times and distances between many origins and destinations",[98,154,155,161],{},[113,156,157],{},[21,158,160],{"href":159},"\u002Fdocumentation\u002Frouting-platform\u002Fisochrone","Isochrone",[113,162,163],{},"Areas reachable within a time or distance limit",[98,165,166,172],{},[113,167,168],{},[21,169,171],{"href":170},"\u002Fdocumentation\u002Frouting-platform\u002Fmap-matching","Map matching",[113,173,174],{},"Snap a GPS trace to the road network as a route",[98,176,177,183],{},[113,178,179],{},[21,180,182],{"href":181},"\u002Fdocumentation\u002Frouting-platform\u002Ftrace-attributes","Trace attributes",[113,184,185],{},"Road attributes along a matched trace",[98,187,188,194],{},[113,189,190],{},[21,191,193],{"href":192},"\u002Fdocumentation\u002Frouting-platform\u002Flocate","Locate",[113,195,196],{},"What the network looks like near a coordinate",[98,198,199,205],{},[113,200,201],{},[21,202,204],{"href":203},"\u002Fdocumentation\u002Frouting-platform\u002Fexpansion","Expansion",[113,206,207],{},"Which edges a search explored, as GeoJSON",[98,209,210,216],{},[113,211,212],{},[21,213,215],{"href":214},"\u002Fdocumentation\u002Frouting-platform\u002Fcentroid","Centroid",[113,217,218],{},"Where routes from several locations converge",[87,220,222],{"id":221},"api-access","API access",[17,224,225],{},"All Interline Routing Platform endpoints are hosted under:",[227,228,233],"pre",{"className":229,"code":231,"language":232},[230],"language-text","https:\u002F\u002Ftransit.land\u002Fapi\u002Fv2\u002Frouting\u002F\n","text",[234,235,231],"code",{"__ignoreMap":15},[17,237,238,239,242,243,245,246,249,250,253,254,257],{},"Authentication uses the same API key mechanism as other Transitland APIs. Pass your key as the ",[234,240,241],{},"apikey"," query parameter or the ",[234,244,241],{}," HTTP header; ",[234,247,248],{},"api_key",", ",[234,251,252],{},"api_token",", and ",[234,255,256],{},"access_token"," are accepted equivalently.",[17,259,260,261,264],{},"Street routing endpoints accept the same request object either way: POST sends it as a JSON body, and GET sends it url-encoded in a ",[234,262,263],{},"json"," query parameter.",[266,267,268,269,271,272,275,276,279,280,283,284,286],"warning",{},"\nFor GET requests, encode spaces in the \n",[234,270,263],{},"\n parameter as \n",[234,273,274],{},"\n%20\n","\n, or send JSON without spaces. The API does not decode \n",[234,277,278],{},"\n+\n","\n as a space and rejects the request as unparseable. \n",[234,281,282],{},"\ncurl --data-urlencode\n","\n encodes spaces as \n",[234,285,274],{},"\n.\n",[87,288,290],{"id":289},"how-the-routing-works","How the routing works",[17,292,293],{},"Two graphs back these endpoints: a street graph built from OpenStreetMap and rebuilt about daily, and a transit graph built from Transitland's GTFS archive and updated within minutes of a new feed version. Because the graphs are separate, transit routing is its own endpoint and its coverage differs from street routing.",[17,295,296,297,300,301,249,304,249,307,249,310,313],{},"Street routing endpoints take a ",[234,298,299],{},"costing"," parameter that selects the travel model (",[234,302,303],{},"auto",[234,305,306],{},"bicycle",[234,308,309],{},"pedestrian",[234,311,312],{},"truck",", and others). Costing options are set per request.",[17,315,316,317,321,322,324],{},"See ",[21,318,320],{"href":319},"\u002Fdocumentation\u002Fconcepts\u002Frouting-graph-and-costing","Routing graph and costing models"," for the costing table, and ",[21,323,79],{"href":78}," for transit routing results.",[87,326,328],{"id":327},"machine-readable-schema","Machine-readable schema",[17,330,331,332,337],{},"The platform publishes an ",[21,333,336],{"href":334,"rel":335},"https:\u002F\u002Fspec.openapis.org\u002Foas\u002Fv3.0.0\u002F",[25],"OpenAPI 3.0"," description covering both engines:",[227,339,342],{"className":340,"code":341,"language":232},[230],"https:\u002F\u002Ftransit.land\u002Fapi\u002Fv2\u002Frouting\u002Fopenapi.json\n",[234,343,341],{"__ignoreMap":15},[345,346,347],"info",{},"\nThe schema document itself is served without an API key, so you can fetch it and point tooling at it before signing up. The endpoints it describes still require a key.\n",[17,349,350],{},"Every endpoint page in this section is generated from that document. API clients, code generators, and coding agents can use the URL directly.",[17,352,353],{},"The street routing endpoints are also described on their own, for tools that want them alone:",[227,355,358],{"className":356,"code":357,"language":232},[230],"https:\u002F\u002Ftransit.land\u002Fapi\u002Fv2\u002Frouting\u002Fvalhalla\u002Fopenapi.json\n",[234,359,357],{"__ignoreMap":15},{"title":15,"searchDepth":361,"depth":361,"links":362},2,[363,364,365,366],{"id":89,"depth":361,"text":90},{"id":221,"depth":361,"text":222},{"id":289,"depth":361,"text":290},{"id":327,"depth":361,"text":328},"The Interline Routing Platform combines Transitland transit routing and Valhalla street routing, matrix, isochrone, and map matching APIs under one API key.","md",{},true,"\u002Fdocs\u002Frouting-platform",{"title":5,"description":367},"docs\u002Frouting-platform\u002Findex","TEteg-AeJRycKL9YbvXwJpPVpthunZ82C03NMxOuBEk","2026-10-13T22:10:59-07:00",{},{},{},{},1792144624009]