Java Other
Clone or download


The openrouteservice API provides global spatial services by consuming user-generated and collaboratively collected free geographic data directly from OpenStreetMap. It is highly customizable, performant and written in Java.

The following services are available via a RESTful interface served by Tomcat.

  • Directions - Returns a route between two or more locations for a selected profile with customizable additional settings and instructions.
  • Isochrones - Obtains areas of reachability from given locations.
  • Matrix - Computes one-to-many, many-to-one or many-to-many routes for any mode of transport provided by openrouteservice.
  • Geocoding - Resolves input coordinates to addresses and vice versa (NOTE: openrouteservice acts as a wrapper and connects to either Photon, Nominatim or Pelias. One of these services must be installed in addition to the openrouteservice).
  • Places - Search for points of interest around points or in geometries (NOTE: you will have to set up a locations database, for this please refer to openrouteservice-tools).

To play around with openrouteservice you may use our demonstration server which comes with both the backend and a frontend. Or simply sign up for an API key and fire your requests against the API directly via apiary.

Please note that openrouteservice uses a forked and edited version of graphhopper 0.9 which can be found here.

ors client accessibility


We appreciate any kind of contribution - bug reports, new feature suggestion or improving our translations are greatly appreciated. Feel free to create an issue and label it accordingly. If your issue regards the openrouteservice web-app please use the corresponding repository.

If you want to do contribute your improvements, please follow these steps:

  1. Fork the openrouteservice project

  2. Create a branch for the improvement from the development branch on your fork and add your contributions there.

  3. Create a pull request to our development branch, so we can review your changes before applying them. Please write your pull request description similar to this standard. Also please make sure to reference your pull request to the corresponding issue, for changes regarding multiple issues please create different pullrequests using different branches in your fork.


We suggest using docker to install and launch openrouteservice backend. In short, run the following command under the source code tree will get everything done.

cd docker && docker-compose up

For more details, check the docker installation guide.


Openrouteservice offers a set of endpoints for different spatial purposes. They are served with the help of Tomcat in a java servlet container. By default you will be able to query the services with these addresses:

  • http://localhost:8080/name_of_war_archive/routes
  • http://localhost:8080/name_of_war_archive/isochrones
  • http://localhost:8080/name_of_war_archive/matrix

Both /locations and /geocoding need additional setup steps for usage.

  • http://localhost:8080/name_of_war_archive/locations | You will have to set up a locations database, for this please refer to openrouteservice-tools.
  • http://localhost:8080/name_of_war_archive/geocoding | You can either use Photon, Nominatim or Pelias. One of these services must be installed in addition to the openrouteservice and configured in app.config.

Please find a detailed description of the api architecture on

API Documentation

For an easy and interactive way to test the api, visit our documentation at apiary. After obtaining your key you can try out the different endpoints instantly and start firing requests.


For questions please use our Google Groups Forum and we will respond to you shortly.