Route optimisation API
A route optimisation API built for real fleet constraints.
POST your vehicles, drivers, jobs and constraints as JSON. GoLoop returns an optimised, driver-ready manifest — per-vehicle stop sequences, arrival and departure windows, scheduled breaks and road-accurate travel times. One REST endpoint, no SDK, no proprietary data model to adopt.
- Transport
- REST over HTTPS, JSON in / JSON out
- Engine
- Google OR-Tools, production-grade solver
- First solutions
- Under 30 seconds for typical fleets
Reference
One endpoint: POST /solve
Everything about the day travels in a single request body. Constraints are explicit, so a plan you receive is a plan a driver can actually run.
POST /solve HTTP/1.1
Host: api.goloop.building8.io
Authorization: Bearer <api_key>
Content-Type: application/json
{
"options": { "time_budget_s": 30, "avoid_tolls": true },
"vehicles": [
{
"id": "VAN-114",
"start": "DEPOT-SYDNEY",
"end": "DEPOT-SYDNEY",
"shift": ["07:00", "16:30"],
"containers": [{ "type": "refrigerated", "capacity_kg": 900 }],
"equipment": ["tail_lift"],
"breaks": [{ "earliest": "11:30", "latest": "13:30", "minutes": 30 }]
}
],
"jobs": [
{
"id": "CONS-8842",
"location": [-33.8688, 151.2093],
"weight_kg": 240,
"service_minutes": 15,
"requires": ["refrigerated", "tail_lift"],
"window": ["09:00", "11:00"],
"priority": "mandatory"
},
{
"id": "CONS-8843",
"location": [-33.9173, 151.0326],
"weight_kg": 120,
"window": ["10:30", "14:00"],
"priority": "optional"
}
]
}200 OK
{
"status": "feasible",
"solve_ms": 8410,
"totals": { "distance_km": 84.3, "drive_minutes": 121 },
"routes": [
{
"vehicle": "VAN-114",
"distance_km": 84.3,
"stops": [
{ "job": "CONS-8842", "arrive": "09:12", "depart": "09:27" },
{ "type": "break", "arrive": "11:45", "depart": "12:15" },
{ "job": "CONS-8843", "arrive": "12:52", "depart": "13:04" }
]
}
],
"unassigned": []
}Constraint model
The constraints most routing APIs leave out.
Capacity constraints
Weight, volume and count capacities per container, so a vehicle is never assigned more than it can legally carry.
Time windows
Hard windows that must be honoured and soft windows that carry a penalty, plus per-job service durations.
Compatibility rules
requires tags match jobs to refrigerated containers, tail-lifts, ADR certification or a named qualified driver.
Site-level rules
Per-location restrictions — vehicle length limits, access windows, or docks that only admit specific drivers.
Pickup and delivery pairing
Linked collection and drop-off pairs kept on the same vehicle in the correct order.
Shifts, breaks and depots
Driver shift bounds, legally required breaks and arbitrary start/end locations, including non-depot finishes.
Integration
Four steps from first key to live manifests.
Authenticate
One bearer token per environment. Sandbox keys solve against the same engine with reduced time budgets.
POST /solve
Send vehicles, jobs, constraints and a time budget. Requests are idempotent on your own request_id.
Consume the manifest
Route sequences, arrival and departure windows, breaks and road-accurate travel times — ready for a driver app.
Re-solve mid-day
POST the day's live state with new jobs to warm-start a re-plan without disturbing completed work.
Questions
Route optimisation API, answered plainly.
What is a route optimisation API?
A route optimisation API takes your vehicles, drivers, jobs and constraints as structured data and returns the sequence each vehicle should drive, with arrival and departure times. Instead of a planner arranging stops by hand, your system sends a request and receives a driver-ready manifest.
How fast are solves?
GoLoop returns first feasible solutions in under 30 seconds for typical fleets, and continues improving the plan within the time budget you specify. Solve time is reported on every response as solve_ms.
What optimisation engine does GoLoop use?
Solves run on Google OR-Tools, the same constraint-programming and vehicle-routing technology Google uses in production, wrapped in a single JSON endpoint with logistics-specific constraints layered on top.
Do I need an SDK?
No. GoLoop is REST over HTTPS with JSON in and JSON out, so any language or platform that can make an HTTP request can integrate — including existing TMS, WMS and order-management systems.
Can the API re-plan a day that is already under way?
Yes. Send the completed and in-progress stops along with the new jobs and GoLoop warm-starts from your drivers' live positions. Completed stops stay locked and the new manifest picks up from where each driver actually is.
Ready to send us a day?
Early-access partners get sandbox keys, the full request schema and help modelling the constraints specific to their operation.