Kubova REST API
Xếp container từ bất kỳ ngôn ngữ nào. Bearer auth, JSON in / JSON out.
Cần setup MCP? Đọc MCP guide →
Xác thực
Mỗi request cần API key trong header Authorization:
Authorization: Bearer kbv_abc123...Tạo key trong dashboard sau khi lên gói Pro.
Quản lý API key →Verify key
Dùng endpoint /me để confirm key hợp lệ trước khi gọi pack:
curl https://kubova.com/api/v1/me \
-H "Authorization: Bearer kbv_..."Pack container
POST /api/v1/pack với cargos và container. Packer trả về placements per container, used volume, unplaced pieces.
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
}
}'Thành công trả ok=true với result.containers và result.unplaced. Lỗi trả ok=false với error string.
Sinh báo cáo PDF
POST tới /api/v1/report với body shape giống /pack. format=json trả base64 PDF + 3D PNG per container; format=binary stream về 1 PDF gộp lưu được luôn.
# 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.pdfCần scope report trên key. Key mới mặc định có cả pack và report.
Rate limit & timeout
- Mặc định 60 request/phút/key (configurable per-key theo yêu cầu).
- Pack timeout sau 290 giây. Đủ cho mọi workload hiện tại; async job pattern sẽ thêm khi user thật chạm ngưỡng.
- Mỗi key có scope set (pack, report). /pack cần scope pack.
- API access có sẵn ở gói Pro trở lên.
Error code
| Lỗi | HTTP | Ý nghĩa |
|---|---|---|
| missing_bearer_token | 401 | Không có header Authorization. |
| invalid_token | 401 | Token không khớp key active nào. |
| token_revoked | 401 | Key đã bị thu hồi. |
| token_expired | 401 | Key đã quá hạn. |
| scope_missing:pack | 403 | Key thiếu scope cần thiết. |
| rate_limit_exceeded | 429 | Hơn 60 request trong phút vừa rồi. |
| upstream_unreachable | 502 | Packing service unreachable. Retry sau backoff. |