Inicio › API de optimización de rutas

Para desarrolladores

API de optimización de rutas

Una API REST que resuelve ruteo de vehículos con capacidad y acomodo tridimensional de carga. Usted envía la matriz de distancias y la lista de paquetes; recibe la asignación de vehículos, la secuencia de visitas y la posición de cada caja.

Modelo de integración

La API es asíncrona: se encola el trabajo y se consulta el resultado. Así una corrida puede usar decenas de segundos de cómputo sin mantener una conexión abierta ni arriesgar tiempos de espera en su lado.

  1. POST /v1/solve → responde 202 con el identificador del trabajo.
  2. GET /v1/jobs/{id} → devuelve queued, running, done (con el resultado) o error.
  3. GET /v1/me → plan, funciones habilitadas y límites de su llave.

Autenticación

Encabezado X-API-Key con la llave que se genera en su portal. Las llaves se almacenan cifradas con hash y pueden revocarse en cualquier momento. Todo el tráfico va sobre TLS.

Ejemplo: encolar una optimización

POST https://api.lattimex.com/v1/solve
X-API-Key: ltx_···
Content-Type: application/json

{
  "matrix_m":    [[0, 1240.5, 3180.2], [1190.0, 0, 2210.7], [3020.4, 2260.1, 0]],
  "vehicle":     { "cargo_cm": [365, 139, 165], "max_weight_kg": 1900 },
  "packages":    [
    { "id": "PKT-1040", "node": 1, "dims_cm": [60,40,30], "weight_kg": 10.4 },
    { "id": "PKT-1047", "node": 2, "dims_cm": [45,35,25], "weight_kg": 6.2, "fragile": true }
  ],
  "constraints": { "support": true, "fragility": true, "lifo": true },
  "budget_sec":  30
}

En Python

import requests, time

H = {"X-API-Key": "ltx_···"}
job = requests.post("https://api.lattimex.com/v1/solve", json=payload, headers=H).json()

while True:
    r = requests.get(f"https://api.lattimex.com/v1/jobs/{job['id']}", headers=H).json()
    if r["status"] in ("done", "error"): break
    time.sleep(2)

for ruta in r["result"]["routes"]:
    print(ruta["sequence"], ruta["distance_m"], ruta["utilization"])

Respuesta

{
  "status": "done",
  "runtime_sec": 5.11,
  "result": {
    "feasible": true,
    "vehicles": 4,
    "total_distance_m": 519544,
    "routes": [{
      "sequence":    [0, 7, 3, 12, 0],   // orden de visita
      "distance_m":  138420,
      "packages":    ["PKT-1040", "PKT-1047"],
      "placements":  [{ "id":"PKT-1040", "x":0, "y":0, "z":0 }],
      "utilization": 0.6256
    }],
    "engine": { "version": "lattimex-engine-1.0.0" }
  }
}

Contrato de entrada

CampoDescripción
matrix_mMatriz cuadrada n×n de distancias en metros. El índice 0 es el depósito. Puede provenir de su propio motor de rutas, de OSRM o de la clausura métrica local de LATTIMEX.
vehicleDimensiones interiores en centímetros y carga máxima en kilogramos.
packagesIdentificador, nodo de entrega, dimensiones, peso y bandera de frágil.
constraintssupport (soporte mínimo bajo cada caja), fragility (nada pesado sobre frágiles) y lifo (descarga sin remover otros bultos).
budget_secSegundos de cómputo solicitados; se recorta al máximo de su plan.

Límites por plan

PlanNodosCómputoSolicitudes/hora
Demo30160 s3 cada 24 horas
Básico20015 s60
Pro60060 s300
Empresarial600120 s600

Privacidad del lado del cliente

La API nunca recibe direcciones, nombres ni teléfonos: solo números. Si usted calcula la matriz de distancias en su propia infraestructura, la geografía de su operación no sale de su red en ningún momento.

Pruebe LATTIMEX con sus propias entregas

Cuenta demo gratuita: planifique rutas reales sobre el mapa de su ciudad.