Kubova.
Đăng nhậpBắt đầu
Trang chủ

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.pdf

Cầ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ỗiHTTPÝ nghĩa
missing_bearer_token401Không có header Authorization.
invalid_token401Token không khớp key active nào.
token_revoked401Key đã bị thu hồi.
token_expired401Key đã quá hạn.
scope_missing:pack403Key thiếu scope cần thiết.
rate_limit_exceeded429Hơn 60 request trong phút vừa rồi.
upstream_unreachable502Packing service unreachable. Retry sau backoff.