Aller au contenu
Documentation développeursRéférence de l'APIVéhicules

Créer un véhicule

Enregistre un véhicule dans la flotte de votre organisation (il apparaît aussi dans l'application).

POSThttps://runner.cargoduo.com/v1/vehicles

Mêmes champs et règles d'accès qu'un véhicule de /v1/pack, contrôlé selon les limites de dimensions et de charge utile que l'application applique à son type. Gratuit : aucun crédit n'est débité.

Authentification

Clé API Bearer avec l'autorisationresources:writeEn savoir plus

Paramètres du corps

application/json
NomTypeObligatoireDescription
typestringobligatoire
string
Oui

Type de véhicule. Seuls les types listés dans GET /v1/limits (allowed_vehicle_types) sont acceptés.

trucktrailerflatbedcontainerpalletaircraftship
namestringobligatoire
string
Oui

Nom affiché.

≤ 255 chars
lengthnumber · cmobligatoire
number · cm
Oui

Longueur intérieure de l'espace de chargement, selon x (de la paroi avant vers la porte).

widthnumber · cmobligatoire
number · cm
Oui

Largeur intérieure de l'espace de chargement, selon z.

heightnumber · cmobligatoire
number · cm
Oui

Hauteur intérieure de l'espace de chargement, selon y.

max_weightnumber · kgobligatoire
number · kg
Oui

Charge utile maximale.

floor_load_capacitynumber · kg/m²
number · kg/m²
Non

Capacité de charge du plancher : 0 ou plus (0 = sans limite).

aux_deckboolean
boolean
Non

Le véhicule a un second plancher (double plancher).

Par défaut false
aux_deck_heightnumber · cm
number · cm
Non

Hauteur du second plancher au-dessus du plancher. Obligatoire lorsque aux_deck vaut true.

aux_deck_max_weightnumber · kg
number · kg
Non

Limite de charge du second plancher. Obligatoire lorsque aux_deck vaut true.

blocked_areasRect[]
Rect[]
Non

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.

≤ 32 items
axle_positionsAccès requisnumber[] · cm
number[] · cm
Non

Positions des essieux (points d'appui) mesurées depuis l'avant de l'espace de chargement ; négatif = en avant de celui-ci. Même nombre d'éléments que axle_max_loads. Chacune entre −300 (un essieu situé en avant de l'espace de chargement, par ex. l'essieu avant d'un porteur, sous la cabine) et la longueur du véhicule.

≤ 10 items
axle_max_loadsAccès requisnumber[] · kg
number[] · kg
Non

Charge maximale par essieu, dans l'ordre du champ axle_positions. Chaque valeur doit être supérieure à 0 et au plus égale à 100000.

≤ 10 items
cog_range_xAccès requisnumber · cm
number · cm
Non

Écart admis du centre de gravité par rapport au milieu de la longueur : de 0 à length / 2.

cog_range_yAccès requisnumber · cm
number · cm
Non

Écart admis du centre de gravité par rapport au milieu de la largeur : de 0 à width / 2.

tractor_weightAccès requisnumber · kg
number · kg
Non

Modèle d'essieux de semi-remorque : masse du tracteur.

empty_trailer_weightAccès requisnumber · kg
number · kg
Non

Modèle d'essieux de semi-remorque : masse à vide de la remorque.

front_axle_to_middle_axleAccès requisnumber · cm
number · cm
Non

Modèle d'essieux de semi-remorque : de l'essieu avant du tracteur à l'essieu moteur (central).

front_axle_to_tractor_cogAccès requisnumber · cm
number · cm
Non

Modèle d'essieux de semi-remorque : de l'essieu avant au centre de gravité du tracteur.

front_axle_to_kingpinAccès requisnumber · cm
number · cm
Non

Modèle d'essieux de semi-remorque : de l'essieu avant au pivot d'attelage (sellette).

kingpin_to_rear_axleAccès requisnumber · cm
number · cm
Non

Modè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 · cm
number · cm
Non

Modè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 · cm
number · cm
Non

Modèle d'essieux de semi-remorque : de l'avant de la remorque au pivot d'attelage.

max_middle_axle_weightAccès requisnumber · kg
number · kg
Non

Modèle d'essieux de semi-remorque : limite légale de l'essieu moteur (central).

max_rear_axle_weightAccès requisnumber · kg
number · kg
Non

Modèle d'essieux de semi-remorque : limite légale du groupe d'essieux arrière.

Exemple de requête

curl -X POST "https://runner.cargoduo.com/v1/vehicles" \
  -H "Authorization: Bearer $CARGODUO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Mega trailer 13.6 m",
    "type": "trailer",
    "length": 1360,
    "width": 248,
    "height": 300,
    "max_weight": 24000
  }'

Exemple de réponse

201 · SavedVehicle
{
  "id": "veh_118",
  "object": "vehicle",
  "kind": "custom",
  "name": "Mega trailer 13.6 m",
  "type": "trailer",
  "length": 1360,
  "width": 248,
  "height": 300,
  "max_weight": 24000,
  "floor_load_capacity": null,
  "axle_positions": [],
  "axle_max_loads": [],
  "cog_range_x": null,
  "cog_range_y": null,
  "aux_deck": false,
  "aux_deck_height": null,
  "aux_deck_max_weight": null,
  "tractor_weight": null,
  "empty_trailer_weight": null,
  "front_axle_to_middle_axle": null,
  "front_axle_to_tractor_cog": null,
  "front_axle_to_kingpin": null,
  "kingpin_to_rear_axle": null,
  "trailer_cog_to_rear_axle": null,
  "trailer_start_to_kingpin": null,
  "max_middle_axle_weight": null,
  "max_rear_axle_weight": null,
  "blocked_areas": [],
  "created_by": {
    "id": "usr_7",
    "name": "Elif Kaya"
  },
  "updated_by": {
    "id": "usr_7",
    "name": "Elif Kaya"
  },
  "created_at": "2026-10-02T08:41:17Z"
}

Réponses

  • 201Le nouveau véhicule.
    NomTypeObligatoireDescription
    idstring
    string
    Non

    ID du préréglage, ou veh_… pour vos propres véhicules.

    objectstring
    string
    Non
    vehicle
    kindstring
    string
    Non

    preset = le catalogue prédéfini ; custom = ceux de votre organisation.

    presetcustom
    typestring
    string
    Non

    Type de véhicule. Seuls les types listés dans GET /v1/limits (allowed_vehicle_types) sont acceptés.

    trucktrailerflatbedcontainerpalletaircraftship
    namestring
    string
    Non

    Nom affiché.

    lengthnumber · cm
    number · cm
    Non

    Longueur intérieure de l'espace de chargement, selon x (de la paroi avant vers la porte).

    widthnumber · cm
    number · cm
    Non

    Largeur intérieure de l'espace de chargement, selon z.

    heightnumber · cm
    number · cm
    Non

    Hauteur intérieure de l'espace de chargement, selon y.

    max_weightnumber · kg
    number · kg
    Non

    Charge utile maximale.

    floor_load_capacitynumber | null · kg/m²
    number | null · kg/m²
    Non

    Capacité de charge du plancher : 0 ou plus (0 = sans limite).

    axle_positionsnumber[] · cm
    number[] · cm
    Non

    Positions des essieux (points d'appui) mesurées depuis l'avant de l'espace de chargement ; négatif = en avant de celui-ci. Même nombre d'éléments que axle_max_loads. Chacune entre −300 (un essieu situé en avant de l'espace de chargement, par ex. l'essieu avant d'un porteur, sous la cabine) et la longueur du véhicule.

    axle_max_loadsnumber[] · kg
    number[] · kg
    Non

    Charge maximale par essieu, dans l'ordre du champ axle_positions. Chaque valeur doit être supérieure à 0 et au plus égale à 100000.

    cog_range_xnumber | null · cm
    number | null · cm
    Non

    Écart admis du centre de gravité par rapport au milieu de la longueur : de 0 à length / 2.

    cog_range_ynumber | null · cm
    number | null · cm
    Non

    Écart admis du centre de gravité par rapport au milieu de la largeur : de 0 à width / 2.

    aux_deckboolean
    boolean
    Non

    Le véhicule a un second plancher (double plancher).

    aux_deck_heightnumber | null · cm
    number | null · cm
    Non

    Hauteur du second plancher au-dessus du plancher. Obligatoire lorsque aux_deck vaut true.

    aux_deck_max_weightnumber | null · kg
    number | null · kg
    Non

    Limite de charge du second plancher. Obligatoire lorsque aux_deck vaut true.

    tractor_weightnumber | null · kg
    number | null · kg
    Non

    Modèle d'essieux de semi-remorque : masse du tracteur.

    empty_trailer_weightnumber | null · kg
    number | null · kg
    Non

    Modèle d'essieux de semi-remorque : masse à vide de la remorque.

    front_axle_to_middle_axlenumber | null · cm
    number | null · cm
    Non

    Modèle d'essieux de semi-remorque : de l'essieu avant du tracteur à l'essieu moteur (central).

    front_axle_to_tractor_cognumber | null · cm
    number | null · cm
    Non

    Modèle d'essieux de semi-remorque : de l'essieu avant au centre de gravité du tracteur.

    front_axle_to_kingpinnumber | null · cm
    number | null · cm
    Non

    Modèle d'essieux de semi-remorque : de l'essieu avant au pivot d'attelage (sellette).

    kingpin_to_rear_axlenumber | null · cm
    number | null · cm
    Non

    Modèle d'essieux de semi-remorque : du pivot d'attelage au groupe d'essieux arrière de la remorque.

    trailer_cog_to_rear_axlenumber | null · cm
    number | null · cm
    Non

    Modèle d'essieux de semi-remorque : du centre de gravité de la remorque au groupe d'essieux arrière.

    trailer_start_to_kingpinnumber | null · cm
    number | null · cm
    Non

    Modèle d'essieux de semi-remorque : de l'avant de la remorque au pivot d'attelage.

    max_middle_axle_weightnumber | null · kg
    number | null · kg
    Non

    Modèle d'essieux de semi-remorque : limite légale de l'essieu moteur (central).

    max_rear_axle_weightnumber | null · kg
    number | null · kg
    Non

    Modèle d'essieux de semi-remorque : limite légale du groupe d'essieux arrière.

    blocked_areasRect[]
    Rect[]
    Non

    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.

    created_byUserRef | null
    UserRef | null
    Non

    Le membre qui l'a créé (pour les appels API : le membre qui a créé la clé). null si inconnu.

    updated_byUserRef | null
    UserRef | null
    Non

    Le dernier membre à l'avoir modifié.

    created_atstring | null
    string | null
    Non

    RFC 3339 ; null pour les préréglages.

  • 400Bad requestinvalid_json
    • invalid_jsonLe corps n'est pas un JSON valide ou un champ a un type incorrect.
    NomTypeObligatoireDescription
    errorErrorBodyobligatoire
    ErrorBody
    Oui
    Tous les codes d'erreur
  • 401Unauthorizedunauthorizedkey_revokedkey_expired
    • unauthorizedClé 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.
    NomTypeObligatoireDescription
    errorErrorBodyobligatoire
    ErrorBody
    Oui
    Tous les codes d'erreur
  • 403Forbiddenip_not_allowedsubscription_inactiveaccount_inactivescope_missing
    • 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.
    NomTypeObligatoireDescription
    errorErrorBodyobligatoire
    ErrorBody
    Oui
    Tous les codes d'erreur
  • 413Payload too largepayload_too_large
    • payload_too_largeLe corps de la requête dépasse 10 MB.
    NomTypeObligatoireDescription
    errorErrorBodyobligatoire
    ErrorBody
    Oui
    Tous les codes d'erreur
  • 422Unprocessable entityvalidation_failed
    • validation_failedLa requête est un JSON bien formé, mais décrit une tâche invalide. details[] liste tous les problèmes.
    NomTypeObligatoireDescription
    errorErrorBodyobligatoire
    ErrorBody
    Oui
    Tous les codes d'erreur
  • 429Too many requestsrate_limited
    • rate_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.
    NomTypeObligatoireDescription
    errorErrorBodyobligatoire
    ErrorBody
    Oui
    Tous les codes d'erreur
  • 500Internal server errorinternal_error
    • internal_errorUne erreur s'est produite de notre côté.
    NomTypeObligatoireDescription
    errorErrorBodyobligatoire
    ErrorBody
    Oui
    Tous les codes d'erreur
  • 503Service unavailableapi_disabled
    • api_disabledL'API est temporairement désactivée (maintenance) ou désactivée pour l'organisation.
    NomTypeObligatoireDescription
    errorErrorBodyobligatoire
    ErrorBody
    Oui
    Tous les codes d'erreur