Kubova REST API
任意の言語からコンテナ積載を実行。Bearer認証、JSON入力/JSON出力。
認証
すべてのリクエストの Authorization ヘッダーにAPIキーを含める必要があります。
Authorization: Bearer kbv_abc123...Proプランにアップグレード後、ダッシュボードからキーを生成してください。
APIキーの管理 →キーの検証
積載リクエストを送信する前に、/me エンドポイントを使用してキーが有効であることを確認します。
curl https://kubova.com/api/v1/me \
-H "Authorization: Bearer kbv_..."コンテナ積載
貨物情報とコンテナ情報を指定して /api/v1/pack にPOSTします。シミュレーターは、コンテナごとの配置、使用容量、および配置できなかった貨物を返します。
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
}
}'成功時には ok=true と共に result.containers および result.unplaced を返します。エラー時には ok=false とエラー文字列を返します。
PDFレポートの生成
/pack と同じボディ形式で /api/v1/report にPOSTします。format=json は、コンテナごとのbase64形式のPDFと3D PNGを返します。format=binary は、直接保存可能な結合された単一のPDFをストリームとして返します。
# 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キーに report スコープが必要です。新規作成されたキーには、デフォルトで pack と report の両方のスコープが付与されています。
レート制限とタイムアウト
- デフォルトでキーあたり毎分60リクエスト(リクエストに応じてキーごとに設定可能)。
- 積載リクエストは290秒後にタイムアウトします。これはこれまでに確認されたすべてのワークロードをカバーしています。実際のユーザーがこの制限に達し始めた時点で、非同期ジョブパターンを導入予定です。
- 各キーにはスコープ(pack、report)が設定されています。/pack エンドポイントには pack スコープが必要です。
- APIアクセスはProプラン以上でご利用いただけます。
エラーコード
| エラー | HTTP | 意味 |
|---|---|---|
| missing_bearer_token | 401 | Authorization ヘッダーが送信されていません。 |
| invalid_token | 401 | トークンが有効なキーと一致しません。 |
| token_revoked | 401 | キーはダッシュボードから無効化されています。 |
| token_expired | 401 | キーの有効期限が切れています。 |
| scope_missing:pack | 403 | キーに必要なスコープが付与されていません。 |
| rate_limit_exceeded | 429 | 直近1分間に60回を超えるリクエストが送信されました。 |
| upstream_unreachable | 502 | 積載サービスに接続できませんでした。時間をおいて再試行してください。 |