{"id":15133038,"url":"https://github.com/giscience/openrouteservice","last_synced_at":"2025-05-14T05:11:10.542Z","repository":{"id":37549920,"uuid":"103155862","full_name":"GIScience/openrouteservice","owner":"GIScience","description":"🌍 The open source route planner api with plenty of features.","archived":false,"fork":false,"pushed_at":"2025-05-06T09:34:00.000Z","size":286306,"stargazers_count":1598,"open_issues_count":133,"forks_count":435,"subscribers_count":40,"default_branch":"main","last_synced_at":"2025-05-06T09:35:01.110Z","etag":null,"topics":["directions-api","isochrones","matrix","openstreetmap","osm","routing","routing-engine"],"latest_commit_sha":null,"homepage":"https://openrouteservice.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GIScience.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing/backend-documentation.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-11T15:49:01.000Z","updated_at":"2025-05-06T09:34:03.000Z","dependencies_parsed_at":"2024-01-05T14:29:42.084Z","dependency_job_id":"a2c16d16-28c6-4b83-a0a3-9e3496162f1f","html_url":"https://github.com/GIScience/openrouteservice","commit_stats":{"total_commits":3973,"total_committers":99,"mean_commits":40.13131313131313,"dds":0.8814497860558772,"last_synced_commit":"e5d78011c27cb1aa549509b1482bd66e00a2dbdc"},"previous_names":[],"tags_count":290,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fopenrouteservice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fopenrouteservice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fopenrouteservice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fopenrouteservice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GIScience","download_url":"https://codeload.github.com/GIScience/openrouteservice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076850,"owners_count":22010611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["directions-api","isochrones","matrix","openstreetmap","osm","routing","routing-engine"],"created_at":"2024-09-26T04:43:33.148Z","updated_at":"2025-05-14T05:11:05.530Z","avatar_url":"https://github.com/GIScience.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Openrouteservice\n\n[![Docker Nightly Build Status](https://img.shields.io/github/actions/workflow/status/GIScience/openrouteservice/docker-nightly-image.yml?style=flat\u0026label=Docker%20Nightly\u0026link=https%3A%2F%2Fhub.docker.com%2Fr%2Fheigit%2Fopenrouteservice%2Ftags)](https://hub.docker.com/r/heigit/openrouteservice/tags)\n[![Docker Version Status](https://img.shields.io/github/actions/workflow/status/GIScience/openrouteservice/publish-tagged-release.yml?style=flat\u0026label=Docker%20Latest\u0026link=https%3A%2F%2Fhub.docker.com%2Fr%2Fheigit%2Fopenrouteservice%2Ftags)](https://hub.docker.com/r/heigit/openrouteservice/tags)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=GIScience_openrouteservice\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=GIScience_openrouteservice)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=GIScience_openrouteservice\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=GIScience_openrouteservice)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=GIScience_openrouteservice\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=GIScience_openrouteservice)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=GIScience_openrouteservice\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=GIScience_openrouteservice)\n[![Release](https://img.shields.io/github/v/release/GIScience/openrouteservice)](https://github.com/GIScience/openrouteservice/releases/latest)\n[![LICENSE](https://img.shields.io/github/license/GIScience/openrouteservice)](LICENSE)\n\nOpenrouteservice is a highly customizable, performant routing service written in Java. \nIt uses a [forked and edited version of graphhopper 4.0](https://github.com/GIScience/graphhopper) \nand provides global spatial services by consuming user-generated and collaboratively collected free geographic data directly from [OpenStreetMap](http://www.openstreetmap.org): \n\n* [Directions Service](https://giscience.github.io/openrouteservice/api-reference/endpoints/directions/): Get directions for different modes of transport\n* [Isochrones Service](https://giscience.github.io/openrouteservice/api-reference/endpoints/isochrones/): Obtain areas of reachability from given locations\n* [Matrix Service](https://giscience.github.io/openrouteservice/api-reference/endpoints/matrix/): Obtain one-to-many, many-to-one and many-to-many matrices for time and distance\n* [Snapping Service](https://giscience.github.io/openrouteservice/api-reference/endpoints/snapping/): Snap coordinates to the road network\n* [Export Service](https://giscience.github.io/openrouteservice/api-reference/endpoints/export/): Export the base graph for different modes of transport\n* [Health Endpoint](https://giscience.github.io/openrouteservice/api-reference/endpoints/health/)¹: Get information on the health of the running openrouteservice instance\n* [Status Endpoint](https://giscience.github.io/openrouteservice/api-reference/endpoints/status/)¹: Get information on the status of the openrouteservice instance\n\n¹) **Health and Status Endpoint are not available in our public openrouteservice API aka \"live API\"!** \nYou can use them by running your own instance of openrouteservice.\n\nAnd to avoid any misunderstandings, it should also be mentioned at this point that our live API provides several other endpoints \nthat are **not part of the openrouteservice software/repository**:\n\n* [openpoiservice](https://github.com/GIScience/openpoiservice): A stand-alone service from HeiGIT that returns points of interest in the area surrounding a geometry\n* [openelevationservice](https://github.com/GIScience/openelevationservice): A stand-alone service from HeiGIT that returns the elevation for point or line geometries\n* [Pelias](https://www.pelias.io): A (reverse) geocoder hosted by HeiGIT that resolves geographic coordinates to addresses and vice versa\n* [VROOM](https://github.com/VROOM-Project/vroom): The Vehicle Routing Open-source Optimization Machine hosted by HeiGIT \n\nTo play around with openrouteservice you may use our [demonstration server](https://maps.openrouteservice.org) which comes with both the backend and a [frontend](https://github.com/GIScience/ors-map-client). \nOr simply [sign up](https://openrouteservice.org/dev/#/signup) for an API key and fire your requests against the API directly.\nYou can also do this in our [API Playground](https://openrouteservice.org/dev/#/api-docs) - take a look at the [API Reference](https://giscience.github.io/openrouteservice/api-reference/) to get more information.\n\n![map-client-isochrones](docs/public/map-client-isochrones.png)\n\n\n## Installation\n\nYou can easily [run openrouteservice](https://giscience.github.io/openrouteservice/run-instance/) yourself! \n\n**tl;dr:** We suggest [using docker](https://giscience.github.io/openrouteservice/run-instance/running-with-docker) to install and launch openrouteservice. \nIn short, a machine with a working [docker installation](https://www.digitalocean.com/community/tutorial_collections/how-to-install-and-use-docker) will get everything done for you. \n\nChange to the directory where you want to install your local openrouteservice and first create some directories, where openrouteservice will persist its data:\n```shell\nmkdir -p ors-docker/config ors-docker/elevation_cache ors-docker/graphs ors-docker/files ors-docker/logs\n```\n\nOnly use nightly (main branch) if you know what you do. \nWe recommend running docker compose with the latest release version. \nGet the docker compose file for a release, e.g. v8.0.0: \n```shell\nwget https://github.com/GIScience/openrouteservice/releases/download/v8.0.0/docker-compose.yml\n```\n\nStart openrouteservice in the background:\n```shell\ndocker compose up -d\n```\n\nThis will pull the openrouteservice docker image of the selected version and start it up using an example setup\nand the provided test OSM file for Heidelberg/Germany and surrounding area.\n\nTo see the container's logs, run:\n```shell\ndocker compose logs \n```\n\nStop the container with:\n```shell\ndocker compose down\n```\n\n## Usage\n\nThe above mentioned endpoints will be available on port 8080:\n\n- `http://localhost:8080/ors/v2/directions`\n- `http://localhost:8080/ors/v2/isochrones`\n- `http://localhost:8080/ors/v2/matrix`\n- `http://localhost:8080/ors/v2/snap`\n- `http://localhost:8080/ors/v2/export`\n- `http://localhost:8080/ors/v2/health`\n- `http://localhost:8080/ors/v2/status`\n\nYou can find more information in the endpoint documentation pages linked above.\n\nOn the [API Reference](https://giscience.github.io/openrouteservice/api-reference/) there is also a description\nhow you can use the Swagger-UI and the API Playground for local instances of openrouteservice.\n\n\n## Changelog/latest changes\n\n[Openrouteservice CHANGELOG](https://github.com/GIScience/openrouteservice/blob/main/CHANGELOG.md)\n\n\n## Contribute\n\nWe appreciate any kind of contribution - bug reports, new feature suggestion or improving our translations are greatly appreciated. Feel free to create an [issue](https://github.com/GIScience/openrouteservice/issues) and label it accordingly. If your issue regards the openrouteservice web-app please use the [corresponding repository](https://github.com/GIScience/ors-map-client/issues).\n\nIf you want to contribute your improvements, please follow the steps outlined in [our CONTRIBUTION guidelines](./CONTRIBUTE.md)\n\nThe [sourcespy dashboard](https://sourcespy.com/github/giscienceopenrouteservice/) provides a high level overview of the repository including technology summary, module dependencies and other components of the system.\n\n\n## Questions\n\nFor questions please use our [community forum](https://ask.openrouteservice.org).\n\n\n## Translations\n\nIf you notice anything wrong with translations, or you want to add a new language to the openrouteservice instructions, we have some instructions in our [backend documentation](https://GIScience.github.io/openrouteservice/contributing/contributing-translations) about how you can submit an update. You can also look over at our [maps client GitHub](https://github.com/GIScience/ors-map-client/#add-language) if you want to contribute the language to there as well (adding or editing the language in the openrouteservice GitHub repo only affects the instructions - any new language also needs adding to the client).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiscience%2Fopenrouteservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiscience%2Fopenrouteservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiscience%2Fopenrouteservice/lists"}