Public Transportation Apps’ APIs and Platforms: Maps, Scheduling, Trip Planning, and Mobile Ticketing
Who hasn’t felt excited – and maybe a little paranoid – when going to an airport or bus station? We want our journey, whether business trip or vacation, to run smoothly from the very beginning. So, we try to remember whether we’ve locked doors, turned off home appliances, checked bags (again!) to make sure that passport and wallet are in place. Once we’re satisfied about these things, it’s time to think about our destination. How are we getting from the terminal to where we’re staying? Where’s the nearest public transport stop to a property? How much will it cost and how long does the ride take? A lot of questions arise that can be answered with several clicks or swipes. Public transit apps are here to help travelers navigate a city with the confidence of a local and save time.
To create an outstanding user experience for locals and tourists, we’ve described the best practices of UX in transportation apps. In this article we’ll cover the main APIs and technology providers that help businesses implement core transit app features:
- Scheduling and disruption tracking
- Vehicle tracking
- Trip planning
- Mobile ticketing
- Payments integration and more
Types of public transit apps
We distinguish three types of public transportation apps: general purpose apps, apps by transport providers, and apps used for the hop-on hop-off tours.
General purpose transit apps. These urban navigation apps usually support dozens or hundreds of cities across the globe and provide information on commuting options by various transport agencies, including bike and car sharing companies. Moovit, Transit, and Citymapper are among the most popular apps of this type. The Moovit app is the heavyweight here: It guides more than 200 million people in over 2500 cities located in more than 80 countries.
Transportation providers’ apps. As the name suggests, these apps are developed for specific transport agencies. In addition to route and schedule information for trip planning, such apps allow for online ticket purchase (a passenger usually has to activate a ticket widget to use this feature.) Apps by providers with intercity and international routes (e.g. bus companies like FlixBus) are integrated with ticket reservation systems. These companies deal with a seat inventory as each ticket is issued for a particular ride.
Hop-on hop-off tour apps. Hop-on hop-off is the approach to flexible sightseeing bus tours. Each tour consists of one or several routes covering a city’s places of interest. Flexible touring means that a tourist can explore landmark by landmark at their own pace, jumping off a specific stop and then taking a bus again to get to the next sightseeing stop. Depending on a destination, these tours may include river cruises. Tour apps like Tuk Tuk Hop and City Sightseeing Amsterdam are designed to provide people with information about routes: stops, static schedules and live location of vehicles, an offline city map, audio guides, or brief descriptions of popular landmarks.
Transit app functionality
Any public transport app comes with a set of features to help people move around a city using all the transportation options it has to offer. A transit app is like a tireless travel assistant who knows every city corner, is ready to advise on trip planning anytime, and inform on disruptions tracking vehicle locations.
The app must combine a simple interface with rich functionality to serve its purpose. While front-end development requires a significant designer effort, building a backend is an even bigger challenge. A developer must integrate it with a map platform, public transport agencies, ridesharing companies, as well as payment service providers and transaction network processors.
Let’s talk more about features that make a public transport app and how to implement them.
Use case: all app types
In the pre-Internet era, a typical traveler would wander around an unknown city with a big printed map. Today’s tourist is nearly inseparable from their smartphone, while paper travel books and maps are more souvenirs than necessities.
A map with all kinds of public transport stops, lines, and roads is one of the basic components for every public transit app.
Integration. There is no need to reinvent the wheel because the Maps platform by Google exists. The tech giant provides data for more than 200 countries and territories, which accounts for 99 percent of Earth coverage. And thanks to “over 25 million updates from over 1,000 sources,” users can rely on accurate real-time location information.
Google maps are integrated with application programming interfaces (APIs) that enable data exchange between software components.
Developers may use the following APIs:
- Maps SDK for Android and iOS allow adding maps based on Google Maps data into an app. APIs provide access to Google Maps servers, data download, map display, and response to user clicks and drags on a map. Developers can add various graphics to give more information for map locations and enable user interaction with the map. These can be markers (icons indicating a location), polygons (objects specifying areas enclosed by a loop), polylines (sets of line segments), and ground or tile overlays. Overlays are map objects anchored to latitude/longitude coordinates that move when a user drags or zooms the map.)
- The Maps Static API is used to embed simple static maps.
Polylines and markers on Google Maps. Source: StackOverflow
Schedules and routes with live updates on disruptions and vehicle location
Use case: all app types
Transit apps allow people to simplify journey planning, especially in unfamiliar locations. Commuters no longer need to surf websites before going out, ask pedestrians for help, or research timetables on public transport stops. All users must do is type a destination point (the app defines their location) and choose one of the commuting options. But what happens behind the scenes?
General Transit Feed Specification (GTFS). Transport agencies create and publish digital schedules (AKA feeds) providing developers with information for transit services and applications. Transit data is shared in a General Transit Feed Specification (GTFS) format – a common format for exchanging schedule, lines, routes, and transit stops location data. GTFS was created in 2005 by Google software engineer Chris Harrelson who wanted to find ways to incorporate transit data on Google Maps. The project initiative belongs to IT managers Tim and Bibiana McHugh from TriMet, a Portland transit agency.
A GTFS feed is a set of multiple (6-13) text files. Each text document contains information about a particular aspect of a transport type: agency name, routes, stops, operating days or hours, schedule, fares, accepted currencies and payment methods, trips, etc.
GTFS feed example by Google.
It’s great to know about commuting options, stops locations, and timetables. But this information is not enough to make a competitive app. A product with live updates on such disruptions as delays, closed or damaged lines, traffic jams is the thing. According to a study of rider behavior, riders with real-time information perceived they had waited for a bus 0.73 minutes less (about 13 percent).
GTFS Realtime. Transit data updates are shared in the GTFS Realtime format. That’s an extension to GTFS developed through a partnership of the initial Live Transit Updates partner agencies, a number of transit developers, and Google. Live Transit Updates is a service that providers use to share the current status of their vehicles with application developers. The service has been operating since June 2011.
GTFS feeds contain information on real-time departure and arrival times to stations/stops and service alerts. Feeds also inform about vehicle positions, including their location and congestion levels.
Transit data from aggregators. Developers, especially those building an app with support for many destinations, have to gather and format data from hundreds to thousands operators. For example, nine transport agencies are serving passengers in Adelaide, Australia. The good news is that there are volunteer projects and companies that collect transit data from official sources.
Transitland, for example, gathers and processes such data and welcomes transportation providers across the globe to contribute their feed to its registry. Developers can view, query, and edit transit data with the Transitland Datastore API and integrate it into their products.
Another platform, TransportAPI, redistributes data on public transport across the whole UK and allows for accessing it via RESTful API. Besides static schedules, engineers can make use of real-time transport data and past performance indicators, integrate journey planning, Twitter mapping, and fares information. The platform provides four user plans, two of which with basic features are free.
The WhereIsMyTransport platform is the source for schedule, frequency, and fare data from both formally and informally run public transport vehicles and networks across 23 cities in Africa and the Middle East. The platform provides a free API. But if you expect high traffic volumes, contact the project team.
Popular transit apps like Transit or CityMapper contain information about the bike- and scooter- sharing services for commuters with a passion for transportation modes. Consider Motivate if you plan to add this transportation mode in your app. Motivate is a community of “data geeks,” as they call themselves, which transmits system and data feeds from bike-sharing services in several American cities, including New York, Boston, Portland, Washington DC, and the San Francisco Bay Area. Data feeds usually update every minute, so you can be sure your users won’t be left without a bike.
Transit data from operators. You can get transit data directly from local public transport companies if your product is tailored to a particular city or area. For instance, The Metropolitan Transit Authority of New York (MTA) provides free data in GTFS format via its MTA API. The information on service disruptions is updated every five minutes. The Chicago Transit Authority also provides transit data and welcomes application developers to use them.
Carsharing and services like Uber are must-haves as well. Uber provides an API to let developers integrate its app’s capabilities into their product.
Use case: all app types
Every commuter wants to be sure their transportation arrives as scheduled. Well, anything can happen on the way: an accident, a component failure, or an outage. That’s why transit agencies, such as LA Metro, use automatic vehicle location systems (AVLs) and advanced transportation management system (ATMS) technology to be in full control over their operations. AVL systems are based on a global positioning system (GPS) and allow for tracking fleet geographic location (longitude and latitude), ground speed, and route direction. In general, automatic vehicle location systems consist of GPS equipment on vehicles and software showing location data on a map.
Tracking tourist shuttles in real-time is one of the key features for hop-on hop-off tour apps. Tourists that prefer flexibility to strict timelines have to know both vehicle departure and arrival times and actual location. The City Sightseeing Amsterdam app we mentioned before comes with an interactive map on which users can specify which objects they want to see, including buses and boats that are cruising around. Hop on-Hop off, another app for Amsterdam tours, provides users with live bus tracking. A map also has regular and satellite modes.
Vehicle location tracking in City Sightseeing Amsterdam (above) and Hop on-Hop off apps (below).
Public transit operators may not have the infrastructure to constantly monitor their fleet and update transit data in a timely manner. Consequently, the user experience level you provide depends on the quality of real-time data that agencies share. So, you need to use additional sources of live location data.
Off-the-shelf products. Besides a transit app with the largest city coverage so far, Moovit offers the TimePro vehicle location system for businesses. The cloud-based system includes three parts. The first is a driver mobile app that transmits a vehicle’s actual location to Moovit servers. The second is a web-based dashboard for a transportation provider with real-time tracking fleet location support, one-on-one messaging with drivers, and analytics. Finally, transport data with estimated time of arrival (ETA) is shared with Moovit, any integrated transit app, or a website.
TimePro vehicle location system in action. Source: Moovit
If you plan to launch an Uber-like product with a vehicle tracking feature, consider using HyperTrack software development kit (SDK) to build an application. HyperTrack provides live device location and tracking while ensuring low battery consumption (less than 2 percent in 24 hours.)
In short, HyperTrack lets commuters and drivers find and monitor each other’s real-time location on a map. It can be used for web apps, mobile, Android, and iOS. The service supports geofencing: It determines user device location and virtual geographical boundaries and notifies both of them. Such features as estimated time of arrival, delay alerts, historical data analysis, and reporting are also available.
Crowdsourcing. Some transit apps have their own win-win solutions. The Transit app team uses crowdsourced live transit data. The app has a built-in GO trip navigator that gives people step-by-step directions (e.g. notifies when to take off) while tracking and sharing a vehicle location from which other commuters can benefit. So, timetable and route data from a transport agency is replaced with the one broadcasted from a user’s mobile device once they board a bus or train. It’s worth mentioning that you can consider this feature only if you have hundreds of thousands of users.
Use case: general purpose apps, transportation providers’ apps
It’s time to make a good use of maps with commuting options, live updates on timetable changes and vehicle locations. Journey planning is another key feature that makes a great user experience. This feature allows users to get step-by-step directions on how to get from point A to point B, specify a preferred transit mode, or consider among several or all types of transport.
BVG FahrInfo Plus Berlin users, for example, can search for commuting options in two ways: by typing addresses or setting departure (A) and destination (B) points on a map.
Trip planner in the BVG FahrInfo Plus Berlin app
Integration. For the apps with built-in maps by Google, software engineers may use additional services to add a trip planning feature such as:
- The Directions API calculates directions between locations. The service allows users to search for directions for various transit modes: bus, light rail, subway, tram, monorail, bus, intercity bus, trolleybus, ferry, long-distance train, etc. Users also receive directions for cycling, walking, and driving. The AP returns optimal routes when calculating directions and estimated time of a trip or its parts (legs).
- The Distance Matrix API provides a route distance and estimates travel time for different travel modes.
- The Geocoding API allows for converting addresses into geographic coordinates (e.g. latitude and longitude) and viсe versa. Geocoding can be used for placing markers on a map or positioning the map.
- Geolocation API returns the location of a device through the use of location data from cell towers and WiFi nodes instead of GPS.
- The Places API returns information about places (e.g. landmarks or restaurants)
Google suggests that developers use Client Libraries for Google Maps Web Services. A software library usually contains pre-written code and data, so developers can build easier and faster.
Use case: apps by transportation providers (both local public transport agencies and those with intercity and international routes)
With the movement towards cashless transactions across businesses, it would be strange not to see the transportation industry moving in the same direction. Passengers value their time and expect the same from transit for providers. A feature that allows travelers to book, purchase, and validate tickets with a mobile device is the cherry on top for a public transit app.
FlixBus app allows users to get on board with paperless tickets. Source: Flixbus
Demand meets supply. In 2016, Mass Transit magazine supported with Masabi mobile ticketing provider surveyed 218 US industry representatives to learn their opinions on the future of fare collection. One of the key findings reveals that 87 percent of transit companies said they already have or plan to implement mobile ticketing by 2021. So, we suggest you join this 87 percent.
Mobile ticketing system. In a nutshell, a mobile ticketing system is an example of a client-server system. It consists of an end-point device with installed transit app, a server, as well as a scanning device in a vehicle or on gate. A client sends a ticket purchase request, a server processes this request, generates a mobile ticket, issues key pairs for its encryption and decryption, and returns the ticket to the client.
Ticket validation technologies. When onboarding, a passenger scans a ticket on a validation device in a vehicle, at a gate, or activates a ticket with the app. Several technologies can be used for activating tickets with physical devices: near field communication (NFC), Bluetooth Low Energy (BLE), and Wi-Fi aware.
NFC is a form of contactless communication between devices that uses radio frequency current. The technology is relatively new, and a limited number of smartphones support it. Here is the full list of NFC-compatible devices you can check out.
It’s crucial to consider the adoption level of technology behind a mobile ticketing solution when choosing one.
Integration of mobile ticketing platforms. You can save development efforts and implement this feature with one of the ready-to-use platforms. The Justride mobile ticketing platform by Masabi is one of them. This service turns smartphones into ticket machines. It allows users to choose tickets of various fare types, purchase them, and get them delivered to their digital wallet. The platform provides visual digital and barcode tickets. Visual tickets can be examined by a driver or inspector. Barcode tickets – which we need – can be activated in the app once purchased (even without the connection) or scanned by a validation device in a vehicle or at a gate. Transport providers will also get access to a cloud-based back-office with such functionality as reporting, transit data management, customer service request processing, or monitoring of validation devices. To integrate your app with the ticketing platform, you can use The Justride SDK – a software library and a set of APIs.
Payment integration of a custom mobile ticketing system. How to enable payment for your own mobile ticketing? Generally speaking, you need to integrate your app with one of payment processing platforms. These platforms receive and process online (card-not-present) transactions from cards and digital wallets. Payment processing providers usually offer a suite of services, including cashless payment processing, data analytics and reporting, as well as fraud detection services. Some of the most popular platforms are Worldpay, PayPal-owned Braintree, Stripe, and Adyen.
To start working with a chosen platform, create a merchant account (that comes with a payment processor). The gateway is an API that you call to charge a card. Once you have a merchant account, developers can use APIs and client and server software development kits (SDKs) to enable integration. While developer tools are generally free, platforms apply transaction fees.
Frequent trips. Such customization options as saved locations can add extra points to the overall feedback score for your product. CityMapper, for instance, not only defines the most efficient route with a chosen transport mode but also guides people on their top commutes with Get Me Home or Get Me To Work features. Users are free to choose whether to enter an address themselves or let the app use their current location as a trip start or end point. Once two locations are saved, users can add leaving times for morning and evening commutes and let the app remind them it’s time to go home or to work.
Offline traffic maps. As users may not always have the connection, detailed maps with public transport lines may save someone from getting lost.
Flexible pick up. Imagine an alternative to public transportation with an average bus fare and the flexibility of a car. For example, a commuter whose office is nearly 700 feet away from a stop requests to be picked up near an entrance because they are running late or simply have this option. Our UX team has introduced such approach and fully designed new applications for Niftie, an Australian ride-sharing company. According to the model, passengers specify pickup and drop-off, register for a ride, and get boarding pin codes to enter on a driver’s tablet when entering a bus.
The perfect transit app must be everything at once: a map, trip assistant, ticket vending machine, and mini encyclopedia. Versatility should be every public transit app developer’s goal when it comes to functionality. Core features like maps, schedules, location tracking, and real-time notifications are equally important for any app, whether it’s intended to support hundreds of destinations, be tailored to a specific transport provider, or help visitors learn about a city’s landmarks.
At the same time, some features become especially sensible for a particular app type.
General purpose apps must include all transportation modes available, step-by-step navigation, and vehicle tracking.
Information about a city and navigating it are important for hop-on hop-off tour apps. A customizable map with live fleet tracking, additional info on sights with photos, as well as walking tours and on-demand routes can enhance the tourist experience. In addition, consider adding an in-app tour purchase option – travelers will thank you.
Seamless booking, payment, and boarding are imperatives for your transit company. Make sure commuters can access up-to-date seat availability and fare information if you operate long-distance routes. It would also be great if travelers could see what part of a route a vehicle has already completed and receive alerts on when to take off.
Interested in travel APIs? Check our other pieces on the topic: