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.
POST /v1/solve→ responde202con el identificador del trabajo.GET /v1/jobs/{id}→ devuelvequeued,running,done(con el resultado) oerror.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
| Campo | Descripción |
|---|---|
| matrix_m | Matriz 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. |
| vehicle | Dimensiones interiores en centímetros y carga máxima en kilogramos. |
| packages | Identificador, nodo de entrega, dimensiones, peso y bandera de frágil. |
| constraints | support (soporte mínimo bajo cada caja), fragility (nada pesado sobre frágiles) y lifo (descarga sin remover otros bultos). |
| budget_sec | Segundos de cómputo solicitados; se recorta al máximo de su plan. |
Límites por plan
| Plan | Nodos | Cómputo | Solicitudes/hora |
|---|---|---|---|
| Demo | 301 | 60 s | 3 cada 24 horas |
| Básico | 200 | 15 s | 60 |
| Pro | 600 | 60 s | 300 |
| Empresarial | 600 | 120 s | 600 |
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.