What is Powered by Citymapper?
We've spent the past decade building some of the greatest technology in mobility. We're now making this available to everyone as components, via SDKs and APIs. You can pick and choose the exact functionality you need, including:
- Journey planning
- Turn-by-turn navigation
- Departures and disruptions
- and more.
Should I start with your SDK or APIs?
We recommend the vast majority of customers start with our SDK. It's designed to be plug and play, making it quick and easy to add journey planning and navigation to your apps. The SDK's default UI reflects our decade of experience building our consumer app, tested by tens of millions of users, so you know you're delivering a great experience straight out of the box.
For those with specific UI requirements the SDK has a highly flexible component structure, allowing you to customize it to your needs. Refer to the visual styling section of this documentation for further details.
The APIs are designed for customers looking to build highly custom experiences that aren't accommodated by our SDK, and for web projects.
Usage and pricing#
How much do Powered by Citymapper products cost?
Please refer to our Pricing page for the latest information.
Using our products#
Which modes of journey planning are supported?
From trains to minibuses to e-scooters and everything in-between - we cover all forms of transport. With our SDK you can offer your users any or every way of getting around cities, allowing you to tailor mode choices to your use case.
Which locations does your SDK cover?
Our public SDK covers over 450 of the largest cities globally, and this number is growing weekly.
We can offer custom coverage to enterprise customers, including global coverage for walking, cycling and e-scooters; wider public transit coverage and extra features such as long distance inter-city journey planning.
What happens if I try to get directions or navigation for an unsupported location?
If there are no results available for any mode of transport, an error response will be returned, and no charge will be applied.
Which programming languages does the SDK support?
The Android SDK is Kotlin-first with full coroutines support, but is also easy to use from Java. The iOS SDK is written in Swift but is also compatible with Objective-C. If you’re developing in another language, such as React Native or Flutter, you'll need to create a communication bridge between the SDK and your app.
Does the SDK include address search functionality?
The SDK requires a start and end destination (latitude/longitude pair) to be provided in order to return directions or navigation instructions.
If you're looking to add search functionality to capture these elements, you'll need to set this up in parallel to integrating our SDK. Note our SDK will soon provide a shell to make it easy for you to plug in your own search provider.
Alternatively, there are many intuitive ways to identify start and end destinations without needing to add search functionality. For example, map-based scrolling with destination pinning can offer a seamless UX for a number of use cases.
Which map layer does the SDK use?
The SDK integrates the native OS map layer - Google Maps for Android and Apple Maps for iOS.
Which minimum OS versions does the SDK support?
The SDK is compatible with Android 24 and above, and iOS 11 and higher.
What is the SDK package size?
The iOS SDK package is < 1MB. The Android SDK package is approximately 500KB if transit mode is included, and smaller if it is not.
Which package manager tools can be used?
For iOS: Cocoapods 1.10.1 and above, or Carthage. For Android: Gradle/Maven.
Which languages and localization options are available?
Our public SDK can be localized in the following languages:
- English (UK)
- French (Canada)
- Chinese Simplified
- Chinese Traditional
- Cantonese (Hong Kong)
- Portuguese (Portugal)
- Portuguese (Brazil)
- Spanish (Mexico)
Does the SDK require location services to be enabled?
Our journey planning functionality works irrespective of user location services being enabled.
Our turn-by-turn navigation functionality requires user location services to be enabled to deliver an optimal experience - this enables accurate triggering of real-time turn instructions.
Which visual styling elements can I customize?
Fonts, colours, lines, corners, icons, spacing and more can be adjusted to fit your app's look and feel. Refer to the visual styling section in this document to learn more.
How should I report a bug?
Please use our feedback form to let us know about any issues you find - the more details the better!
How can I share feedback or request a new feature?
We'd love to learn more about your experience using our products, please contact us to contribute feedback.
How do I get in touch with technical support?
Individual support is currently available to enterprise customers.