Brylie Christopher Oxley edited this page Nov 24, 2017 · 72 revisions

OpenTripPlanner for Android

This project is an open-source Android client for the OpenTripPlanner project. It is designed to interface with any OpenTripPlanner server via the OTP RESTful API.

A list of public OTP servers is kept in the OTP Server Directory (a Google Docs spreadsheet), and the mobile app is able to plan trips automatically using whichever server is appropriate for the current location of the user.

Download the App!

Download the app via the Google Play store.

Google Play logo

See the Release Notes for version details.

Current Features

  • Plan trips via bus, bike, and walk that are linked together (i.e., multi-modal trips)
  • Draggable markers for start/end locations
  • Sliding panel for trip options, including bike options (called "Bike triangle" on the OTP website), allowing custom bike trips to balance how quick, flat, and "bike-friendly" trip results are
  • Options to change wheelchair accessibility, max walk distance, etc.
  • Trip itinerary displayed both on the map with markers for transitioning modes, to show info for the next mode, place and time when tapped, as well as a list of step-by-step directions.
  • Options for various map tile providers including OSM and Google.
  • Options for various Point-of-Interest search, including geo-coding, providers
  • Auto-detection of closest OTP server based on the OTP Server Directory (Can also use a custom URL to any OTP server REST API)
  • Feedback email for Android client maintainer or to particular OTP server maintainer
  • Date and time support to plan a trip to an specific departure/arrival time.
  • Saves your battery! Low energy consumption by using the Google Play Services fused location provider for location information.

Future features

  • Add elevation graph
  • Real-time navigation support, including auto-rerouting
  • Text-to-Speech directions
  • Text localization
  • Favorites management for most common departures/destinations.

See our "Issues" page for a full list of planned features, which are labeled with an "Enhancements" tag.


Check out a presentation about this app from the 2011 OpenTripPlanner Workshop in Portland, Oregon (starting on slide 33).

Adding your region to OTP Android

In our current architecture, each region is responsible for maintaining their own OTP server. So, you'd need to set up a new OTP server instance as specified at (like normal).

When you have an OTP server setup for your region, note that there is a "Custom Region URL" option in the OTP Android app Settings. You can test to make sure everything works in the app by entering your server URL in this box (e.g.,, or

Please be sure to check out the "Testing the app with your own OTP Server" page in the Developer Guide for more details.

After you've tested to make sure OTP Android works with your server, just contact the OTP Developers Group requesting to add your server to the app, and we'll make it available to all OTP Android users by adding it to the OTP Server Directory


If you'd like to get your own version of the app working based on the source code, check out our Developer Guide page.

We'd love to work with other developers who might be interested in knocking off one or two of the above planned features. Please let us know if you're interested in helping out by emailing Sean Barbeau at barbeau@cutr dot

OpenTripPlanner for Android source code (i.e., this Github repo) is licensed under the Apache 2.0 license. OTP Android uses classes from the main OTP project to aid in the deserialization of OTP REST API responses. These classes are maintained in a separate Github project, are licensed under the L-GPL license per the main OTP project.

Some development was done as part of the Google Summer of Code 2013 OTP for Android project!

Mailing List - OpenTripPlanner Developer list - Just be sure to mention "OTP Android" in the subject line.


Please see our Acknowledgements page!

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.