Mettre à jour un projet
Renomme un projet, modifie ses options ou remplace ses véhicules ou ses articles (avec les groupes).
Remplacer les véhicules ou les articles efface le plan enregistré ; les sessions ouvertes de l'application se rechargent. Gratuit : aucun crédit n'est débité.
Authentification
Paramètres de chemin
idstringobligatoireID du projet (prj_…).
Paramètres du corps
application/jsonnamestringvehiclesProjectVehicle[]Véhicules du projet.
idstringID du véhicule du projet (pv_…). Les résultats des tâches du projet le désignent par vehicle_id. Lecture seule.
vehicle_idstringobligatoireUn ID de véhicule issu de GET /v1/vehicles (préréglage ou veh_…).
namestringNom du véhicule enregistré. Lecture seule.
typestringType du véhicule enregistré. Lecture seule.
trucktrailerflatbedcontainerpalletaircraftshiplengthnumber · cmValeur utilisée pour le calcul ; si elle est envoyée, elle remplace celle du véhicule enregistré.
widthnumber · cmValeur utilisée pour le calcul ; si elle est envoyée, elle remplace celle du véhicule enregistré.
heightnumber · cmValeur utilisée pour le calcul ; si elle est envoyée, elle remplace celle du véhicule enregistré.
max_weightnumber · kgValeur utilisée pour le calcul ; si elle est envoyée, elle remplace celle du véhicule enregistré.
quantityintegerNombre de véhicules identiques disponibles pour cette définition.
11–100aux_deckbooleanLe véhicule a un second plancher (double plancher).
falseaux_deck_heightnumber · cmHauteur du second plancher au-dessus du plancher. Obligatoire lorsque aux_deck vaut true.
aux_deck_max_weightnumber · kgLimite de charge du second plancher. Obligatoire lorsque aux_deck vaut true.
blocked_areasRect[]Zones du plancher sur lesquelles rien ne peut être posé (passages de roue, dégâts, espace réservé). Chacune doit se trouver sur le plancher du véhicule.
xnumber · cmobligatoireDistance entre la paroi avant et le bord le plus proche du rectangle.
znumber · cmobligatoireDistance entre la paroi droite (z = 0 ; la droite vue depuis la porte, en regardant vers l'intérieur) et le bord le plus proche du rectangle.
lengthnumber · cmobligatoireÉtendue selon x.
widthnumber · cmobligatoireÉtendue selon z.
tractor_weightAccès requisnumber · kgModèle d'essieux de semi-remorque : masse du tracteur.
empty_trailer_weightAccès requisnumber · kgModèle d'essieux de semi-remorque : masse à vide de la remorque.
front_axle_to_middle_axleAccès requisnumber · cmModèle d'essieux de semi-remorque : de l'essieu avant du tracteur à l'essieu moteur (central).
front_axle_to_tractor_cogAccès requisnumber · cmModèle d'essieux de semi-remorque : de l'essieu avant au centre de gravité du tracteur.
front_axle_to_kingpinAccès requisnumber · cmModèle d'essieux de semi-remorque : de l'essieu avant au pivot d'attelage (sellette).
kingpin_to_rear_axleAccès requisnumber · cmModèle d'essieux de semi-remorque : du pivot d'attelage au groupe d'essieux arrière de la remorque.
trailer_cog_to_rear_axleAccès requisnumber · cmModèle d'essieux de semi-remorque : du centre de gravité de la remorque au groupe d'essieux arrière.
trailer_start_to_kingpinAccès requisnumber · cmModèle d'essieux de semi-remorque : de l'avant de la remorque au pivot d'attelage.
max_middle_axle_weightAccès requisnumber · kgModèle d'essieux de semi-remorque : limite légale de l'essieu moteur (central).
max_rear_axle_weightAccès requisnumber · kgModèle d'essieux de semi-remorque : limite légale du groupe d'essieux arrière.
itemsItem[]Articles (500 définitions au maximum).
idstringVotre identifiant, unique dans la requête. Les résultats le désignent par item_id. Par défaut : template_id.
template_idstringUn ID de modèle (tpl_…) issu de GET /v1/templates. Fournit tous les champs de l'article ; les champs envoyés en plus les remplacent.
labelstringLibellé affiché (par défaut, l'ID).
shapestringForme de l'article. cylinder et drum utilisent radius + height au lieu de length + width ; pallet et drum restent toujours debout.
boxcylinderpalletbagdrumPar défaut "box"lengthnumber · cmLongueur. Obligatoire sauf si shape vaut cylinder ou drum.
widthnumber · cmLargeur. Obligatoire sauf si shape vaut cylinder ou drum.
heightnumber · cmobligatoireHauteur (le côté vertical lorsque l'article est posé tel que défini).
radiusnumber · cmRayon. Obligatoire lorsque shape vaut cylinder ou drum.
weightnumber · kgobligatoirePoids d'UNE unité.
quantityintegerNombre d'unités identiques.
11–10000stackablebooleanD'autres articles peuvent être placés dessus.
truemax_stack_weightnumber · kgPoids maximal pouvant reposer sur une unité. 0 = illimité.
0rotationstringall = l'une des six orientations ; upright = rotation autour de l'axe vertical uniquement (ce côté vers le haut) ; fixed = jamais tourné.
alluprightfixedPar défaut "all"hazardousbooleanMarchandise dangereuse : placée près du plancher et séparée des autres articles dangereux.
falsepriorityintegerPriorité de chargement. Plus élevée = chargé en premier et conservé quand l'espace manque. 0 = aucune.
0groupstringNom du groupe auquel appartient cet article (voir groups et options.group_routing).
colorstringCouleur d'affichage au format #rrggbb (visionneuse et PDF uniquement).
nesting_heightnumber · cmRecouvrement télescopique lorsque des unités identiques s'empilent (caisses ou seaux emboîtables).
0groupsGroup[]Groupes, avec leur ordre de chargement.
namestringobligatoireNom du groupe, référencé par Item.group.
orderintegerOrdre de chargement (plus petit = chargé en premier). Par défaut : sa position dans la liste.
colorstringCouleur d'affichage au format #rrggbb.
optionsProjectOptionsLes options de chargement enregistrées dans un projet.
packing_modestringauto = lorsque les véhicules listés sont pleins, d'autres exemplaires du véhicule le plus adapté sont ajoutés (dans la limite de véhicules de la tâche) ; fleet_only = seuls les véhicules listés sont utilisés, et ce qui ne rentre pas est signalé comme non placé.
autofleet_onlyPar défaut "auto"group_routingstringnone = les groupes sont informatifs ; wall = chaque groupe dispose de sa propre section du véhicule ; routing = les groupes sont chargés dans l'ordre et un groupe ultérieur peut se placer sur ou à côté d'un groupe précédent, mais jamais en dessous (livraison multi-arrêts) ; no_stack = les groupes sont chargés dans l'ordre côte à côte, jamais les uns sur les autres.
nonewallroutingno_stackPar défaut "none"allow_overweightbooleanIgnore les limites de charge utile des véhicules.
falseExemple de requête
curl -X PATCH "https://runner.cargoduo.com/v1/projects/prj_3051" \
-H "Authorization: Bearer $CARGODUO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"vehicles": [
{
"vehicle_id": "veh_118",
"quantity": 2
}
]
}'const res = await fetch("https://runner.cargoduo.com/v1/projects/prj_3051", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"vehicles": [
{
"vehicle_id": "veh_118",
"quantity": 2
}
]
}),
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.patch(
"https://runner.cargoduo.com/v1/projects/prj_3051",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}"},
json={
"vehicles": [
{
"vehicle_id": "veh_118",
"quantity": 2,
},
],
},
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
body := strings.NewReader(`{
"vehicles": [
{
"vehicle_id": "veh_118",
"quantity": 2
}
]
}`)
req, err := http.NewRequest("PATCH", "https://runner.cargoduo.com/v1/projects/prj_3051", body)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("CARGODUO_API_KEY"))
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(out))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String body = """
{
"vehicles": [
{
"vehicle_id": "veh_118",
"quantity": 2
}
]
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://runner.cargoduo.com/v1/projects/prj_3051"))
.header("Authorization", "Bearer " + System.getenv("CARGODUO_API_KEY"))
.header("Content-Type", "application/json")
.method("PATCH", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
}
}using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("CARGODUO_API_KEY"));
var json = """
{
"vehicles": [
{
"vehicle_id": "veh_118",
"quantity": 2
}
]
}
""";
var request = new HttpRequestMessage(HttpMethod.Patch, "https://runner.cargoduo.com/v1/projects/prj_3051")
{
Content = new StringContent(json, Encoding.UTF8, "application/json"),
};
var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");<?php
$payload = <<<'JSON'
{
"vehicles": [
{
"vehicle_id": "veh_118",
"quantity": 2
}
]
}
JSON;
$ch = curl_init('https://runner.cargoduo.com/v1/projects/prj_3051');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CARGODUO_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), ' ', $response, PHP_EOL;require "net/http"
require "uri"
uri = URI("https://runner.cargoduo.com/v1/projects/prj_3051")
request = Net::HTTP::Patch.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch("CARGODUO_API_KEY")}"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
"vehicles": [
{
"vehicle_id": "veh_118",
"quantity": 2
}
]
}
JSON
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.code, response.bodyExemple de réponse
{
"id": "prj_3051",
"object": "project",
"name": "Order 1042",
"status": "draft",
"item_count": 58,
"vehicle_count": 2,
"app_url": "https://app.cargoduo.com/projects/3051",
"created_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"updated_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"created_at": "2026-10-19T09:10:03Z",
"updated_at": "2026-10-19T09:22:03Z",
"options": {
"packing_mode": "auto",
"group_routing": "none",
"allow_overweight": false
},
"vehicles": [
{
"id": "pv_5121",
"vehicle_id": "veh_118",
"name": "Mega trailer 13.6 m",
"type": "trailer",
"quantity": 2,
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000
}
],
"items": [
{
"id": "item_88410",
"label": "Euro pallet",
"shape": "box",
"length": 120,
"width": 80,
"height": 140,
"weight": 450,
"quantity": 18,
"stackable": false,
"rotation": "all",
"color": "#3b82f6"
},
{
"id": "item_88411",
"label": "Carton A",
"shape": "box",
"length": 60,
"width": 40,
"height": 40,
"weight": 12,
"quantity": 40,
"stackable": true,
"rotation": "upright",
"color": "#f59e0b"
}
],
"groups": [],
"plan": null
}Réponses
200OKLe projet après la modification.
NomTypeObligatoireDescriptionidstringstringNonID du projet (prj_…).
objectstringstringNonprojectnamestringstringNonstatusstringstringNondraft= jamais calculé ou données remplacées ;calculated= possède un plan actuel ;stale= un paramètre a changé depuis la création du plan.draftcalculatedstaleerroritem_countintegerintegerNonUnités d'articles (somme des quantités).
vehicle_countintegerintegerNonVéhicules (somme des quantités).
app_urlstringstringNonOuvre le projet dans l'éditeur 3D de l'application.
created_byUserRef | nullUserRef | nullNonLe membre qui l'a créé (pour les appels API : le membre qui a créé la clé).
nullsi inconnu.idstringstringNonID du membre (usr_…). Filtrez les listes avec ?created_by=.
namestringstringNonupdated_byUserRef | nullUserRef | nullNonLe dernier membre à l'avoir modifié.
idstringstringNonID du membre (usr_…). Filtrez les listes avec ?created_by=.
namestringstringNoncreated_atstringstringNonRFC 3339.
updated_atstringstringNonRFC 3339.
optionsProjectOptionsProjectOptionsNonLes options de chargement enregistrées dans un projet.
packing_modestringstringNonauto= lorsque les véhicules listés sont pleins, d'autres exemplaires du véhicule le plus adapté sont ajoutés (dans la limite de véhicules de la tâche) ;fleet_only= seuls les véhicules listés sont utilisés, et ce qui ne rentre pas est signalé comme non placé.autofleet_onlyPar défaut"auto"group_routingstringstringNonnone= les groupes sont informatifs ;wall= chaque groupe dispose de sa propre section du véhicule ;routing= les groupes sont chargés dans l'ordre et un groupe ultérieur peut se placer sur ou à côté d'un groupe précédent, mais jamais en dessous (livraison multi-arrêts) ;no_stack= les groupes sont chargés dans l'ordre côte à côte, jamais les uns sur les autres.nonewallroutingno_stackPar défaut"none"allow_overweightbooleanbooleanNonIgnore les limites de charge utile des véhicules.
Par défautfalsevehiclesProjectVehicle[]ProjectVehicle[]NonidstringstringNonID du véhicule du projet (pv_…). Les résultats des tâches du projet le désignent par vehicle_id. Lecture seule.
vehicle_idstringobligatoirestringOuiUn ID de véhicule issu de GET /v1/vehicles (préréglage ou veh_…).
namestringstringNonNom du véhicule enregistré. Lecture seule.
typestringstringNonType du véhicule enregistré. Lecture seule.
trucktrailerflatbedcontainerpalletaircraftshiplengthnumber · cmnumber · cmNonValeur utilisée pour le calcul ; si elle est envoyée, elle remplace celle du véhicule enregistré.
widthnumber · cmnumber · cmNonValeur utilisée pour le calcul ; si elle est envoyée, elle remplace celle du véhicule enregistré.
heightnumber · cmnumber · cmNonValeur utilisée pour le calcul ; si elle est envoyée, elle remplace celle du véhicule enregistré.
max_weightnumber · kgnumber · kgNonValeur utilisée pour le calcul ; si elle est envoyée, elle remplace celle du véhicule enregistré.
quantityintegerintegerNonNombre de véhicules identiques disponibles pour cette définition.
Par défaut11–100aux_deckbooleanbooleanNonLe véhicule a un second plancher (double plancher).
Par défautfalseaux_deck_heightnumber · cmnumber · cmNonHauteur du second plancher au-dessus du plancher. Obligatoire lorsque
aux_deckvauttrue.aux_deck_max_weightnumber · kgnumber · kgNonLimite de charge du second plancher. Obligatoire lorsque
aux_deckvauttrue.blocked_areasRect[]Rect[]NonZones du plancher sur lesquelles rien ne peut être posé (passages de roue, dégâts, espace réservé). Chacune doit se trouver sur le plancher du véhicule.
≤ 32 itemsxnumber · cmobligatoirenumber · cmOuiDistance entre la paroi avant et le bord le plus proche du rectangle.
znumber · cmobligatoirenumber · cmOuiDistance entre la paroi droite (z = 0 ; la droite vue depuis la porte, en regardant vers l'intérieur) et le bord le plus proche du rectangle.
lengthnumber · cmobligatoirenumber · cmOuiÉtendue selon x.
widthnumber · cmobligatoirenumber · cmOuiÉtendue selon z.
tractor_weightAccès requisnumber · kgnumber · kgNonModèle d'essieux de semi-remorque : masse du tracteur.
empty_trailer_weightAccès requisnumber · kgnumber · kgNonModèle d'essieux de semi-remorque : masse à vide de la remorque.
front_axle_to_middle_axleAccès requisnumber · cmnumber · cmNonModèle d'essieux de semi-remorque : de l'essieu avant du tracteur à l'essieu moteur (central).
front_axle_to_tractor_cogAccès requisnumber · cmnumber · cmNonModèle d'essieux de semi-remorque : de l'essieu avant au centre de gravité du tracteur.
front_axle_to_kingpinAccès requisnumber · cmnumber · cmNonModèle d'essieux de semi-remorque : de l'essieu avant au pivot d'attelage (sellette).
kingpin_to_rear_axleAccès requisnumber · cmnumber · cmNonModèle d'essieux de semi-remorque : du pivot d'attelage au groupe d'essieux arrière de la remorque.
trailer_cog_to_rear_axleAccès requisnumber · cmnumber · cmNonModèle d'essieux de semi-remorque : du centre de gravité de la remorque au groupe d'essieux arrière.
trailer_start_to_kingpinAccès requisnumber · cmnumber · cmNonModèle d'essieux de semi-remorque : de l'avant de la remorque au pivot d'attelage.
max_middle_axle_weightAccès requisnumber · kgnumber · kgNonModèle d'essieux de semi-remorque : limite légale de l'essieu moteur (central).
max_rear_axle_weightAccès requisnumber · kgnumber · kgNonModèle d'essieux de semi-remorque : limite légale du groupe d'essieux arrière.
itemsItem[]Item[]NonFret au format Item de /v1/pack ; les ID sont de la forme item_….
idstringstringNonVotre identifiant, unique dans la requête. Les résultats le désignent par item_id. Par défaut : template_id.
≤ 128 charstemplate_idstringstringNonUn ID de modèle (tpl_…) issu de GET /v1/templates. Fournit tous les champs de l'article ; les champs envoyés en plus les remplacent.
labelstringstringNonLibellé affiché (par défaut, l'ID).
≤ 255 charsshapestringstringNonForme de l'article.
cylinderetdrumutilisentradius+heightau lieu delength+width;palletetdrumrestent toujours debout.boxcylinderpalletbagdrumPar défaut"box"lengthnumber · cmnumber · cmNonLongueur. Obligatoire sauf si
shapevautcylinderoudrum.widthnumber · cmnumber · cmNonLargeur. Obligatoire sauf si
shapevautcylinderoudrum.heightnumber · cmobligatoirenumber · cmOuiHauteur (le côté vertical lorsque l'article est posé tel que défini).
radiusnumber · cmnumber · cmNonRayon. Obligatoire lorsque
shapevautcylinderoudrum.weightnumber · kgobligatoirenumber · kgOuiPoids d'UNE unité.
quantityintegerintegerNonNombre d'unités identiques.
Par défaut11–10000stackablebooleanbooleanNonD'autres articles peuvent être placés dessus.
Par défauttruemax_stack_weightnumber · kgnumber · kgNonPoids maximal pouvant reposer sur une unité. 0 = illimité.
Par défaut0rotationstringstringNonall= l'une des six orientations ;upright= rotation autour de l'axe vertical uniquement (ce côté vers le haut) ;fixed= jamais tourné.alluprightfixedPar défaut"all"hazardousbooleanbooleanNonMarchandise dangereuse : placée près du plancher et séparée des autres articles dangereux.
Par défautfalsepriorityintegerintegerNonPriorité de chargement. Plus élevée = chargé en premier et conservé quand l'espace manque. 0 = aucune.
Par défaut0groupstringstringNonNom du groupe auquel appartient cet article (voir
groupsetoptions.group_routing).colorstringstringNonCouleur d'affichage au format #rrggbb (visionneuse et PDF uniquement).
nesting_heightnumber · cmnumber · cmNonRecouvrement télescopique lorsque des unités identiques s'empilent (caisses ou seaux emboîtables).
Par défaut0groupsGroup[]Group[]NonnamestringobligatoirestringOuiNom du groupe, référencé par Item.group.
≤ 128 charsorderintegerintegerNonOrdre de chargement (plus petit = chargé en premier). Par défaut : sa position dans la liste.
colorstringstringNonCouleur d'affichage au format #rrggbb.
planProjectPlan | nullProjectPlan | nullNonLe plan actuel ;
nullsi le projet n'en a pas.items_placedintegerintegerNonUnités placées.
items_unplacedintegerintegerNonUnités qui n'ont pas pu être placées.
vehicles_usedintegerintegerNonVéhicules transportant au moins un article.
total_weightnumber · kgnumber · kgNonPoids chargé.
volume_utilizationnumbernumberNonTaux de remplissage moyen (en volume) des véhicules utilisés, 0–1.
job_idstringstringNonLa tâche API à l'origine de ce plan, tant que rien ne l'a modifié depuis. Vide pour un plan créé ou modifié dans l'application.
pdf_urlstringstringNonLe lien PDF de cette tâche (jusqu'à son expires_at). Vide sinon.
400Bad request
invalid_jsoninvalid_jsonLe corps n'est pas un JSON valide ou un champ a un type incorrect.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.
401Unauthorized
unauthorizedkey_revokedkey_expiredunauthorizedClé API absente, mal formée ou inconnue.key_revokedLa clé a été révoquée.key_expiredLa clé a dépassé sa date d'expiration.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.
403Forbidden
plan_limit_reachedip_not_allowedsubscription_inactiveaccount_inactivescope_missingplan_limit_reachedLe forfait de l'organisation n'autorise pas davantage de projets ou d'articles.ip_not_allowedL'adresse IP appelante ne figure pas dans la liste des adresses IP autorisées de la clé.subscription_inactiveL'organisation n'a aucun abonnement actif incluant l'API.account_inactiveL'organisation est suspendue ou n'a aucun propriétaire dont le compte est actif.scope_missingIl manque à la clé une autorisation requise par cet endpoint.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.
404Not found
project_not_foundproject_not_foundAucun projet avec cet ID dans votre organisation.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.
413Payload too large
payload_too_largepayload_too_largeLe corps de la requête dépasse 10 MB.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.
422Unprocessable entity
validation_failedvalidation_failedLa requête est un JSON bien formé, mais décrit une tâche invalide. details[] liste tous les problèmes.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.
429Too many requests
rate_limitedrate_limitedTrop de requêtes dans la minute, l'heure ou la journée en cours (par clé ou par organisation), ou plus de 60 échecs d'authentification par minute depuis votre adresse IP.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.
500Internal server error
internal_errorinternal_errorUne erreur s'est produite de notre côté.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.
503Service unavailable
api_disabledapi_disabledL'API est temporairement désactivée (maintenance) ou désactivée pour l'organisation.
Tous les codes d'erreurNomTypeObligatoireDescriptionerrorErrorBodyobligatoireErrorBodyOuicodestringobligatoirestringOuiCode lisible par machine (snake_case). Basez votre logique sur ce champ, jamais sur
message.messagestringobligatoirestringOuiExplication en anglais.
request_idstringobligatoirestringOuiIdentique à l'en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support.
detailsErrorDetail[]ErrorDetail[]NonProblèmes par champ (
validation_failed).pathstringstringNonChemin JSON du champ en cause, par ex. items[3].length.
codestringstringNonrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNonExplication en anglais.