// Developer API

The route optimization API

Authenticate with a key, post your stops as JSON, get the optimized route back. One endpoint, any language.

// Quickstart

Your first optimized route

# 1. authenticate with your key  2. post stops  3. read the route
curl -X POST https://api.optimizemyroutes.com/v1/optimize \
  -H 'Authorization: Bearer omr_live_key' \
  -H 'Content-Type: application/json' \
  -d '{ vehicles: 3, depot: your_warehouse, stops: [ 42 stops ] }'

200 OK  // solved in 0.4s
{
  total_miles : 218.4,
  miles_saved : 41.7,
  routes : [ { vehicle: truck–a, order: [ ... ] } ]
}

// Endpoint

POST /v1/optimize

The request body. Send stops with addresses or coordinates; everything else is optional.

vehicles number or array
How many vehicles, or a list each with an id and capacity.
depot object
Where routes start and end — an address or lat / long. One or many.
stops array, required
The places to visit. Each takes an address or lat / long, plus optional demand and time window.
stops[].window array
Earliest and latest service time, e.g. [ 9, 12 ].
stops[].demand number
Load consumed at the stop, weighed against vehicle capacity.
options object
Round–trip, balance across vehicles, and optimize for distance or time.
🔑

Auth & sandbox

Every request carries a bearer token. Start with a free sandbox key, then switch to a live key when you go to production — same endpoint.

Limits & latency

Small jobs return in well under a second. Large fleets run on dedicated GPU compute; very large jobs can run asynchronously with a callback.

Get your API key

Tell us a little about your routes and we’ll set you up with a sandbox key.

Get API access