
openrouteservice
Open-source routing and geospatial API for directions and analytics

openrouteservice is an open-source routing platform that exposes a REST API for directions, isochrones, matrix calculations, geocoding and related geospatial services. It consumes OpenStreetMap data and runs a Java-based routing engine (forked from GraphHopper) with multiple client SDKs and web map frontends.
Key Features
- Multi-modal directions API supporting driving, trucking, cycling, walking, hiking and wheelchair profiles with route restrictions and vehicle-dimension options
- Isochrones endpoint to compute time/distance-based reachable areas for accessibility and service-area analysis
- Matrix endpoint for many-to-many travel time and distance calculations optimized for logistics and analysis
- Geocoding built on the Pelias stack, plus Points-of-Interest and elevation enrichment services
- Optimization endpoint for vehicle routing problems (based on VROOM) including constraints and time windows
- Snap/match endpoint to snap coordinates to the road network and map-match traces
- Interactive API playground and client SDKs (Python, JavaScript, R) and ready-to-use web map clients for demos and integration
- Dockerized deployment, Maven build, and configurable profiles; supports running as a JAR or via container orchestration
Use Cases
- Logistics and fleet planning: compute optimized delivery routes, distance/time matrices and vehicle routing with constraints
- Urban planning and accessibility: generate isochrones and reachability analyses for healthcare, transit and walkability studies
- Disaster response and humanitarian mapping: fast rerouting and map-based tools for responders in changing environments
Limitations and Considerations
- Building routing graphs from large OSM extracts requires substantial memory and compute; very large planet/region datasets can need tens to hundreds of GB of RAM during preprocessing
- Some operational endpoints (health/status) and certain export capabilities are available only when running a self-hosted instance rather than the public hosted API
- The routing backend uses a custom graph format (derived from GraphHopper); the graph is not a direct PostGIS/SQL store and is not intended as a general-purpose spatial database
openrouteservice is a comprehensive, open-source option for integrating routing, reachability and routing-optimization capabilities into applications. It is suitable for research, production deployments and community-driven mapping projects, with ready SDKs and containerized deployment options.
Categories:
Tags:
Tech Stack:
Similar Services

Hoppscotch Community Edition
Open-source API client for REST, GraphQL, WebSocket and more
Hoppscotch Community Edition is an open-source API development and testing tool for REST, GraphQL, WebSocket, SSE, MQTT, and Socket.IO with collections and environments.

Kong Gateway
Cloud-native API and LLM gateway with extensible plugins
Kong Gateway is a high-performance, cloud-native API gateway for routing, securing, and observing API traffic, with an extensible plugin system and Kubernetes support.

Apprise
Unified notifications library for 120+ services via a single API.
A Python-based notification library and CLI that routes messages to 120+ services via URL-based configurations, enabling self-hosted cross-platform alerts.

Maxun
Open source no-code web scraping and data extraction robots
Maxun is an open source no-code platform to build web scraping robots that extract structured data and expose websites as APIs, markdown, or automated pipelines.


LibreTranslate
Self-hosted machine translation API powered by open-source models
LibreTranslate is a free, open-source machine translation API you can run on your own infrastructure, with offline-capable translations and a simple HTTP API.
FlareSolverr
API proxy that solves Cloudflare challenges using a headless browser
FlareSolverr is a proxy server with a REST API that uses a headless Chrome session to solve Cloudflare/DDoS-GUARD challenges and return HTML and cookies.
Spring Boot
Docker
npm
Java
Node.js