Note: this documentation is targeted primarily at the OTP development community and more technical users. For high-level information about the project, please visit

OpenTripPlanner (OTP) is an open source multi-modal trip planner, which runs on Linux, Mac, Windows, or potentially any platform with a Java virtual machine. OTP is released under the LGPL license. The code is under active development with a variety of deployments around the world.

If you want to get started right away running your own OTP instance, the best place to start is the Basic Usage page.

Build Status

Latest Project Updates

  • Version 1.2 was released on 18 August 2017.

  • After seven years of hard work and almost 10,000 commits from over 100 contributors around the world, version 1.0 was released on 9 September 2016!

  • The Helsinki Regional Transport Authority (HSL) trip planner based on OpenTripPlanner is in public beta as of spring 2016. Source code for their new UI is available on Github.

  • As of 2015, OTP powers the New York State department of transportation's transit trip planner. It provides itineraries for public transit systems throughout the state in a single unified OTP instance.

  • In November of 2014, Arlington, Virginia launched a new commute planning site for the Washington, DC metropolitan area. It depends on OpenTripPlanner to weigh the costs and benefits of various travel options, making use of profile routing.

  • OpenTripPlanner was a focal point in the Dutch Transport Ministry's MMRI (MultiModal Travel Information) project which encouraged investment in trip planning platforms and services. A consortium of five companies worked together to improve OpenTripPlanner performance in large regional transport networks and account for real-time service modifications and delays. The resulting Plannerstack Foundation is now providing OpenTripPlanner and Bliksem RRRR as hosted services including high quality open data integration for the Netherlands.

  • OpenTripPlanner has become Software Freedom Conservancy's thirty-first member project. Conservancy is a non-profit public charity that provides a range of financial and administrative services to member projects that develop Free, Libre, and Open Source Software. By joining Conservancy, OpenTripPlanner obtains the benefits of a formal non-profit organizational structure while keeping the project focused on software development and documentation.

  • TriMet relaunched Portland Oregon's official trip planner which is now powered by OTP. Read more about the project, and see also TriMet's 2009-2011 OTP Final Report.

Basic OTP Architecture

At the core of OpenTripPlanner is a library of Java code that finds efficient paths through multi-modal transportation networks built from OpenStreetMap and GTFS data. Several different services are built upon this library:

The OTP Routing API is a RESTful web service that responds to journey planning requests with itineraries in a JSON or XML representation. You can combine this API with OTP's standard Javascript front end to provide users with trip planning functionality in a familiar map interface, or write your own applications that talk directly to the API.

The OTP Transit Index API is another RESTful web service that provides information derived from the input GTFS feed(s). Examples include routes serving a particular stop, upcoming vehicles at a particular stop, upcoming stops on a given trip, etc. More complex transit data requests can be formulated using a GraphQL API.

The term "OTP Analyst" refers to parts of OTP that apply the routing engine to transportation network analysis rather than end-to-end trip planning. OTP Analyst includes:

The OTP Analyst Web Services provide network analysis results such as travel time maps and isochrones as standard web Mercator tiles or GIS rasters via a WMS-derived API. These web services are conceptually separate from the routing API, but are provided by the same servlet: once you have a working OTP trip planner you can also use it to produce travel time maps and other visualizations of transit service. See this blog post for discussion and examples.

The OTP Analyst Batch Processor is a command-line tool that handles more complex one-off network analysis tasks. It uses the same core routing library and data sources as other OTP services, but allows for very open-ended configuration and the inclusion of population or opportunity data. While configuration and use are currently somewhat opaque for non-developers, the "Batch Analyst" is becoming a powerful tool for visualizing how transportation networks affect access to urban opportunities. See this article for an example case study on the effects of hurricane Sandy in New York.

The OTP Scripting API allow the execution of routing requests from within scripts (such as Python). It is composed of a stable internal API, and an embedded Jython interpreter. It can be used in different contexts, such as batch analysis or automated regression testing. More information here.

Additional Documentation

Some other types of documentation are generated for OTP from its source code:

Contact Info

Send questions and comments to the user mailing list. Discuss internal development details on the dev mailing list. File bug reports via the Github issue tracker. Note that the issue tracker is not intended for support questions or discussions. Please post them to one of the mailing lists instead.


The project began a collaborative effort among TriMet, OpenPlans, and the developers of FivePoints, OneBusAway and Graphserver, and has since grown to encompass a global community of users and developers. More information on OTP's origins is available at the Project History page. In November of 2013, OpenTripPlanner became the thirty-first member project of the Software Freedom Conservancy.

Financial Support

OpenTripPlanner is a member project of Software Freedom Conservancy, a 501(c)(3) organization incorporated in New York, and donations made to it are fully tax-deductible to the extent permitted by law. Donations can be made by credit card, wire transfer or paper check. Please contact for instructions. Be sure to note in the email what country the wire transfer will initiate from and what currency it will be in.