Skip to main content
POST
https://api.rotavision.com
/
gati
/
routes
/
optimize
result = client.gati.optimize_routes(
    vehicles=[
        {
            "id": "v1",
            "capacity": 50,
            "start_location": {"lat": 12.9716, "lng": 77.5946},
            "shift_start": "08:00",
            "shift_end": "18:00"
        },
        {
            "id": "v2",
            "capacity": 50,
            "start_location": {"lat": 12.9716, "lng": 77.5946},
            "shift_start": "08:00",
            "shift_end": "18:00"
        }
    ],
    orders=[
        {
            "id": "order_1",
            "location": {"lat": 12.9352, "lng": 77.6245},
            "demand": 5,
            "time_window": ["09:00", "12:00"],
            "service_time_min": 10
        },
        {
            "id": "order_2",
            "location": {"lat": 12.9698, "lng": 77.7500},
            "demand": 8,
            "time_window": ["10:00", "14:00"]
        }
    ],
    options={
        "optimize_for": "time",
        "traffic": True
    }
)
{
  "id": "opt_abc123",
  "status": "completed",
  "summary": {
    "total_vehicles_used": 2,
    "total_orders": 15,
    "orders_assigned": 15,
    "orders_unassigned": 0,
    "total_distance_km": 45.2,
    "total_duration_min": 180,
    "estimated_cost_inr": 450
  },
  "routes": [
    {
      "vehicle_id": "v1",
      "stops": [
        {
          "type": "start",
          "location": {"lat": 12.9716, "lng": 77.5946},
          "arrival": "08:00",
          "departure": "08:00"
        },
        {
          "type": "delivery",
          "order_id": "order_1",
          "location": {"lat": 12.9352, "lng": 77.6245},
          "arrival": "08:35",
          "departure": "08:45",
          "demand": 5
        },
        {
          "type": "delivery",
          "order_id": "order_3",
          "location": {"lat": 12.9256, "lng": 77.6389},
          "arrival": "09:05",
          "departure": "09:15",
          "demand": 12
        },
        {
          "type": "end",
          "location": {"lat": 12.9716, "lng": 77.5946},
          "arrival": "12:30"
        }
      ],
      "distance_km": 22.5,
      "duration_min": 270,
      "load": 35,
      "polyline": "encoded_polyline_string..."
    },
    {
      "vehicle_id": "v2",
      "stops": [...],
      "distance_km": 22.7,
      "duration_min": 255,
      "load": 42
    }
  ],
  "created_at": "2026-02-01T10:30:00Z"
}

Request

vehicles
array
required
Available vehicles.
orders
array
required
Orders/deliveries to fulfill.
options
object
Optimization options.
result = client.gati.optimize_routes(
    vehicles=[
        {
            "id": "v1",
            "capacity": 50,
            "start_location": {"lat": 12.9716, "lng": 77.5946},
            "shift_start": "08:00",
            "shift_end": "18:00"
        },
        {
            "id": "v2",
            "capacity": 50,
            "start_location": {"lat": 12.9716, "lng": 77.5946},
            "shift_start": "08:00",
            "shift_end": "18:00"
        }
    ],
    orders=[
        {
            "id": "order_1",
            "location": {"lat": 12.9352, "lng": 77.6245},
            "demand": 5,
            "time_window": ["09:00", "12:00"],
            "service_time_min": 10
        },
        {
            "id": "order_2",
            "location": {"lat": 12.9698, "lng": 77.7500},
            "demand": 8,
            "time_window": ["10:00", "14:00"]
        }
    ],
    options={
        "optimize_for": "time",
        "traffic": True
    }
)
{
  "id": "opt_abc123",
  "status": "completed",
  "summary": {
    "total_vehicles_used": 2,
    "total_orders": 15,
    "orders_assigned": 15,
    "orders_unassigned": 0,
    "total_distance_km": 45.2,
    "total_duration_min": 180,
    "estimated_cost_inr": 450
  },
  "routes": [
    {
      "vehicle_id": "v1",
      "stops": [
        {
          "type": "start",
          "location": {"lat": 12.9716, "lng": 77.5946},
          "arrival": "08:00",
          "departure": "08:00"
        },
        {
          "type": "delivery",
          "order_id": "order_1",
          "location": {"lat": 12.9352, "lng": 77.6245},
          "arrival": "08:35",
          "departure": "08:45",
          "demand": 5
        },
        {
          "type": "delivery",
          "order_id": "order_3",
          "location": {"lat": 12.9256, "lng": 77.6389},
          "arrival": "09:05",
          "departure": "09:15",
          "demand": 12
        },
        {
          "type": "end",
          "location": {"lat": 12.9716, "lng": 77.5946},
          "arrival": "12:30"
        }
      ],
      "distance_km": 22.5,
      "duration_min": 270,
      "load": 35,
      "polyline": "encoded_polyline_string..."
    },
    {
      "vehicle_id": "v2",
      "stops": [...],
      "distance_km": 22.7,
      "duration_min": 255,
      "load": 42
    }
  ],
  "created_at": "2026-02-01T10:30:00Z"
}