3D Bin Packing API
/api/v1/packOptimisez l'emballage de vos produits dans des cartons. L'algorithme calcule les positions 3D optimales pour maximiser l'utilisation de l'espace.
Corps de la requête
POST /api/v1/pack
Content-Type: application/json
Authorization: Bearer sk_votre_cle_api
{
"bins": [
{
"id": "Carton_60x40x30",
"w": 60,
"h": 40,
"d": 30,
"max_wg": 25,
"q": 10 // optionnel
}
],
"items": [
{
"id": "PROD001",
"q": 5,
"w": 15,
"h": 10,
"d": 8,
"wg": 0.5,
"vr": 1 // optionnel (rotation autorisée)
}
],
"params": {
"images_complete": 1, // optionnel
"images_sbs": 0 // optionnel
}
}Paramètre binsRequis
Liste des cartons disponibles pour l'emballage.
| Champ | Type | Requis | Description |
|---|---|---|---|
id | string | Identifiant unique du carton | |
w | number | Largeur (cm) | |
h | number | Hauteur (cm) | |
d | number | Profondeur (cm) | |
max_wg | number | Poids maximum supporté (kg) | |
q | number | Optionnel | Quantité disponible de ce type de carton |
Paramètre itemsRequis
Liste des produits à emballer.
| Champ | Type | Requis | Description |
|---|---|---|---|
id | string | Identifiant unique du produit | |
q | number | Quantité à emballer | |
w | number | Largeur (cm) | |
h | number | Hauteur (cm) | |
d | number | Profondeur (cm) | |
wg | number | Poids unitaire (kg) | |
vr | 0 | 1 | Optionnel | Rotation autorisée (1 = oui, 0 = non). Défaut: 1 |
Paramètre paramsOptionnel
Options supplémentaires pour personnaliser le résultat.
| Champ | Type | Description |
|---|---|---|
images_complete | 0 | 1 | Générer des images 3D complètes du résultat |
images_sbs | 0 | 1 | Générer des images step-by-step du processus |
Réponse
{
"success": true,
"response": {
"bins_packed": 2,
"items_packed": 15,
"total_items": 15,
"utilization": 0.87,
"boxes": [
{
"bin_id": "Carton_60x40x30",
"items": [
{
"id": "PROD001",
"position": { "x": 0, "y": 0, "z": 0 },
"dimensions": { "w": 15, "h": 10, "d": 8 },
"rotation": "WHD"
}
],
"weight_utilization": 0.72,
"volume_utilization": 0.85,
"image_url": "https://..." // si images_complete=1
}
],
"unpacked_items": []
}
}{
"error": "Paramètres invalides",
"details": ["bins.0.w: Expected number, received string"]
}{ "error": "Clé API invalide ou manquante" }{
"error": "Quota mensuel dépassé",
"limit": 100,
"used": 100,
"reset_at": "2026-03-01T00:00:00Z"
}{ "error": "Erreur lors de l'appel au service de packing" }Exemple complet
Vous avez 2 types de cartons disponibles et 3 types de produits à emballer. L'API va calculer la répartition optimale.
Requête
{
"bins": [
{ "id": "petit", "w": 30, "h": 20, "d": 15, "max_wg": 10 },
{ "id": "grand", "w": 60, "h": 40, "d": 30, "max_wg": 25 }
],
"items": [
{ "id": "tasse", "q": 10, "w": 8, "h": 10, "d": 8, "wg": 0.3 },
{ "id": "assiette", "q": 6, "w": 25, "h": 3, "d": 25, "wg": 0.5 },
{ "id": "verre", "q": 4, "w": 7, "h": 15, "d": 7, "wg": 0.2 }
],
"params": {
"images_complete": 1
}
}Résultat attendu
- • L'algorithme utilisera probablement 1 grand carton et 1-2 petits
- • Chaque item aura sa position 3D (x, y, z) et sa rotation
- • Le taux d'utilisation sera maximisé (>80%)
- • Une image 3D du résultat sera générée
Conseils d'utilisation
Unités cohérentes
Utilisez toujours les mêmes unités (cm pour les dimensions, kg pour le poids) entre les cartons et les items.
Rotation des items
Par défaut, les items peuvent être tournés. Utilisez vr: 0 pour les produits fragiles qui ne doivent pas être retournés.
Quantité de cartons
Si vous avez un nombre limité de cartons d'un type, spécifiez q. Sinon, l'algorithme considère une quantité illimitée.
Performance
Les images ralentissent la réponse. Désactivez-les en production si vous n'en avez pas besoin.
Prêt à essayer ?
Créez votre compte et testez l'API avec 100 requêtes gratuites.