Kubova REST API
Empaca contenedores desde cualquier lenguaje. Bearer auth, JSON in / JSON out.
¿Buscas configuración MCP? Lee la guía MCP →
Autenticación
Cada petición necesita una clave API en el header Authorization:
Authorization: Bearer kbv_abc123...Genera claves desde el panel una vez en el plan Pro.
Gestionar claves API →Verificar clave
Usa /me para confirmar que tu clave es válida antes de enviar pack:
curl https://kubova.com/api/v1/me \
-H "Authorization: Bearer kbv_..."Empacar contenedores
POST a /api/v1/pack con cargos y un contenedor. El packer devuelve placements por contenedor, volumen usado, y piezas no colocadas.
curl -X POST https://kubova.com/api/v1/pack \
-H "Authorization: Bearer kbv_..." \
-H "Content-Type: application/json" \
-d '{
"cargos": [{
"id": "sku-a",
"name": "Box A",
"shape": "box",
"lengthCm": 50, "widthCm": 40, "heightCm": 30,
"quantity": 20,
"weightKg": 5,
"color": "#e85d3a",
"includeInLoading": true,
"allowStacking": true,
"allowRotation": true
}],
"container": {
"id": "40hc",
"name": "40HC",
"innerLengthCm": 1203.0,
"innerWidthCm": 235.2,
"innerHeightCm": 269.7,
"doorWidthCm": 233.5,
"doorHeightCm": 258.5,
"maxPayloadKg": 26330
},
"options": {
"loadingDirection": "floor-to-top",
"vnsTimeLimitMs": 5000
}
}'En éxito retorna ok=true con result.containers y result.unplaced. En error retorna ok=false con un error string.
Generar reporte PDF
POST a /api/v1/report con el mismo body que /pack. format=json retorna base64 PDF + 3D PNG por contenedor; format=binary streams un único PDF combinado que puedes guardar.
# JSON response: base64 PDF + 3D PNG per container
curl -X POST https://kubova.com/api/v1/report \
-H "Authorization: Bearer kbv_..." \
-H "Content-Type: application/json" \
-d '{ "cargos": [...], "container": {...}, "format": "json" }'
# Binary response: a single combined PDF
curl -X POST "https://kubova.com/api/v1/report?format=binary" \
-H "Authorization: Bearer kbv_..." \
-H "Content-Type: application/json" \
-d '{ "cargos": [...], "container": {...} }' \
--output kubova-report.pdfRequiere el scope report en la clave. Las claves nuevas vienen con pack y report.
Rate limits y timeouts
- 60 peticiones por minuto por clave por defecto (configurable por clave bajo demanda).
- Pack timeout a los 290 segundos. Cubre toda la carga que hemos visto; el patrón asíncrono llega cuando usuarios reales lleguen al techo.
- Cada clave tiene un set de scopes (pack, report). /pack necesita el scope pack.
- Acceso API disponible en plan Pro y superior.
Códigos de error
| Error | HTTP | Significado |
|---|---|---|
| missing_bearer_token | 401 | No se envió header Authorization. |
| invalid_token | 401 | El token no coincide con ninguna clave activa. |
| token_revoked | 401 | La clave fue revocada desde el panel. |
| token_expired | 401 | La clave pasó su fecha de expiración. |
| scope_missing:pack | 403 | La clave no tiene el scope requerido. |
| rate_limit_exceeded | 429 | Más de 60 peticiones en el último minuto. |
| upstream_unreachable | 502 | El servicio de packing no estaba disponible. Reintenta tras backoff. |