Job abbrechen
Stoppt einen wartenden oder laufenden Job.
Für einen abgebrochenen Job fallen die Jobgebühr, ein etwaiger Zuschlag für große Ladungen und die bis dahin genutzte Rechenzeit an, nie die Fahrzeuggebühr. Wird ein bereits abgebrochener Job erneut abgebrochen, kommt er unverändert zurück.
Authentifizierung
Pfadparameter
idstringerforderlichJob-ID (job_…).
Beispielanfrage
curl -X DELETE "https://runner.cargoduo.com/v1/jobs/job_2cR8vL4nXp6tQb1mZk9WsH5e" \
-H "Authorization: Bearer $CARGODUO_API_KEY"const res = await fetch("https://runner.cargoduo.com/v1/jobs/job_2cR8vL4nXp6tQb1mZk9WsH5e", {
method: "DELETE",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
},
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.delete(
"https://runner.cargoduo.com/v1/jobs/job_2cR8vL4nXp6tQb1mZk9WsH5e",
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("DELETE", "https://runner.cargoduo.com/v1/jobs/job_2cR8vL4nXp6tQb1mZk9WsH5e", 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_2cR8vL4nXp6tQb1mZk9WsH5e"))
.header("Authorization", "Bearer " + System.getenv("CARGODUO_API_KEY"))
.method("DELETE", 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.Delete, "https://runner.cargoduo.com/v1/jobs/job_2cR8vL4nXp6tQb1mZk9WsH5e");
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_2cR8vL4nXp6tQb1mZk9WsH5e');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
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_2cR8vL4nXp6tQb1mZk9WsH5e")
request = Net::HTTP::Delete.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
{
"id": "job_2cR8vL4nXp6tQb1mZk9WsH5e",
"object": "job",
"status": "canceled",
"reference": "order-1043",
"source": "api",
"created_at": "2026-10-19T09:15:03Z",
"started_at": "2026-10-19T09:15:03Z",
"finished_at": "2026-10-19T09:15:05Z",
"progress": {
"stage": "done",
"vehicles_done": 0,
"placed_items": 0
},
"summary": {
"items_requested": 58,
"items_placed": 0,
"items_unplaced": 0,
"vehicles_used": 0,
"total_weight": 0,
"volume_utilization": 0,
"queue_ms": 15,
"compute_ms": 2300
},
"cost": {
"credits": 0.0715,
"reserved_credits": 1.11,
"rate_card_version": 1,
"breakdown": {
"base": 0.06,
"vehicles": 0,
"compute": 0.0115,
"large_load": 0
}
},
"error": {
"code": "canceled",
"message": "Canceled by request."
},
"warnings": [],
"result_url": "https://runner.cargoduo.com/v1/jobs/job_2cR8vL4nXp6tQb1mZk9WsH5e/result",
"pdf_url": "",
"expires_at": "2026-11-02T09:15:03Z"
}Antworten
200OKDer abgebrochene Job.
NameTypErforderlichBeschreibungidstringerforderlichstringJaJob-ID (job_…).
objectstringerforderlichstringJaImmer
job.jobstatusstringerforderlichstringJaqueued→running→succeeded|failed|canceled.queuedrunningsucceededfailedcanceledreferencestringstringNeinIhre Referenz aus der Anfrage.
sourcestringstringNeinWo der Job angelegt wurde.
apiplaygroundproject_idstringstringNeinDas Projekt (prj_…), in dem ein Job von POST /v1/projects/{id}/pack seinen Plan speichert. Fehlt bei anderen Jobs.
created_atstringerforderlichstringJaZeitstempel nach RFC 3339.
started_atstring | nullstring | nullNeinBeginn der Berechnung (RFC 3339) oder
null.finished_atstring | nullstring | nullNeinEnde des Jobs (RFC 3339) oder
null.progressJobProgressJobProgressNeinLive-Fortschritt, solange der Job wartet oder läuft.
stagestringstringNeinAktuelle Phase, etwa
queued,running,finalizingoderdone. Nur informativ: Werten SieJob.statusaus.vehicles_doneintegerintegerNeinBisher fertig geplante Fahrzeuge.
placed_itemsintegerintegerNeinBisher platzierte Artikeleinheiten.
summaryJobSummaryJobSummaryNeinAnzahlen und Zeiten.
items_requestedintegerintegerNeinArtikeleinheiten insgesamt (Summe der Mengen).
items_placedintegerintegerNeinPlatzierte Einheiten.
items_unplacedintegerintegerNeinEinheiten, die nicht platziert werden konnten.
vehicles_usedintegerintegerNeinFahrzeuge mit mindestens einem Artikel.
total_weightnumber · kgnumber · kgNeinGeladenes Gewicht.
volume_utilizationnumbernumberNeinDurchschnittliche Volumenauslastung der genutzten Fahrzeuge, 0–1.
queue_msintegerintegerNeinWartezeit auf freie Rechenkapazität (wird nicht abgerechnet).
compute_msintegerintegerNeinRechenzeit (wird abgerechnet).
costJobCostJobCostNeinBerechnete Credits (endgültig, sobald der Job beendet ist) und die Reservierung während der Laufzeit.
creditsnumber · creditsnumber · creditsNeinBerechnete Credits (0, bis der Job endet). Fehlgeschlagene Jobs kosten nichts, außer time_limit_exceeded – das wird wie ein abgebrochener Job berechnet.
reserved_creditsnumber · creditsnumber · creditsNeinCredits, die reserviert waren, während der Job wartete oder lief (der Höchstpreis). Werden mit dem Ende des Jobs freigegeben.
rate_card_versionintegerintegerNeinPreisliste, nach der der Job berechnet wird.
breakdownCostBreakdownCostBreakdownNeinAufgeschlüsselter Preis.
basenumber · creditsnumber · creditsNeinJobgebühr.
vehiclesnumber · creditsnumber · creditsNeinPro beladenem Fahrzeug (entfällt bei abgebrochenen Jobs und bei time_limit_exceeded).
computenumber · creditsnumber · creditsNeinPro Rechensekunde, anteilig pro Millisekunde abgerechnet.
large_loadnumber · creditsnumber · creditsNeinZuschlag je angefangene 100 Artikel über der Schwelle für große Ladungen.
errorJobError | nullJobError | nullNeinWarum der Job fehlgeschlagen ist oder abgebrochen wurde; sonst
null.codestringstringNeinMaschinenlesbarer Code (siehe Fehler).
messagestringstringNeinErklärung auf Englisch.
warningsWarning[]Warning[]NeinNicht blockierende Hinweise zur Anfrage (auch im Ergebnis wiederholt).
codestringstringNeinMaschinenlesbarer Code.
messagestringstringNeinErklärung auf Englisch.
result_urlstringstringNeinRufen Sie diese URL per GET ab, um das vollständige Ergebnis zu erhalten, sobald
statusden Wertsucceededhat.pdf_urlstringstringNeinEin Browser-Link, der den Ladeplan als PDF erzeugt (3D-Ansichten + Ladeschritte). Gültig bis expires_at. Danach leer.
expires_atstringstringNeinZeitpunkt, zu dem Anfrage- und Ergebnis-Bodies sowie der PDF-Link gelöscht werden (RFC 3339). Job-Metadaten und Abbuchungen bleiben erhalten.
resultResultResultNeinDas vollständige Ergebnis, nur eingebettet, wenn angefordert (?include=result) oder wenn POST /v1/pack?wait= rechtzeitig fertig wurde.
job_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_already_finishedjob_already_finishedDer Job ist bereits beendet und kann nicht abgebrochen werden.
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.