Kubova.
Se connecterCommencer
Accueil

API REST Kubova

Chargez des conteneurs depuis n'importe quel langage. Authentification Bearer, JSON en entrée / JSON en sortie.

Vous cherchez la configuration MCP ? Lisez le guide MCP

Authentification

Chaque requête nécessite une clé API dans l'en-tête Authorization :

Authorization: Bearer kbv_abc123...

Générez des clés depuis le tableau de bord une fois que vous êtes sur l'offre Pro.

Gérer les clés API

Vérifier une clé

Utilisez le point de terminaison /me pour confirmer que votre clé est valide avant d'envoyer des requêtes de chargement :

curl https://kubova.com/api/v1/me \
  -H "Authorization: Bearer kbv_..."

Charger des conteneurs

Envoyez une requête POST à /api/v1/pack avec les cargaisons et un conteneur. L'optimiseur renvoie les placements par conteneur, le volume utilisé et les pièces non placées.

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 cas de succès, renvoie ok=true avec result.containers et result.unplaced. En cas d'erreur, renvoie ok=false avec une chaîne d'erreur.

Générer un rapport PDF

Envoyez une requête POST à /api/v1/report avec la même structure de corps que /pack. format=json renvoie le PDF en base64 + un PNG 3D par conteneur ; format=binary diffuse un seul PDF combiné que vous pouvez enregistrer directement.

# 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

Nécessite la portée report sur la clé. Les nouvelles clés sont fournies avec les portées pack et report.

Limites de taux et délais d'expiration

  • Par défaut 60 requêtes par minute par clé (configurable par clé sur demande).
  • Les requêtes de chargement expirent après 290 secondes. Cela couvre toutes les charges de travail observées jusqu'à présent ; le modèle de tâche asynchrone sera mis en place lorsque les utilisateurs réels commenceront à atteindre cette limite.
  • Chaque clé a un ensemble de portées (pack, report). Le point de terminaison /pack nécessite la portée pack.
  • L'accès à l'API est disponible à partir de l'offre Pro.

Codes d'erreur

ErreurHTTPSignification
missing_bearer_token401Aucun en-tête Authorization n'a été envoyé.
invalid_token401Le jeton ne correspond à aucune clé active.
token_revoked401La clé a été révoquée depuis le tableau de bord.
token_expired401La clé a dépassé sa date d'expiration.
scope_missing:pack403La clé ne possède pas la portée requise.
rate_limit_exceeded429Plus de 60 requêtes au cours de la dernière minute.
upstream_unreachable502Le service de chargement était injoignable. Réessayez après un certain délai.