Job-Ergebnis abrufen
Der Ladeplan eines erfolgreichen Jobs: alle genutzten Fahrzeuge, alle Platzierungen, was nicht gepasst hat, und der PDF-Link.
Authentifizierung
Pfadparameter
idstringerforderlichJob-ID (job_…).
Beispielanfrage
curl -X GET "https://runner.cargoduo.com/v1/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result" \
-H "Authorization: Bearer $CARGODUO_API_KEY"const res = await fetch("https://runner.cargoduo.com/v1/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result", {
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/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result",
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/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result", 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/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result"))
.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/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result");
var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");<?php
$ch = curl_init('https://runner.cargoduo.com/v1/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result');
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/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result")
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.bodyBeispielantwort
{
"job_id": "job_4bK9mT2xQe7LpW1zRc8VdN3f",
"vehicles": [
{
"index": 0,
"vehicle_id": "trailer",
"copy": 1,
"auto_added": false,
"name": "13.6 m trailer",
"type": "trailer",
"length": 1360,
"width": 245,
"height": 270,
"max_weight": 24000,
"items_placed": 58,
"total_weight": 8580,
"volume_utilization": 0.3116,
"weight_utilization": 0.3575,
"center_of_gravity": {
"x": 452.6,
"y": 68.4,
"z": 121.8
},
"axle_loads": [],
"placements": [
{
"item_id": "pallet-eu",
"instance": 1,
"label": "Euro pallet",
"x": 0,
"y": 0,
"z": 0,
"length": 80,
"width": 120,
"height": 140,
"rotated": true,
"orientation": "wlh",
"step": 1,
"weight": 450
},
{
"item_id": "pallet-eu",
"instance": 2,
"label": "Euro pallet",
"x": 0,
"y": 0,
"z": 120,
"length": 80,
"width": 120,
"height": 140,
"rotated": true,
"orientation": "wlh",
"step": 2,
"weight": 450
},
{
"item_id": "carton-a",
"instance": 1,
"label": "Carton A",
"x": 720,
"y": 0,
"z": 0,
"length": 60,
"width": 40,
"height": 40,
"rotated": false,
"orientation": "lwh",
"step": 19,
"weight": 12
}
]
}
],
"unplaced": [],
"warnings": [],
"pdf_url": "https://app.cargoduo.com/r/Xq7Lm2Vt9KbR4cN8wZp1Hs6Yd3Fg5Jk0Ta2Ue7Wn4Ci",
"expires_at": "2026-11-02T09:12:03Z"
}Gekürzt: 3 der 58 Platzierungen werden gezeigt.
Antworten
200OKDer Ladeplan.
NameTypErforderlichBeschreibungjob_idstringstringNeinDer Job.
vehiclesResultVehicle[]ResultVehicle[]NeinBeladene Fahrzeuge in Ladereihenfolge (leere Fahrzeuge werden weggelassen).
indexintegerintegerNeinPosition im Plan, ab 0.
vehicle_idstringstringNeinID Ihrer Fahrzeugdefinition (bei einem Projekt-Job: die Slot-ID, pv_…).
copyintegerintegerNeinExemplarnummer dieser Definition, ab 1 (quantity > 1 oder im auto-Modus hinzugefügt).
auto_addedbooleanbooleanNeinVon
packing_modeautoüber die angegebenequantityhinaus hinzugefügt.namestringstringNeinFahrzeugname.
typestringstringNeinFahrzeugtyp.
lengthnumber · cmnumber · cmNeinLänge des Laderaums.
widthnumber · cmnumber · cmNeinBreite des Laderaums.
heightnumber · cmnumber · cmNeinHöhe des Laderaums.
max_weightnumber · kgnumber · kgNeinNutzlastgrenze.
items_placedintegerintegerNeinEinheiten in diesem Fahrzeug.
total_weightnumber · kgnumber · kgNeinGewicht in diesem Fahrzeug.
volume_utilizationnumbernumberNeinGenutztes Volumen / Laderaumvolumen, 0–1.
weight_utilizationnumbernumberNeintotal_weight / max_weight, 0–1 (kann mit allow_overweight über 1 liegen).
center_of_gravityPointPointNeinSchwerpunkt der Ladung (cm).
xnumber · cmnumber · cmNeinynumber · cmnumber · cmNeinznumber · cmnumber · cmNeinplacementsPlacement[]Placement[]NeinAlle Einheiten in diesem Fahrzeug.
item_idstringstringNeinID Ihrer Artikeldefinition (bei einem Projekt-Job: die Artikel-ID, item_…).
instanceintegerintegerNeinLaufende Nummer der Einheit innerhalb dieser Artikeldefinition, ab 1 (im ganzen Plan eindeutig).
labelstringstringNeinBezeichnung des Artikels.
xnumber · cmnumber · cmNeinPosition der minimalen Ecke entlang der Länge.
ynumber · cmnumber · cmNeinHöhe der minimalen Ecke über dem Boden.
znumber · cmnumber · cmNeinPosition der minimalen Ecke über die Breite.
lengthnumber · cmnumber · cmNeinAusdehnung entlang x, wie platziert.
widthnumber · cmnumber · cmNeinAusdehnung entlang z, wie platziert.
heightnumber · cmnumber · cmNeinAusdehnung entlang y, wie platziert.
rotatedbooleanbooleanNeinIn einer anderen Ausrichtung als definiert platziert.
orientationstringstringNeinWelche definierte Seite entlang x, z und y liegt:
lwh= wie definiert,wlh= um 90° um die senkrechte Achse gedreht,lhw,hwl,whl,hlw= auf eine Seite gekippt.stepintegerintegerNeinLadeschritt innerhalb des Fahrzeugs, ab 1 (in aufsteigender Reihenfolge laden).
weightnumber · kgnumber · kgNeinGewicht pro Einheit.
axle_loadsFreischaltung nötigAxleLoad[]AxleLoad[]NeinLast pro Achse (nur bei Fahrzeugen mit Achsdaten).
namestringstringNeinAxle 1,Axle 2… in der Reihenfolge vonaxle_positions.positionnumber · cmnumber · cmNeinAchsposition, gemessen ab der Vorderkante des Laderaums.
loadnumber · kgnumber · kgNeinLast der Ladung auf dieser Achse.
maxnumber · kgnumber · kgNeinKonfiguriertes Maximum (0 = keines).
okbooleanbooleanNeinload≤max(ohne Maximum immertrue).unplacedUnplacedItem[]UnplacedItem[]NeinEinheiten, die nicht platziert werden konnten, mit Grund.
item_idstringstringNeinID Ihrer Artikeldefinition.
instanceintegerintegerNeinNummer der Einheit, ab 1.
labelstringstringNeinBezeichnung des Artikels.
reasonstringstringNeinWarum die Einheit nicht platziert werden konnte.
warningsWarning[]Warning[]NeinHinweise zum Plan.
codestringstringNeinMaschinenlesbarer Code.
messagestringstringNeinErklärung auf Englisch.
pdf_urlstringstringNeinBrowser-Link, der den Plan als PDF erzeugt.
expires_atstringstringNeinZeitpunkt, zu dem dieses Ergebnis gelöscht wird (RFC 3339).
401Unauthorized
unauthorizedkey_revokedkey_expiredunauthorizedAPI-Schlüssel fehlt, ist fehlerhaft oder unbekannt.key_revokedDer Schlüssel wurde widerrufen.key_expiredDer Schlüssel ist abgelaufen.
Alle FehlercodesNameTypErforderlichBeschreibungerrorErrorBodyerforderlichErrorBodyJacodestringerforderlichstringJaMaschinenlesbarer Code (snake_case). Werten Sie diesen Code aus, nie
message.messagestringerforderlichstringJaErklärung auf Englisch.
request_idstringerforderlichstringJaIdentisch mit dem Header X-Request-Id. Geben Sie diesen Wert an, wenn Sie sich an den Support wenden.
detailsErrorDetail[]ErrorDetail[]NeinProbleme pro Feld (
validation_failed).pathstringstringNeinJSON-Pfad des fehlerhaften Felds, z. B. items[3].length.
codestringstringNeinMögliche Codes:
required,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.messagestringstringNeinErklärung auf Englisch.
403Forbidden
ip_not_allowedsubscription_inactiveaccount_inactivescope_missingip_not_allowedDie aufrufende IP-Adresse steht nicht auf der Allowlist des Schlüssels.subscription_inactiveDie Organisation hat kein aktives Abonnement, das die API enthält.account_inactiveDie Organisation ist gesperrt oder hat keinen Inhaber mit aktivem Konto.scope_missingDem Schlüssel fehlt eine Berechtigung, die dieser Endpoint benötigt.
Alle FehlercodesNameTypErforderlichBeschreibungerrorErrorBodyerforderlichErrorBodyJacodestringerforderlichstringJaMaschinenlesbarer Code (snake_case). Werten Sie diesen Code aus, nie
message.messagestringerforderlichstringJaErklärung auf Englisch.
request_idstringerforderlichstringJaIdentisch mit dem Header X-Request-Id. Geben Sie diesen Wert an, wenn Sie sich an den Support wenden.
detailsErrorDetail[]ErrorDetail[]NeinProbleme pro Feld (
validation_failed).pathstringstringNeinJSON-Pfad des fehlerhaften Felds, z. B. items[3].length.
codestringstringNeinMögliche Codes:
required,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.messagestringstringNeinErklärung auf Englisch.
404Not found
job_not_foundjob_not_foundKein Job mit dieser ID in Ihrer Organisation.
Alle FehlercodesNameTypErforderlichBeschreibungerrorErrorBodyerforderlichErrorBodyJacodestringerforderlichstringJaMaschinenlesbarer Code (snake_case). Werten Sie diesen Code aus, nie
message.messagestringerforderlichstringJaErklärung auf Englisch.
request_idstringerforderlichstringJaIdentisch mit dem Header X-Request-Id. Geben Sie diesen Wert an, wenn Sie sich an den Support wenden.
detailsErrorDetail[]ErrorDetail[]NeinProbleme pro Feld (
validation_failed).pathstringstringNeinJSON-Pfad des fehlerhaften Felds, z. B. items[3].length.
codestringstringNeinMögliche Codes:
required,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.messagestringstringNeinErklärung auf Englisch.
409Conflict
job_not_finishedjob_failedjob_canceledjob_not_finishedDer Job wartet noch oder läuft.job_failedDer Job ist fehlgeschlagen; es gibt kein Ergebnis.job_canceledDer Job wurde abgebrochen; es gibt kein Ergebnis.
Alle FehlercodesNameTypErforderlichBeschreibungerrorErrorBodyerforderlichErrorBodyJacodestringerforderlichstringJaMaschinenlesbarer Code (snake_case). Werten Sie diesen Code aus, nie
message.messagestringerforderlichstringJaErklärung auf Englisch.
request_idstringerforderlichstringJaIdentisch mit dem Header X-Request-Id. Geben Sie diesen Wert an, wenn Sie sich an den Support wenden.
detailsErrorDetail[]ErrorDetail[]NeinProbleme pro Feld (
validation_failed).pathstringstringNeinJSON-Pfad des fehlerhaften Felds, z. B. items[3].length.
codestringstringNeinMögliche Codes:
required,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.messagestringstringNeinErklärung auf Englisch.
410Gone
result_expiredresult_expiredDie Aufbewahrungsfrist des Ergebnisses ist abgelaufen; es wurde gelöscht.
Alle FehlercodesNameTypErforderlichBeschreibungerrorErrorBodyerforderlichErrorBodyJacodestringerforderlichstringJaMaschinenlesbarer Code (snake_case). Werten Sie diesen Code aus, nie
message.messagestringerforderlichstringJaErklärung auf Englisch.
request_idstringerforderlichstringJaIdentisch mit dem Header X-Request-Id. Geben Sie diesen Wert an, wenn Sie sich an den Support wenden.
detailsErrorDetail[]ErrorDetail[]NeinProbleme pro Feld (
validation_failed).pathstringstringNeinJSON-Pfad des fehlerhaften Felds, z. B. items[3].length.
codestringstringNeinMögliche Codes:
required,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.messagestringstringNeinErklärung auf Englisch.
429Too many requests
rate_limitedrate_limitedZu viele Anfragen in der aktuellen Minute, Stunde oder am aktuellen Tag (pro Schlüssel oder pro Organisation) oder mehr als 60 fehlgeschlagene Authentifizierungen pro Minute von Ihrer IP-Adresse.
Alle FehlercodesNameTypErforderlichBeschreibungerrorErrorBodyerforderlichErrorBodyJacodestringerforderlichstringJaMaschinenlesbarer Code (snake_case). Werten Sie diesen Code aus, nie
message.messagestringerforderlichstringJaErklärung auf Englisch.
request_idstringerforderlichstringJaIdentisch mit dem Header X-Request-Id. Geben Sie diesen Wert an, wenn Sie sich an den Support wenden.
detailsErrorDetail[]ErrorDetail[]NeinProbleme pro Feld (
validation_failed).pathstringstringNeinJSON-Pfad des fehlerhaften Felds, z. B. items[3].length.
codestringstringNeinMögliche Codes:
required,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.messagestringstringNeinErklärung auf Englisch.
500Internal server error
internal_errorinternal_errorAuf unserer Seite ist ein Fehler aufgetreten.
Alle FehlercodesNameTypErforderlichBeschreibungerrorErrorBodyerforderlichErrorBodyJacodestringerforderlichstringJaMaschinenlesbarer Code (snake_case). Werten Sie diesen Code aus, nie
message.messagestringerforderlichstringJaErklärung auf Englisch.
request_idstringerforderlichstringJaIdentisch mit dem Header X-Request-Id. Geben Sie diesen Wert an, wenn Sie sich an den Support wenden.
detailsErrorDetail[]ErrorDetail[]NeinProbleme pro Feld (
validation_failed).pathstringstringNeinJSON-Pfad des fehlerhaften Felds, z. B. items[3].length.
codestringstringNeinMögliche Codes:
required,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.messagestringstringNeinErklärung auf Englisch.
503Service unavailable
api_disabledapi_disabledDie API ist vorübergehend deaktiviert (Wartung) oder für die Organisation abgeschaltet.
Alle FehlercodesNameTypErforderlichBeschreibungerrorErrorBodyerforderlichErrorBodyJacodestringerforderlichstringJaMaschinenlesbarer Code (snake_case). Werten Sie diesen Code aus, nie
message.messagestringerforderlichstringJaErklärung auf Englisch.
request_idstringerforderlichstringJaIdentisch mit dem Header X-Request-Id. Geben Sie diesen Wert an, wenn Sie sich an den Support wenden.
detailsErrorDetail[]ErrorDetail[]NeinProbleme pro Feld (
validation_failed).pathstringstringNeinJSON-Pfad des fehlerhaften Felds, z. B. items[3].length.
codestringstringNeinMögliche Codes:
required,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.messagestringstringNeinErklärung auf Englisch.