{"componentChunkName":"component---src-templates-developers-js","path":"/en/developers/apis/1-routing-api/itinerary-planning/","result":{"data":{"childPages":{"edges":[{"node":{"fields":{"slug":"/en/developers/"},"frontmatter":{"title":"For developers","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/"},"frontmatter":{"title":"System architecture","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/api-registration/"},"frontmatter":{"title":"API portal and registration","order":-12,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/changes/"},"frontmatter":{"title":"Changes","order":-10,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/user-interfaces/"},"frontmatter":{"title":"User interfaces","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/deprecations/"},"frontmatter":{"title":"Deprecations","order":-11,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/docker-guide/"},"frontmatter":{"title":"Docker guide","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/"},"frontmatter":{"title":"APIs","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/"},"frontmatter":{"title":"Routing API","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/2-routing-data-api/"},"frontmatter":{"title":"Routing data API","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/4-map-api/"},"frontmatter":{"title":"Map API","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/x-apis/"},"frontmatter":{"title":"API architecture","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/6-api-faq/"},"frontmatter":{"title":"FAQ","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/5-realtime-api/"},"frontmatter":{"title":"Realtime APIs","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/3-geocoding-api/"},"frontmatter":{"title":"Geocoding API","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/7-terms-of-use/"},"frontmatter":{"title":"Terms of use","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/user-interfaces/1-digitransit-ui/"},"frontmatter":{"title":"Digitransit-ui","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/0-graphql/"},"frontmatter":{"title":"GraphQL","order":10,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/3-realtime-information/"},"frontmatter":{"title":"Real-time information","order":40,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/2-glossary/"},"frontmatter":{"title":"Glossary","order":30,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/canceled-trips/"},"frontmatter":{"title":"Canceled trips","order":80,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/disruption-info/"},"frontmatter":{"title":"Disruption info","order":70,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/4-translations/"},"frontmatter":{"title":"Translation","order":50,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/routes/"},"frontmatter":{"title":"Routes","order":100,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/stops/"},"frontmatter":{"title":"Stops","order":110,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/bicycles-scooters-cars/"},"frontmatter":{"title":"Bicycles, cars and e-scooters","order":60,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/itinerary-planning/"},"frontmatter":{"title":"Itinerary planning","order":90,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/x-apis/1-routing-api/"},"frontmatter":{"title":"Routing API","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/x-apis/2-routing-data-api/"},"frontmatter":{"title":"Routing Data","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/x-apis/4-map-api/"},"frontmatter":{"title":"Map API","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/x-apis/5-realtime-api/"},"frontmatter":{"title":"Real-time APIs","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/x-apis/3-geocoding-api/"},"frontmatter":{"title":"Geocoding API","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/1-routing-api/1-graphiql/"},"frontmatter":{"title":"GraphiQL","order":20,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/4-map-api/background-map/"},"frontmatter":{"title":"Background map","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/5-realtime-api/1-getting-started/"},"frontmatter":{"title":"Getting started","order":10,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/3-geocoding-api/address-search/"},"frontmatter":{"title":"Address search","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/3-geocoding-api/autocomplete/"},"frontmatter":{"title":"Autocomplete","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/5-realtime-api/trip-updates/"},"frontmatter":{"title":"Trip updates","order":30,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/5-realtime-api/service-alerts/"},"frontmatter":{"title":"Service alerts","order":20,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/3-geocoding-api/address-lookup/"},"frontmatter":{"title":"Address lookup","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/4-map-api/pois/"},"frontmatter":{"title":"Points of interest","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/5-realtime-api/vehicle-positions/"},"frontmatter":{"title":"Vehicle positions","order":40,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/x-apis/3-geocoding-api/data-container/"},"frontmatter":{"title":"Data builder and container","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/architecture/x-apis/3-geocoding-api/api/"},"frontmatter":{"title":"API","order":null,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/5-realtime-api/vehicle-positions/high-frequency-positioning/"},"frontmatter":{"title":"High-frequency positioning","order":20,"redirect":null}}},{"node":{"fields":{"slug":"/en/developers/apis/5-realtime-api/vehicle-positions/digitransit-mqtt/"},"frontmatter":{"title":"Digitransit MQTT broker","order":10,"redirect":null}}}]},"markdownRemark":{"fields":{"slug":"/en/developers/apis/1-routing-api/itinerary-planning/"},"frontmatter":{"title":"Itinerary planning","redirect":null,"toc":null,"description":null,"assets":null,"technologies":null,"docker":null},"html":"<p><strong>If you are not yet familiar with <a href=\"../0-graphql\">GraphQL</a> and <a href=\"../1-graphiql\">GraphiQL</a> it is highly recommended to review those pages at first.</strong></p>\n<h2 id=\"glossary\" style=\"position:relative;\"><a href=\"#glossary\" aria-label=\"glossary permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Glossary</h2>\n<table>\n<thead>\n<tr>\n<th>Term</th>\n<th>Explanation</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Itinerary</td>\n<td>A combination of different transportation modes at certain times to reach from origin to destination. For example, walking to a bus stop, taking a bus for two stops and then walking to the final destination.<br/>Commonly used synonym: journey</td>\n</tr>\n<tr>\n<td>Leg</td>\n<td>One part of an itinerary, e.g. walking to a bus stop or a bus ride between two stops.</td>\n</tr>\n<tr>\n<td>Origin</td>\n<td>A geographical point where an itinerary begins.</td>\n</tr>\n<tr>\n<td>Destination</td>\n<td>A geographical point where an itinerary ends.</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"note-about-itinerary-leg-geometries\" style=\"position:relative;\"><a href=\"#note-about-itinerary-leg-geometries\" aria-label=\"note about itinerary leg geometries permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Note about Itinerary leg geometries</h3>\n<p>You can ask the server to return geometries for itineraries. The API will return them in <a href=\"https://developers.google.com/maps/documentation/utilities/polylinealgorithm\">Google polyline-encoded format</a>. It looks like this:</p>\n<div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token property\">\"legGeometry\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"length\"</span><span class=\"token operator\">:</span> <span class=\"token number\">349</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"points\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"wwfnJyjdwCXlAHLNfAFHDZz@nEh@hBXfA\\\\hAR^VLnChAD@HDHDjBt@^N|@`@JDHNFB`@RHDJFD@PD^fBDNNp@@JBPHl@FdA@d@@TFrCDnATpEL~CBnA@pADpELbQ?pB?nBC~@DdC?R?LDtC?P?j@@XG~@Ef@CPCHGHoAtAQT_@f@w@rAc@~@g@lAi@fBc@hBWvASzAWrBUtBQxBOtBMhCOvEEhCCfC@vB@fBDrCFlCJnCb@xIfFl_APdDr@dMd@bIV~D\\\\bFPnCjAtMt@~GxAhMlBfOz@jHVjCR~BNpCHrBFjCDdC?`CC`DIfDSxDUhDe@fFu@tHMzA{AlOcBtPCXE`@sCrY_BbPShCeAxJc@pDg@nECJi@~Di@dDUbAkA~Gk@bD_@vBUbB]lBe@lDY~B[rCWbC_@~DYfDW|BQ~Am@tGOfBOxAWlCKzAMvAIbAMpBIpAAd@GhACp@EhAEtAA~ACfCAnC@fA?rAClDC`G@`BCxHKlCMhIK~FE|CA~@@|@BxB@^?@DtAHbBLzALjBHbBFlAF|ADxAD|BNrEPjCTtHdAhVp@jSVlPFjJ?dC?hE?dJ?xC?vLDfKDpEF|CFnDPjHZvH\\\\xH|@jQXnF\\\\nFBXdAtSJtCZrG@^b@`K^dJLnDLtDj@bRT`IAb@?~@?dA@~A?fA?|@AjAE~BA`BBdABd@Bh@HfARnBPpBl@zFt@lGr@vE\\\\|Cz@dHrA|JdAtHPpAl@dEjA~I~AvNv@tIx@vKTtD`@nHTrENtDRzEPvHR|J\\\\`VNdKAjEFpLBlFDjCBfCFxBNjE`@nH@j@An@Cr@I^O^y@l@iAt@S@IAIGMKCICIKIKEI?MDILKVQVW^WVUPSJuAT??_ANaALg@No@ZkAz@a@ZKR]j@a@h@i@fA[f@Q`@u@dCmAvEw@dCk@nAe@z@S\\\\iAnAeA`Ai@f@eAfBy@rBu@rCMf@WfAU`Ac@`Bi@`CKh@ANUdBq@~GW|BQdAK^M\\\\IROVMLs@d@q@\\\\]P}@R{@BaA@_@Iu@E]?CAU?M?W@i@DKBg@NUDq@V}@^g@XQJk@h@EDQPeBnBIHILU\\\\\"</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<!-- You can use [this tool](https://repl.it/@digitransit/Polyline-Mapper) to see what the polyline looks on a map.\n\nSee the following examples on how to decode and use polylines:\n* [Node.js app](https://repl.it/@digitransit/PolylineDecode), which prints a list of coordinates in an itinerary\n* [Itinerary planner demo](https://repl.it/@digitransit/PolylineDecodeMap), which shows itinerary leg polylines on a map -->\n<h2 id=\"query-examples\" style=\"position:relative;\"><a href=\"#query-examples\" aria-label=\"query examples permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Query examples</h2>\n<p><strong>Note:</strong> For more details about the query type <strong>planConnection</strong> and its parameters you can use the <strong>Documentation Explorer</strong> provided in GraphiQL.</p>\n<p><strong>Note:</strong> Some additional examples can be found on the <a href=\"../bicycles-scooters-cars/\">Bicycles, cars and e-scooters page</a>.</p>\n<p>Itinerary planning can be tuned by multiple arguments of the <strong>planConnection</strong> query.</p>\n<ul>\n<li>\n<p>Time arguments are taken into account literally when planning the itinerary</p>\n<ul>\n<li>For example, if <code class=\"language-text\">preferences: {street: { transit: {transfer: {slack: \"2m\"}}}</code>, it is not possible to continue the journey by another vehicle within two minutes after disembarking one vehicle</li>\n<li>Values of time arguments are included in the returned duration of an itinerary</li>\n</ul>\n</li>\n<li>\n<p>Cost arguments on the other hand are not hard limits, but preferences</p>\n<ul>\n<li>For example, if <code class=\"language-text\">preferences: {street: {walk: {boardCost: 120}}}</code>, it is possible to continue the journey immediately after disembarking from one vehicle, but up to 2 minutes longer itineraries are preferred if they have one transfer less and up to 4 minutes longer itineraries are preferred if they have two transfers less, etc.</li>\n<li>Cost is not included in the returned duration of an itinerary</li>\n<li>For example, if there is a 15 minute walking leg and <code class=\"language-text\">boardCost</code> is set to 1 minute, the returned duration of the walking leg will be 15 minutes</li>\n</ul>\n</li>\n<li>\n<p>Multiplier arguments (e.g. <code class=\"language-text\">preferences: {street: {walk: {reluctance: 3}}}</code>) are used to multiply costs of an leg</p>\n<ul>\n<li>For example, if <code class=\"language-text\">reluctance</code> is set to 3.0, the cost of each walking section will be multiplied by 3 and thus itineraries with less walking are preferred</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"plan-an-itinerary-from-location-6016899224932366-to-6017529424684855\" style=\"position:relative;\"><a href=\"#plan-an-itinerary-from-location-6016899224932366-to-6017529424684855\" aria-label=\"plan an itinerary from location 6016899224932366 to 6017529424684855 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plan an itinerary from location (60.168992,24.932366) to (60.175294,24.684855)</h3>\n<ol>\n<li>Click <a href=\"https://api.digitransit.fi/graphiql/hsl/v2/gtfs/v1?query=%257B%250A%2520%2520planConnection%28%250A%2520%2520%2520%2520origin%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.168992%252C%2520longitude%253A%252024.932366%257D%257D%257D%250A%2520%2520%2520%2520destination%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.175294%252C%2520longitude%253A%252024.684855%257D%257D%257D%250A%2520%2520%2520%2520first%253A%25202%250A%2520%2520%29%2520%257B%250A%2520%2520%2520%2520pageInfo%2520%257B%250A%2520%2520%2520%2520%2520%2520endCursor%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520edges%2520%257B%250A%2520%2520%2520%2520%2520%2520node%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520start%250A%2520%2520%2520%2520%2520%2520%2520%2520end%250A%2520%2520%2520%2520%2520%2520%2520%2520legs%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520duration%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520mode%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520distance%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520start%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520end%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520mode%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520duration%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520realtimeState%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520emissionsPerPerson%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520co2%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D\">this link</a> to run the query below in GraphiQL.</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168992</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.932366</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.175294</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.684855</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n  <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token object\">pageInfo</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">endCursor</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token object\">edges</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token object\">node</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">start</span>\n        <span class=\"token property\">end</span>\n        <span class=\"token object\">legs</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token property\">duration</span>\n          <span class=\"token property\">mode</span>\n          <span class=\"token property\">distance</span>\n          <span class=\"token object\">start</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">end</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token property\">mode</span>\n          <span class=\"token property\">duration</span>\n          <span class=\"token property\">realtimeState</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token object\">emissionsPerPerson</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token property\">co2</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ol start=\"2\">\n<li>Press play in GraphiQL to execute the query.</li>\n</ol>\n<h3 id=\"search-window\" style=\"position:relative;\"><a href=\"#search-window\" aria-label=\"search window permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Search window</h3>\n<p>It is possible to define a <code class=\"language-text\">searchWindow</code> in the requests to ensure that itineraries are searched from a specified search window time.\nHowever, usually specifying a search window in the request doesn't make sense as it can be inefficient. If one isn't specified, a search\nwindow is computed during the request which in many cases yields results. If one wants to specify a search window, it should preferable be\nbetween 30 minutes and 8 hours (depends on how dense the transit network is in the area), and it should be used together with <a href=\"#pagination\">pagination</a>.</p>\n<h3 id=\"pagination\" style=\"position:relative;\"><a href=\"#pagination\" aria-label=\"pagination permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Pagination</h3>\n<p>The <code class=\"language-text\">planConnection</code> query follows the <a href=\"https://relay.dev/graphql/connections.htm\">Relay Graphql Cursor Connection specification</a>. Only\ndifference is that there are no cursors available for the itineraries in the middle of a response (a hard-coded place holder string\nis returned instead).</p>\n<p>Pagination is highly recommended as usually it's possible to get enough itineraries without specifying a relatively high <code class=\"language-text\">searchWindow</code> in the\nrequest. Higher <code class=\"language-text\">searchWindow</code> will mean that fetching the itineraries will take more time and in most cases, more itineraries will be found\nthan what is necessary.</p>\n<p>The <code class=\"language-text\">first</code> argument in the GraphQL query specifies the number of itinerary plans to be returned. To retrieve more results, you can use the <code class=\"language-text\">after</code> argument with the value of <code class=\"language-text\">endCursor</code> from the previous query's response's <code class=\"language-text\">pageInfo</code>.</p>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168992</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.932366</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.175294</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.684855</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n    <span class=\"token attr-name\">after</span><span class=\"token punctuation\">:</span> &lt;<span class=\"token property\">endCursor</span> <span class=\"token property\">from</span> <span class=\"token property\">previous</span> <span class=\"token keyword\">query</span>>\n  <span class=\"token punctuation\">)</span><span class=\"token operator\">...</span>.</code></pre></div>\n<p>Alternatively, if you want to fetch previous itineraries, <code class=\"language-text\">before</code> and <code class=\"language-text\">last</code> arguments can be used.</p>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168992</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.932366</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.175294</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.684855</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">last</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n    <span class=\"token attr-name\">before</span><span class=\"token punctuation\">:</span> &lt;<span class=\"token property\">startCursor</span> <span class=\"token property\">from</span> <span class=\"token property\">previous</span> <span class=\"token keyword\">query</span>>\n  <span class=\"token punctuation\">)</span><span class=\"token operator\">...</span>.</code></pre></div>\n<p><strong>Note:</strong> Pagination back-and-forth is not recommended. The previously returned itineraries should be stored in the client.</p>\n<p><strong>Note:</strong> If it's likely that you need to fetch for more itineraries, it's more efficient to just fetch more itineraries in the first\nrequest instead of limiting it with the <code class=\"language-text\">first</code> or <code class=\"language-text\">last</code> as it's likely that the backend will have a lot more itineraries available to be returned.</p>\n<h3 id=\"basic-route-from-kamppi-helsinki-to-pisa-espoo\" style=\"position:relative;\"><a href=\"#basic-route-from-kamppi-helsinki-to-pisa-espoo\" aria-label=\"basic route from kamppi helsinki to pisa espoo permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Basic route from Kamppi (Helsinki) to Pisa (Espoo)</h3>\n<ul>\n<li>Origin and destination locations can be named by using the argument <code class=\"language-text\">label</code>. The label is then returned with the location\nin the itineraries.</li>\n<li>Click <a href=\"https://api.digitransit.fi/graphiql/hsl/v2/gtfs/v1?query=%257B%250A%2520%2520planConnection%28%250A%2520%2520%2520%2520origin%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.168992%252C%2520longitude%253A%252024.932366%257D%257D%252C%2520label%253A%2520%2522Kamppi%252C%2520Helsinki%2522%257D%250A%2520%2520%2520%2520destination%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.175294%252C%2520longitude%253A%252024.684855%257D%257D%252C%2520label%253A%2520%2522Pisa%252C%2520Espoo%2522%257D%250A%2520%2520%2520%2520first%253A%25202%250A%2520%2520%29%2520%257B%250A%2520%2520%2520%2520pageInfo%2520%257B%250A%2520%2520%2520%2520%2520%2520endCursor%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520edges%2520%257B%250A%2520%2520%2520%2520%2520%2520node%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520start%250A%2520%2520%2520%2520%2520%2520%2520%2520end%250A%2520%2520%2520%2520%2520%2520%2520%2520legs%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520from%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520to%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520start%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520end%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520mode%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520duration%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520realtimeState%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520emissionsPerPerson%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520co2%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D\">this link</a> to run the query below in GraphiQL.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168992</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.932366</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Kamppi, Helsinki\"</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.175294</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.684855</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Pisa, Espoo\"</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n  <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token object\">pageInfo</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">endCursor</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token object\">edges</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token object\">node</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">start</span>\n        <span class=\"token property\">end</span>\n        <span class=\"token object\">legs</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token object\">from</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">to</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">start</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">end</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token property\">mode</span>\n          <span class=\"token property\">duration</span>\n          <span class=\"token property\">realtimeState</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token object\">emissionsPerPerson</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token property\">co2</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ol start=\"2\">\n<li>Press play in GraphiQL to execute the query.</li>\n</ol>\n<h3 id=\"plan-an-itinerary-using-only-walk-and-rail-modes\" style=\"position:relative;\"><a href=\"#plan-an-itinerary-using-only-walk-and-rail-modes\" aria-label=\"plan an itinerary using only walk and rail modes permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plan an itinerary using only WALK and RAIL modes</h3>\n<ul>\n<li>By default, all transit modes are usable and <code class=\"language-text\">WALK</code> is used for direct street suggestions,\naccess, egress and transfers.</li>\n<li>Click <a href=\"https://api.digitransit.fi/graphiql/hsl/v2/gtfs/v1?query=%257B%250A%2520%2520planConnection%28%250A%2520%2520%2520%2520origin%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.199196699999995%252C%2520longitude%253A%252024.9397302%257D%257D%257D%250A%2520%2520%2520%2520destination%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.168438%252C%2520longitude%253A%252024.929283%257D%257D%257D%250A%2520%2520%2520%2520first%253A%25202%250A%2520%2520%2520%2520modes%253A%2520%257Btransit%253A%2520%257Btransit%253A%2520%255B%257Bmode%253A%2520RAIL%257D%255D%257D%257D%250A%2520%2520%29%2520%257B%250A%2520%2520%2520%2520pageInfo%2520%257B%250A%2520%2520%2520%2520%2520%2520endCursor%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520edges%2520%257B%250A%2520%2520%2520%2520%2520%2520node%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520start%250A%2520%2520%2520%2520%2520%2520%2520%2520end%250A%2520%2520%2520%2520%2520%2520%2520%2520legs%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520from%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520to%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520start%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520end%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520mode%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520duration%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520realtimeState%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520emissionsPerPerson%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520co2%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D\">this link</a> to run the query below in GraphiQL.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.199196699999995</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.9397302</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168438</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.929283</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n    <span class=\"token attr-name\">modes</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">transit</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">transit</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">{</span><span class=\"token attr-name\">mode</span><span class=\"token punctuation\">:</span> <span class=\"token constant\">RAIL</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token object\">pageInfo</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">endCursor</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token object\">edges</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token object\">node</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">start</span>\n        <span class=\"token property\">end</span>\n        <span class=\"token object\">legs</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token object\">from</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">to</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">start</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">end</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token property\">mode</span>\n          <span class=\"token property\">duration</span>\n          <span class=\"token property\">realtimeState</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token object\">emissionsPerPerson</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token property\">co2</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ol start=\"2\">\n<li>Press play in GraphiQL to execute the query.</li>\n</ol>\n<h3 id=\"plan-an-itinerary-from-hakaniemi-to-keilaniemi-and-modify-the-following-parameters\" style=\"position:relative;\"><a href=\"#plan-an-itinerary-from-hakaniemi-to-keilaniemi-and-modify-the-following-parameters\" aria-label=\"plan an itinerary from hakaniemi to keilaniemi and modify the following parameters permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plan an itinerary from Hakaniemi to Keilaniemi and modify the following parameters:</h3>\n<ul>\n<li>Return five results: (<code class=\"language-text\">fist: 5</code>)</li>\n<li>Use BUS, RAIL, TRAM and FERRY modes (<code class=\"language-text\">modes: {transit: {transit: [{mode: BUS}, {mode: RAIL}, {mode: TRAM}, {mode: FERRY}]}}</code>)</li>\n<li>Walking speed of 1,7m/s (<code class=\"language-text\">preferences: {street: {walk: {speed: 1.7}}}</code>)</li>\n<li>\n<p>Use a 10 minute safety margin for transfers (<code class=\"language-text\">preferences: {street: { transit: {transfer: {slack: \"10m\"}}}</code>)</p>\n<ul>\n<li>In a lenient ISO-8601 duration format. Example P2DT2H12M40S, 2d2h12m40s or 1h</li>\n</ul>\n</li>\n<li>\n<p>Use a 5 minute boarding cost (<code class=\"language-text\">preferences: {street: {walk: {boardCost: 300}}}</code>)</p>\n<ul>\n<li>Boarding cost is used to prefer itineraries with less vehicle boardings</li>\n<li>For example, if <code class=\"language-text\">boardCost: 300</code> is used and there is a 48min itinerary with one boarding and a 45min itinerary with two boardings, the 48 minute itinerary is returned, because its total cost is smaller (48min + 5min vs. 45min + 5min + 5min)</li>\n</ul>\n</li>\n<li>\n<p>Use multiplier of 2.1 for walk reluctance to prefer routes with less walking (<code class=\"language-text\">preferences: {street: {walk: {reluctance: 2.1}}}</code>)</p>\n<ul>\n<li>Walking times are multiplied with this multiplier</li>\n</ul>\n</li>\n<li>\n<p>Specific departure date and time</p>\n<ul>\n<li><code class=\"language-text\">dateTime: {earliestDeparture: \"2024-06-13T14:30+03:00\"}</code> In ISO-8601-formatted datetime with offset, e.g. 2024-06-13T14:30+03:00 for 2:30pm on June 13th 2024 at Helsinki's offset from UTC.</li>\n</ul>\n</li>\n<li>Click <a href=\"https://api.digitransit.fi/graphiql/hsl/v2/gtfs/v1?query=%257B%250A%2520%2520planConnection%28%250A%2520%2520%2520%2520origin%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.179267%252C%2520longitude%253A%252024.951501%257D%257D%252C%2520label%253A%2520%2522Hakaniemi%252C%2520Helsinki%2522%257D%250A%2520%2520%2520%2520destination%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.1762%252C%2520longitude%253A%252024.836584%257D%257D%252C%2520label%253A%2520%2522Keilaniemi%252C%2520Espoo%2522%257D%250A%2520%2520%2520%2520first%253A%25205%250A%2520%2520%2520%2520dateTime%253A%2520%257BearliestDeparture%253A%2520%25222024-06-13T14%253A30%252B03%253A00%2522%257D%250A%2520%2520%2520%2520modes%253A%2520%257Btransit%253A%2520%257Btransit%253A%2520%255B%257Bmode%253A%2520BUS%257D%252C%2520%257Bmode%253A%2520RAIL%257D%252C%2520%257Bmode%253A%2520TRAM%257D%252C%2520%257Bmode%253A%2520FERRY%257D%255D%257D%257D%250A%2520%2520%2520%2520preferences%253A%2520%257Bstreet%253A%2520%257Bwalk%253A%2520%257Bspeed%253A%25201.7%252C%2520reluctance%253A%25202.1%252C%2520boardCost%253A%2520300%257D%257D%252C%2520transit%253A%2520%257Btransfer%253A%2520%257Bslack%253A%2520%252210M%2522%257D%257D%257D%250A%2520%2520%29%2520%257B%250A%2520%2520%2520%2520pageInfo%2520%257B%250A%2520%2520%2520%2520%2520%2520endCursor%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520edges%2520%257B%250A%2520%2520%2520%2520%2520%2520node%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520walkDistance%250A%2520%2520%2520%2520%2520%2520%2520%2520duration%250A%2520%2520%2520%2520%2520%2520%2520%2520legs%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520from%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520lat%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520lon%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520stop%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520code%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520to%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520lat%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520lon%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520stop%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520code%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520trip%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520tripHeadsign%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520routeShortName%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520distance%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520legGeometry%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520length%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520points%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D\">this link</a> to run the query below in GraphiQL.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.179267</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.951501</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Hakaniemi, Helsinki\"</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.1762</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.836584</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Keilaniemi, Espoo\"</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">5</span>\n    <span class=\"token attr-name\">dateTime</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">earliestDeparture</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"2024-06-13T14:30+03:00\"</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">modes</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">transit</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">transit</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">{</span><span class=\"token attr-name\">mode</span><span class=\"token punctuation\">:</span> <span class=\"token constant\">BUS</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">mode</span><span class=\"token punctuation\">:</span> <span class=\"token constant\">RAIL</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">mode</span><span class=\"token punctuation\">:</span> <span class=\"token constant\">TRAM</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">mode</span><span class=\"token punctuation\">:</span> <span class=\"token constant\">FERRY</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">preferences</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">street</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">walk</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">speed</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1.7</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">reluctance</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2.1</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">boardCost</span><span class=\"token punctuation\">:</span> <span class=\"token number\">300</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">transit</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">transfer</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">slack</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"10M\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token object\">pageInfo</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">endCursor</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token object\">edges</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token object\">node</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">walkDistance</span>\n        <span class=\"token property\">duration</span>\n        <span class=\"token object\">legs</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token object\">from</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">lat</span>\n            <span class=\"token property\">lon</span>\n            <span class=\"token property\">name</span>\n            <span class=\"token object\">stop</span> <span class=\"token punctuation\">{</span>\n              <span class=\"token property\">code</span>\n              <span class=\"token property\">name</span>\n            <span class=\"token punctuation\">}</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">to</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">lat</span>\n            <span class=\"token property\">lon</span>\n            <span class=\"token property\">name</span>\n            <span class=\"token object\">stop</span> <span class=\"token punctuation\">{</span>\n              <span class=\"token property\">code</span>\n              <span class=\"token property\">name</span>\n            <span class=\"token punctuation\">}</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">trip</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">tripHeadsign</span>\n            <span class=\"token property\">routeShortName</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token property\">distance</span>\n          <span class=\"token object\">legGeometry</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">length</span>\n            <span class=\"token property\">points</span>\n          <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ol start=\"2\">\n<li>Change  <code class=\"language-text\">earliestDeparture</code> arguments.</li>\n<li>Press play in GraphiQL to execute the query.</li>\n</ol>\n<h3 id=\"plan-an-itinerary-with-alternative-departures-for-each-leg\" style=\"position:relative;\"><a href=\"#plan-an-itinerary-with-alternative-departures-for-each-leg\" aria-label=\"plan an itinerary with alternative departures for each leg permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plan an itinerary with alternative departures for each leg</h3>\n<ol>\n<li>Click <a href=\"https://api.digitransit.fi/graphiql/hsl/v2/gtfs/v1?query=%257B%250A%2520%2520planConnection%28%250A%2520%2520%2520%2520origin%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.168992%252C%2520longitude%253A%252024.932366%257D%257D%252C%2520label%253A%2520%2522Kamppi%252C%2520Helsinki%2522%257D%250A%2520%2520%2520%2520destination%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.175294%252C%2520longitude%253A%252024.684855%257D%257D%252C%2520label%253A%2520%2522Pisa%252C%2520Espoo%2522%257D%250A%2520%2520%2520%2520first%253A%25201%250A%2520%2520%29%2520%257B%250A%2520%2520%2520%2520pageInfo%2520%257B%250A%2520%2520%2520%2520%2520%2520endCursor%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520edges%2520%257B%250A%2520%2520%2520%2520%2520%2520node%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520start%250A%2520%2520%2520%2520%2520%2520%2520%2520end%250A%2520%2520%2520%2520%2520%2520%2520%2520legs%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520nextLegs%28numberOfLegs%253A%25203%29%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520start%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520from%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520to%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520start%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520end%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520mode%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520duration%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D\">this link</a> to run the query below in GraphiQL.</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168992</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.932366</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Kamppi, Helsinki\"</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.175294</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.684855</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Pisa, Espoo\"</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span>\n  <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token object\">pageInfo</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">endCursor</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token object\">edges</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token object\">node</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">start</span>\n        <span class=\"token property\">end</span>\n        <span class=\"token object\">legs</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token property-query\">nextLegs</span><span class=\"token punctuation\">(</span><span class=\"token attr-name\">numberOfLegs</span><span class=\"token punctuation\">:</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token object\">start</span> <span class=\"token punctuation\">{</span>\n              <span class=\"token property\">scheduledTime</span>\n            <span class=\"token punctuation\">}</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">from</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">to</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">start</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">end</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token property\">mode</span>\n          <span class=\"token property\">duration</span>\n        <span class=\"token punctuation\">}</span>\n        \n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ol start=\"2\">\n<li>Press play in GraphiQL to execute the query.</li>\n</ol>\n<h3 id=\"plan-an-itinerary-with-via-locations\" style=\"position:relative;\"><a href=\"#plan-an-itinerary-with-via-locations\" aria-label=\"plan an itinerary with via locations permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plan an itinerary with via locations</h3>\n<p>There are two types of via locations: pass-through via locations and visit via locations. With pass-through\nvia locations, it is only possible to choose stop locations as via locations and you must either board or alight\na vehicle on the stop or go through the stop on public transportation. With visit via locations, going through\nthe stop on a vehicle is not possible, but alighting or boarding a vehicle at the stop is possible. Visit via\nlocations also support coordinates that one must travel through on street (without being on a transit vehicle).\nCurrently, it is not possible to use both types of via locations in the same query.</p>\n<h4 id=\"plan-an-itinerary-with-pass-through-via-locations\" style=\"position:relative;\"><a href=\"#plan-an-itinerary-with-pass-through-via-locations\" aria-label=\"plan an itinerary with pass through via locations permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plan an itinerary with pass-through via locations</h4>\n<ol>\n<li>Click <a href=\"https://api.digitransit.fi/graphiql/hsl?query=%257B%250A%2520%2520planConnection%28%250A%2520%2520%2520%2520origin%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.199196699999995%252C%2520longitude%253A%252024.9397302%257D%257D%257D%250A%2520%2520%2520%2520destination%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.168438%252C%2520longitude%253A%252024.929283%257D%257D%257D%250A%2520%2520%2520%2520via%253A%2520%255B%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520passThrough%253A%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520stopLocationIds%253A%2520%2522HSL%253A1122127%2522%250A%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%2520%255D%250A%2520%2520%2520%2520first%253A%25202%250A%2520%2520%29%2520%257B%250A%2520%2520%2520%2520pageInfo%2520%257B%250A%2520%2520%2520%2520%2520%2520endCursor%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520edges%2520%257B%250A%2520%2520%2520%2520%2520%2520node%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520start%250A%2520%2520%2520%2520%2520%2520%2520%2520end%250A%2520%2520%2520%2520%2520%2520%2520%2520legs%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520stopCalls%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520stopLocation%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520...%2520on%2520Stop%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520gtfsId%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520from%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520stop%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520gtfsId%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520viaLocationType%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520to%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520stop%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520gtfsId%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520viaLocationType%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520start%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520end%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D%250A%250A\">this link</a> to run the query below in GraphiQL.</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.199196699999995</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.9397302</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168438</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.929283</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">via</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span> <span class=\"token punctuation\">{</span>\n       <span class=\"token attr-name\">passThrough</span><span class=\"token punctuation\">:</span>  <span class=\"token punctuation\">{</span>\n          <span class=\"token attr-name\">stopLocationIds</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"HSL:1122127\"</span>\n       <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span> <span class=\"token punctuation\">]</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n  <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token object\">pageInfo</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">endCursor</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token object\">edges</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token object\">node</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">start</span>\n        <span class=\"token property\">end</span>\n        <span class=\"token object\">legs</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token object\">stopCalls</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token object\">stopLocation</span> <span class=\"token punctuation\">{</span>\n              <span class=\"token operator\">...</span> <span class=\"token keyword\">on</span> <span class=\"token class-name\">Stop</span> <span class=\"token punctuation\">{</span>\n                <span class=\"token property\">gtfsId</span>\n              <span class=\"token punctuation\">}</span>\n            <span class=\"token punctuation\">}</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">from</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n            <span class=\"token object\">stop</span> <span class=\"token punctuation\">{</span>\n              <span class=\"token property\">gtfsId</span>\n            <span class=\"token punctuation\">}</span>\n            <span class=\"token property\">viaLocationType</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">to</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n            <span class=\"token object\">stop</span> <span class=\"token punctuation\">{</span>\n              <span class=\"token property\">gtfsId</span>\n            <span class=\"token punctuation\">}</span>\n            <span class=\"token property\">viaLocationType</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">start</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">end</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ol start=\"2\">\n<li>Press play in GraphiQL to execute the query.</li>\n</ol>\n<h4 id=\"plan-an-itinerary-with-visit-via-locations\" style=\"position:relative;\"><a href=\"#plan-an-itinerary-with-visit-via-locations\" aria-label=\"plan an itinerary with visit via locations permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plan an itinerary with visit via locations</h4>\n<ol>\n<li>Click <a href=\"https://api.digitransit.fi/graphiql/hsl?query=%257B%250A%2520%2520planConnection%28%250A%2520%2520%2520%2520origin%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.199196699999995%252C%2520longitude%253A%252024.9397302%257D%257D%257D%250A%2520%2520%2520%2520destination%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.168438%252C%2520longitude%253A%252024.929283%257D%257D%257D%250A%2520%2520%2520%2520via%253A%2520%255B%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520visit%253A%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520coordinate%253A%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520latitude%253A%252060.1950122434621%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520longitude%253A%252024.9390506744384%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%252C%250A%2520%2520%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520visit%253A%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520stopLocationIds%253A%2520%255B%2522HSL%253A1122127%2522%255D%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%255D%250A%2520%2520%2520%2520first%253A%25202%250A%2520%2520%29%2520%257B%250A%2520%2520%2520%2520pageInfo%2520%257B%250A%2520%2520%2520%2520%2520%2520endCursor%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520edges%2520%257B%250A%2520%2520%2520%2520%2520%2520node%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520start%250A%2520%2520%2520%2520%2520%2520%2520%2520end%250A%2520%2520%2520%2520%2520%2520%2520%2520legs%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520from%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520viaLocationType%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520to%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520viaLocationType%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520start%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520end%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D%250A%250A\">this link</a> to run the query below in GraphiQL.</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.199196699999995</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.9397302</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168438</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.929283</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">via</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span> <span class=\"token punctuation\">{</span>\n       <span class=\"token attr-name\">visit</span><span class=\"token punctuation\">:</span>  <span class=\"token punctuation\">{</span>\n          <span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span>  <span class=\"token punctuation\">{</span>\n             <span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.1950122434621</span>\n             <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.9390506744384</span>\n          <span class=\"token punctuation\">}</span>\n       <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span>\n      <span class=\"token attr-name\">visit</span><span class=\"token punctuation\">:</span>  <span class=\"token punctuation\">{</span>\n         <span class=\"token attr-name\">stopLocationIds</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"HSL:1122127\"</span><span class=\"token punctuation\">]</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n  <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token object\">pageInfo</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">endCursor</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token object\">edges</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token object\">node</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">start</span>\n        <span class=\"token property\">end</span>\n        <span class=\"token object\">legs</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token object\">from</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n            <span class=\"token property\">viaLocationType</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">to</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n            <span class=\"token property\">viaLocationType</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">start</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">end</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ol start=\"2\">\n<li>Press play in GraphiQL to execute the query.</li>\n</ol>\n<h3 id=\"plan-an-itinerary-and-query-fare-information\" style=\"position:relative;\"><a href=\"#plan-an-itinerary-and-query-fare-information\" aria-label=\"plan an itinerary and query fare information permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plan an itinerary and query fare information</h3>\n<ol>\n<li>Click <a href=\"https://api.digitransit.fi/graphiql/hsl/v2/gtfs/v1?query=%257B%250A%2520%2520planConnection%28%250A%2520%2520%2520%2520origin%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.199196699999995%252C%2520longitude%253A%252024.9397302%257D%257D%257D%250A%2520%2520%2520%2520destination%253A%2520%257Blocation%253A%2520%257Bcoordinate%253A%2520%257Blatitude%253A%252060.168438%252C%2520longitude%253A%252024.929283%257D%257D%257D%250A%2520%2520%2520%2520first%253A%25202%250A%2520%2520%29%2520%257B%250A%2520%2520%2520%2520pageInfo%2520%257B%250A%2520%2520%2520%2520%2520%2520endCursor%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520edges%2520%257B%250A%2520%2520%2520%2520%2520%2520node%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520start%250A%2520%2520%2520%2520%2520%2520%2520%2520end%250A%2520%2520%2520%2520%2520%2520%2520%2520legs%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520fareProducts%2520%257B%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520product%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520id%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520...%2520on%2520DefaultFareProduct%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520price%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520amount%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520from%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520to%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520name%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520start%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520end%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520scheduledTime%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D%250A%250A\">this link</a> to run the query below in GraphiQL.</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"graphql\"><pre class=\"language-graphql\"><code class=\"language-graphql\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property-query\">planConnection</span><span class=\"token punctuation\">(</span>\n    <span class=\"token attr-name\">origin</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.199196699999995</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.9397302</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">destination</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">location</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">coordinate</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token attr-name\">latitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60.168438</span><span class=\"token punctuation\">,</span> <span class=\"token attr-name\">longitude</span><span class=\"token punctuation\">:</span> <span class=\"token number\">24.929283</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token attr-name\">first</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n  <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token object\">pageInfo</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">endCursor</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token object\">edges</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token object\">node</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">start</span>\n        <span class=\"token property\">end</span>\n        <span class=\"token object\">legs</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token object\">fareProducts</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token object\">product</span> <span class=\"token punctuation\">{</span>\n              <span class=\"token property\">id</span>\n              <span class=\"token property\">name</span>\n              <span class=\"token operator\">...</span> <span class=\"token keyword\">on</span> <span class=\"token class-name\">DefaultFareProduct</span> <span class=\"token punctuation\">{</span>\n                <span class=\"token object\">price</span> <span class=\"token punctuation\">{</span>\n                  <span class=\"token property\">amount</span>\n                <span class=\"token punctuation\">}</span>\n              <span class=\"token punctuation\">}</span>\n            <span class=\"token punctuation\">}</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">from</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">to</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">name</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">start</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token object\">end</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token property\">scheduledTime</span>\n          <span class=\"token punctuation\">}</span>\n         \n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ol start=\"2\">\n<li>Press play in GraphiQL to execute the query.</li>\n</ol>","tableOfContents":"<ul>\n<li>\n<p><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#glossary\">Glossary</a></p>\n<ul>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#note-about-itinerary-leg-geometries\">Note about Itinerary leg geometries</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#query-examples\">Query examples</a></p>\n<ul>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#plan-an-itinerary-from-location-6016899224932366-to-6017529424684855\">Plan an itinerary from location (60.168992,24.932366) to (60.175294,24.684855)</a></li>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#search-window\">Search window</a></li>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#pagination\">Pagination</a></li>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#basic-route-from-kamppi-helsinki-to-pisa-espoo\">Basic route from Kamppi (Helsinki) to Pisa (Espoo)</a></li>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#plan-an-itinerary-using-only-walk-and-rail-modes\">Plan an itinerary using only WALK and RAIL modes</a></li>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#plan-an-itinerary-from-hakaniemi-to-keilaniemi-and-modify-the-following-parameters\">Plan an itinerary from Hakaniemi to Keilaniemi and modify the following parameters:</a></li>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#plan-an-itinerary-with-alternative-departures-for-each-leg\">Plan an itinerary with alternative departures for each leg</a></li>\n<li>\n<p><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#plan-an-itinerary-with-via-locations\">Plan an itinerary with via locations</a></p>\n<ul>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#plan-an-itinerary-with-pass-through-via-locations\">Plan an itinerary with pass-through via locations</a></li>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#plan-an-itinerary-with-visit-via-locations\">Plan an itinerary with visit via locations</a></li>\n</ul>\n</li>\n<li><a href=\"/en/developers/apis/1-routing-api/itinerary-planning/#plan-an-itinerary-and-query-fare-information\">Plan an itinerary and query fare information</a></li>\n</ul>\n</li>\n</ul>","excerpt":"If you are not yet familiar with GraphQL and GraphiQL it is highly recommended to review those pages at first. Glossary Term Explanation Itinerary A combination of different transportation modes at…"}},"pageContext":{"slug":"/en/developers/apis/1-routing-api/itinerary-planning/"}},"staticQueryHashes":["3675773199","4050193485"]}