Mapzen Multimodal Transit Routing

Mapzen Turn-by-Turn now uses GTFS data from Transitland to plan journeys on subways, buses, trains, and ferries. Drag and drop the pins on the map above to see different transit routes, all based on open data!

This demo lets you try out multimodal transit routing anywhere we have GTFS data, including the San Francisco Bay Area, New York City, Rome, Vancouver and Los Angeles. The Feed Registry lists all the transit operators and feeds included in Transitland – we import these on a regular basis, and we welcome new feeds.

“Multimodal” refers to routing via walking and public transit, using time-based schedules of public transportation systems. We can walk to a station, utilize public transportation, disembark and walk to our final destination. By default, we try to use rail before buses and attempt to avoid transfers. This demo uses weights of use_bus=0.5, use_rail=0.6 and use_transfers=0.4 but these values can all be tweaked to your liking, along with time and date information. In this demo, all these parameters can be adjusted via the URL and passed to our API. Here are a few sample URLs to get you started.

If the route seems strange, note that small changes in the weights can make a big difference in the route. Let us know what you see – send us a tweet or an email! We’ll add more cities here as they become available.

As we roll out cities, note that we only use feeds licensed as open source – you can see which regional transit providers we include in the Transitland Feed Registry and the Playground.

Mapzen Mobility is all about an open-source toolkit for multimodal transportation. Learn more about the toolkit of services, powered exclusively by open-source software and open data.

Get started

Let’s do this

Sign up for an API key to add routing to your project!


The Mapzen Turn-by-Turn documentation has step-by-step walkthroughs and technical reference to use the service.

Add navigation to your map

If you’re looking to use Mapzen Turn-by-Turn with a Leaflet web map, check out our plugin for Leaflet Routing Machine (LRM). You’ll be able to start offering Mapzen Turn-by-Turn on your web map in minutes! Our tutorial will get you started in no time.

Harness the power of the API

A Turn-by-Turn API response includes a JSON array of maneuvers including textual and voice directions suitable for navigation and guidance applications. The route path is returned as an encoded polyline which can be decoded and displayed on a map. Many more details are available in the API documentation.

Mapzen is providing Turn-by-Turn as a shared service. API rate limits are generous, but please drop us a line if you encounter them. We also provide companion services that may help you get more out of your API requests.

Companion services from Mapzen

  • The Time Distance Matrix is ideal for planning and logistics apps where analysis of (yes) the time and distance between a set of locations where route shape and narrative guidance are not yet needed. Learn more here.
  • Height and range data can be acquired for points and paths via the Elevation Service rerturns. You can learn more here.
  • When GTFS feeds of transit providers are added to the Transitland Feed Registry, the routes and stops can be integrated into Mapzen Turn-by-Turn and provide multimodal routing.


Mapzen Turn-by-Turn has been out in the wild for quite some time. Check out some of our favorite examples from our friends!

Are you are using Mapzen Turn-by-Turn in a project? Send us a tweet or an email!


Mapzen Turn-by-Turn has come a long way in a short time. But we are not done yet! The framework is in place to add new features, add new costing options and methods, expand multimodal routing features and coverage, and to help improve OSM road network quality worldwide. The team at Mapzen is interested in your feedback. Please report any routing issues and suggest new features at