#### Common Workflows
The APIs are designed to be combined. Here are the most common patterns:
**Delivery / field service app** — Geocoding → Route Optimization → Routing
1. [Geocoding](#tag/Geocoding): convert customer addresses to coordinates. Note: the Geocoding response uses `point.lng` while the Optimization request uses `lon` — map the field name accordingly.
2. [Route Optimization](#tag/Route-Optimization) (`POST /vrp`): pass the coordinates as service addresses along with your vehicles. Set `configuration.routing.calc_points` to `true` to get route geometries in the response. The solver assigns stops to vehicles, sequences them, and returns routes with arrival times.
3. [Routing](#tag/Routing) (`POST /route`): optionally, call this per driver route to get turn-by-turn instructions. Pass the stop coordinates from the optimization solution as `points`, set `instructions` to `true`.

If you only need geometries (no turn-by-turn instructions), step 3 is unnecessary — `calc_points` in step 2 already provides them.
**ETA / distance matrix** — Geocoding → Matrix
1. [Geocoding](#tag/Geocoding): convert addresses to coordinates.
2. [Matrix](#tag/Matrices) (`POST /matrix`): compute travel times and distances between all pairs (or specific origin/destination sets). Useful for displaying ETAs to customers or pre-filtering stops before optimization.

**Simple A-to-B navigation** — Routing only
Call [Routing](#tag/Routing) (`POST /route`) with two or more `points`. No optimization or geocoding needed if you already have coordinates.
