Consulter un véhicule
Un préréglage ou l'un de vos véhicules.
Gratuit : aucun crédit n'est débité.
Authentification
Paramètres de chemin
idstringobligatoireID d'un préréglage ou de l'un de vos véhicules (veh_…).
Exemple de requête
curl -X GET "https://runner.cargoduo.com/v1/vehicles/veh_118" \
-H "Authorization: Bearer $CARGODUO_API_KEY"const res = await fetch("https://runner.cargoduo.com/v1/vehicles/veh_118", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
},
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.get(
"https://runner.cargoduo.com/v1/vehicles/veh_118",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}"},
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://runner.cargoduo.com/v1/vehicles/veh_118", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("CARGODUO_API_KEY"))
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 {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://runner.cargoduo.com/v1/vehicles/veh_118"))
.header("Authorization", "Bearer " + System.getenv("CARGODUO_API_KEY"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.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 request = new HttpRequestMessage(HttpMethod.Get, "https://runner.cargoduo.com/v1/vehicles/veh_118");
var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");<?php
$ch = curl_init('https://runner.cargoduo.com/v1/vehicles/veh_118');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CARGODUO_API_KEY'),
],
]);
$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/vehicles/veh_118")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch("CARGODUO_API_KEY")}"
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": "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
200OKLe véhicule.
NomTypeObligatoireDescriptionidstringstringNonID du préréglage, ou veh_… pour vos propres véhicules.
objectstringstringNonvehiclekindstringstringNonpreset= le catalogue prédéfini ;custom= ceux de votre organisation.presetcustomtypestringstringNonType de véhicule. Seuls les types listés dans GET /v1/limits (allowed_vehicle_types) sont acceptés.
trucktrailerflatbedcontainerpalletaircraftshipnamestringstringNonNom affiché.
lengthnumber · cmnumber · cmNonLongueur intérieure de l'espace de chargement, selon x (de la paroi avant vers la porte).
widthnumber · cmnumber · cmNonLargeur intérieure de l'espace de chargement, selon z.
heightnumber · cmnumber · cmNonHauteur intérieure de l'espace de chargement, selon y.
max_weightnumber · kgnumber · kgNonCharge utile maximale.
floor_load_capacitynumber | null · kg/m²number | null · kg/m²NonCapacité de charge du plancher : 0 ou plus (0 = sans limite).
axle_positionsnumber[] · cmnumber[] · cmNonPositions 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[] · kgnumber[] · kgNonCharge 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 · cmnumber | null · cmNonÉcart admis du centre de gravité par rapport au milieu de la longueur : de 0 à length / 2.
cog_range_ynumber | null · cmnumber | null · cmNonÉcart admis du centre de gravité par rapport au milieu de la largeur : de 0 à width / 2.
aux_deckbooleanbooleanNonLe véhicule a un second plancher (double plancher).
aux_deck_heightnumber | null · cmnumber | null · cmNonHauteur du second plancher au-dessus du plancher. Obligatoire lorsque
aux_deckvauttrue.aux_deck_max_weightnumber | null · kgnumber | null · kgNonLimite de charge du second plancher. Obligatoire lorsque
aux_deckvauttrue.tractor_weightnumber | null · kgnumber | null · kgNonModèle d'essieux de semi-remorque : masse du tracteur.
empty_trailer_weightnumber | null · kgnumber | null · kgNonModèle d'essieux de semi-remorque : masse à vide de la remorque.
front_axle_to_middle_axlenumber | null · cmnumber | null · cmNonModèle d'essieux de semi-remorque : de l'essieu avant du tracteur à l'essieu moteur (central).
front_axle_to_tractor_cognumber | null · cmnumber | null · cmNonModèle d'essieux de semi-remorque : de l'essieu avant au centre de gravité du tracteur.
front_axle_to_kingpinnumber | null · cmnumber | null · cmNonModèle d'essieux de semi-remorque : de l'essieu avant au pivot d'attelage (sellette).
kingpin_to_rear_axlenumber | null · cmnumber | null · cmNonModè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 · cmnumber | null · cmNonModèle d'essieux de semi-remorque : du centre de gravité de la remorque au groupe d'essieux arrière.
trailer_start_to_kingpinnumber | null · cmnumber | null · cmNonModèle d'essieux de semi-remorque : de l'avant de la remorque au pivot d'attelage.
max_middle_axle_weightnumber | null · kgnumber | null · kgNonModèle d'essieux de semi-remorque : limite légale de l'essieu moteur (central).
max_rear_axle_weightnumber | null · kgnumber | null · kgNonModèle d'essieux de semi-remorque : limite légale du groupe d'essieux arrière.
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.
xnumber · 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.
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_atstring | nullstring | nullNonRFC 3339 ;
nullpour les préréglages.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
ip_not_allowedsubscription_inactiveaccount_inactivescope_missingip_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
vehicle_not_foundvehicle_not_foundAucun véhicule avec cet ID parmi les préréglages ou les véhicules de 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.
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.