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.
How do I get started with your SDKs and APIs?
Usage and pricing#
Can I try your products for free?
Yep, our SDKs and APIs come with a free monthly usage allowance to enable you to test the Citymapper experience in your own products. When you're ready to launch, you can benefit from flexible usage-based pricing.
What happens if I exceed the free usage allowance?
If you're not on a paid plan, you'll be notified via email once you exceed the free usage allowance in a given month (the month-long period aligns with the calendar month). Further requests will no longer return results for the remainder of that month, and your free usage allowance will reset at the start of the next month. For further information on pricing plans, please contact our sales team.
How much do Powered by Citymapper products cost?
Please refer to our Pricing page for the latest information.
How do I upgrade to a paid account?
Please contact our sales team to learn more about upgrade and pricing options.
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.
We've not yet added all of our most exotic multimodal routing to this public SDK so if you have particular requirements please contact our sales team to learn how we can cover what you need.
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. If you have additional requirements please contact our sales team.
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.
If you're an enterprise user looking for custom coverage, please contact our sales team.
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)
If you have additional language requirements please contact our sales team.
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.
When will additional features from the Citymapper app be available in the SDK?
We'll keep building and shipping new features and enhancements to this public SDK, please keep an eye on future releases to learn more. If you're an enterprise user or require functionality not available publicly, please contact our sales team.
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?