# Route Optimization The Route Optimization API can be used to solve [traveling salesman](https://en.wikipedia.org/wiki/Travelling_salesman_problem) or [vehicle routing problems](https://en.wikipedia.org/wiki/Vehicle_routing_problem). You can use our [API Explorer](https://explorer.graphhopper.com/?endpoint=vrp) to explore Route Optimization. If you have successfully solved the first problem, we recommend this tutorial - [Getting Started with the Optimization API](https://www.graphhopper.com/blog/2019/05/17/getting-started-with-the-optimization-api-traveling-salesman-problem/). It shows and describes the essential elements to model your vehicle routing problem. Further reading: - [How to solve a traveling salesman problem with a week-planning horizon?](https://www.graphhopper.com/blog/2020/07/15/how-to-solve-a-traveling-salesman-problem-with-a-week-planning-horizon-and-driver-shifts/) - [How to schedule technicians with skills and multiple dependencies between tasks?](https://www.graphhopper.com/blog/2016/06/03/how-to-route-technicians-with-skills-and-multiple-dependencies-between-tasks/) - [What is the difference between the min. of completion time and min. transport time?](https://www.graphhopper.com/blog/2016/06/20/what-is-the-difference-between-the-minimization-of-completion-time-and-minimizing-transport-time/) - [How to model multiple delivery routes with a single vehicle?](https://www.graphhopper.com/blog/2016/07/21/how-to-model-multiple-delivery-routes-with-a-single-vehicle/) ## Solve a route optimization problem - [POST /vrp](https://docs.graphhopper.com/openapi/route-optimization/solvevrp.md): Start by reading the introduction to the Route Optimization API. To solve a new vehicle routing problem, make a HTTP POST to this URL It returns the solution to this problem in the JSON response. Please note that this URL is very well suited to solve minor problems. Larger vehicle routing problems, which take longer than 10 seconds to solve, cannot be solved. To solve them, please use the batch mode URL instead. ## Submit a route optimization job - [POST /vrp/optimize](https://docs.graphhopper.com/openapi/route-optimization/asyncvrp.md): To solve a vehicle routing problem, perform the following steps: 1.) Make a HTTP POST to this URL It returns a job id (). 2.) Take the job id and fetch the solution for the vehicle routing problem from this URL: We recommend to query the solution every 500ms until it returns 'status=finished'. : Since the workflow is a bit more cumbersome and since you lose some time in fetching the solution, you should always prefer the synchronous endpoint. You should use the batch mode only for long running problems. ## Retrieve solution of a route optimization job - [GET /vrp/solution/{jobId}](https://docs.graphhopper.com/openapi/route-optimization/getsolution.md): Take the job id and fetch the solution for the vehicle routing problem from this URL: You get the job id by sending a vehicle routing problem to the batch mode URL.