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.

Request
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"
    }
  ]
}
Response
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.

01

Authenticate

One bearer token per environment. Sandbox keys solve against the same engine with reduced time budgets.

02

POST /solve

Send vehicles, jobs, constraints and a time budget. Requests are idempotent on your own request_id.

03

Consume the manifest

Route sequences, arrival and departure windows, breaks and road-accurate travel times — ready for a driver app.

04

Re-solve mid-day

POST the day's live state with new jobs to warm-start a re-plan without disturbing completed work.

Embed optimisation inside an existing TMS or order-management product
Replace a manual planning step in a courier or last-mile operation
Schedule skill-matched field engineers or clinician home visits
Add same-day job insertion to a fleet already on the road

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.