Pack a project
Packs the project's vehicles and items exactly like POST /v1/pack: same price, credit reservation, limits, Idempotency-Key, ?wait= and job.
When the job succeeds its plan is saved into the project, which then opens in the app with that plan. If the project changed while the job ran, the plan stays on the job only (warning project_not_saved). Result ids are the project's: vehicle_id is the slot id (pv_…), item_id the item id (item_…).
Authentication
Path parameters
idstringrequiredProject id (prj_…).
Query parameters
waitintegerSeconds to hold the response for the job to finish. Finished in time: 200 with the result inlined. Otherwise: 202.
00–60Header parameters
Idempotency-KeystringAny unique string, such as a UUID or your order id. The same key within 24 h returns the original job instead of creating and charging a new one.
Body parameters
application/jsonreferencestringYour reference, echoed on the job. Defaults to the project name.
optionsProjectPackOptionsRun options. Every field is optional.
packing_modestringauto = when the listed vehicles are full, more copies of the most suitable vehicle are added (up to the job's vehicle limit); fleet_only = only the listed vehicles are used, anything that does not fit is reported as unplaced.
autofleet_onlyallow_overweightbooleanIgnore vehicle payload limits.
max_stack_itemsintegerMaximum items in one stack. 0 = unlimited.
0max_stack_density_kg_m2number · kg/m²Maximum stack weight per floor area. 0 = unlimited.
0lock_rotationsbooleanKeep the first orientation that fits the vehicle height.
falsegroup_identical_binsbooleanTreat identical vehicles as one pool.
falsetime_limitnumber · sUpper bound on compute time for the whole job. 0 = automatic (capped at max_time_limit_seconds from GET /v1/limits). When the limit is reached the best plan found so far is returned. You pay only for the compute time actually used.
0enforce_axleRequires accessbooleanReject placements that overload an axle group, on vehicles that carry all ten axle-model fields.
falseExample request
curl -X POST "https://runner.cargoduo.com/v1/projects/prj_3051/pack" \
-H "Authorization: Bearer $CARGODUO_API_KEY" \
-H "Idempotency-Key: order-1042-v1" \
-H "Content-Type: application/json" \
-d '{
"reference": "order-1042"
}'const res = await fetch("https://runner.cargoduo.com/v1/projects/prj_3051/pack", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
"Idempotency-Key": "order-1042-v1",
"Content-Type": "application/json",
},
body: JSON.stringify({
"reference": "order-1042"
}),
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.post(
"https://runner.cargoduo.com/v1/projects/prj_3051/pack",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}", "Idempotency-Key": "order-1042-v1"},
json={
"reference": "order-1042",
},
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
body := strings.NewReader(`{
"reference": "order-1042"
}`)
req, err := http.NewRequest("POST", "https://runner.cargoduo.com/v1/projects/prj_3051/pack", body)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("CARGODUO_API_KEY"))
req.Header.Set("Idempotency-Key", "order-1042-v1")
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 = """
{
"reference": "order-1042"
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://runner.cargoduo.com/v1/projects/prj_3051/pack"))
.header("Authorization", "Bearer " + System.getenv("CARGODUO_API_KEY"))
.header("Idempotency-Key", "order-1042-v1")
.header("Content-Type", "application/json")
.method("POST", 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"));
client.DefaultRequestHeaders.Add("Idempotency-Key", "order-1042-v1");
var json = """
{
"reference": "order-1042"
}
""";
var request = new HttpRequestMessage(HttpMethod.Post, "https://runner.cargoduo.com/v1/projects/prj_3051/pack")
{
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'
{
"reference": "order-1042"
}
JSON;
$ch = curl_init('https://runner.cargoduo.com/v1/projects/prj_3051/pack');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CARGODUO_API_KEY'),
'Idempotency-Key: order-1042-v1',
'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/pack")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch("CARGODUO_API_KEY")}"
request["Idempotency-Key"] = "order-1042-v1"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
"reference": "order-1042"
}
JSON
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.code, response.bodyExample response
{
"id": "job_4bK9mT2xQe7LpW1zRc8VdN3f",
"object": "job",
"status": "queued",
"reference": "order-1042",
"source": "api",
"project_id": "prj_3051",
"created_at": "2026-10-19T09:12:03Z",
"started_at": null,
"finished_at": null,
"progress": {
"stage": "queued",
"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": 0,
"compute_ms": 0
},
"cost": {
"credits": 0,
"reserved_credits": 1.11,
"rate_card_version": 1,
"breakdown": {
"base": 0,
"vehicles": 0,
"compute": 0,
"large_load": 0
}
},
"error": null,
"warnings": [],
"result_url": "https://runner.cargoduo.com/v1/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result",
"pdf_url": "",
"expires_at": "2026-11-02T09:12:03Z"
}Responses
200OKJob finished within ?wait, result inlined. Also an idempotent replay of a finished job.
NameTypeRequiredDescriptionidstringrequiredstringYesJob id (job_…).
objectstringrequiredstringYesAlways
job.jobstatusstringrequiredstringYesqueued→running→succeeded|failed|canceled.queuedrunningsucceededfailedcanceledreferencestringstringNoYour reference from the request.
sourcestringstringNoWhere the job was created.
apiplaygroundproject_idstringstringNoThe project (prj_…) a POST /v1/projects/{id}/pack job saves its plan into. Absent on other jobs.
created_atstringrequiredstringYesRFC 3339 timestamp.
started_atstring | nullstring | nullNoWhen computing started (RFC 3339) or
null.finished_atstring | nullstring | nullNoWhen the job ended (RFC 3339) or
null.progressJobProgressJobProgressNoLive progress while queued/running.
stagestringstringNoCurrent stage, such as
queued,running,finalizingordone. Informational: branch onJob.status.vehicles_doneintegerintegerNoVehicles packed so far.
placed_itemsintegerintegerNoItem units placed so far.
summaryJobSummaryJobSummaryNoCounts and timings.
items_requestedintegerintegerNoTotal item units (sum of quantities).
items_placedintegerintegerNoUnits placed.
items_unplacedintegerintegerNoUnits that could not be placed.
vehicles_usedintegerintegerNoVehicles that carry at least one item.
total_weightnumber · kgnumber · kgNoWeight loaded.
volume_utilizationnumbernumberNoAverage volume utilization of the used vehicles, 0–1.
queue_msintegerintegerNoTime spent waiting for a compute slot (not billed).
compute_msintegerintegerNoCompute time (billed).
costJobCostJobCostNoCredits charged (final once the job ended) and the reservation held while it ran.
creditsnumber · creditsnumber · creditsNoCredits charged (0 until the job ends). Failed jobs are not charged, except time_limit_exceeded, which is charged like a canceled job.
reserved_creditsnumber · creditsnumber · creditsNoCredits held while the job was queued/running (the worst-case price). Released when it ends.
rate_card_versionintegerintegerNoRate card the job is priced with.
breakdownCostBreakdownCostBreakdownNoItemized price.
basenumber · creditsnumber · creditsNoPer-job fee.
vehiclesnumber · creditsnumber · creditsNoPer loaded vehicle (not charged for canceled or time_limit_exceeded jobs).
computenumber · creditsnumber · creditsNoPer compute-second, pro-rated per millisecond.
large_loadnumber · creditsnumber · creditsNoSurcharge per started 100 items above the large-load threshold.
errorJobError | nullJobError | nullNoWhy the job failed or was canceled;
nullotherwise.codestringstringNoMachine code (see Errors).
messagestringstringNoEnglish explanation.
warningsWarning[]Warning[]NoNon-blocking remarks about the request (also repeated in the result).
codestringstringNoMachine code.
messagestringstringNoEnglish explanation.
result_urlstringstringNoGET this URL for the full result once
statusissucceeded.pdf_urlstringstringNoA browser link that renders the load plan as a PDF (3D views + loading steps). Valid until expires_at. Empty after expiry.
expires_atstringstringNoWhen the request/result bodies and the PDF link are deleted (RFC 3339). Job metadata and charges are kept.
resultResultResultNoThe full result, inlined only when requested (?include=result) or when POST /v1/pack?wait= finished in time.
job_idstringstringNoThe job.
vehiclesResultVehicle[]ResultVehicle[]NoLoaded vehicles in loading order (empty vehicles are left out).
indexintegerintegerNo0-based position in the plan.
vehicle_idstringstringNoYour vehicle definition id (for a project job: the slot id, pv_…).
copyintegerintegerNo1-based copy number of that definition (quantity > 1, or added in auto mode).
auto_addedbooleanbooleanNoAdded by
packing_modeautobeyond thequantityyou listed.namestringstringNoVehicle name.
typestringstringNoVehicle type.
lengthnumber · cmnumber · cmNoCargo-space length.
widthnumber · cmnumber · cmNoCargo-space width.
heightnumber · cmnumber · cmNoCargo-space height.
max_weightnumber · kgnumber · kgNoPayload limit.
items_placedintegerintegerNoUnits in this vehicle.
total_weightnumber · kgnumber · kgNoWeight in this vehicle.
volume_utilizationnumbernumberNoUsed volume / cargo-space volume, 0–1.
weight_utilizationnumbernumberNototal_weight / max_weight, 0–1 (may exceed 1 with allow_overweight).
center_of_gravityPointPointNoCentre of gravity of the load (cm).
xnumber · cmnumber · cmNoynumber · cmnumber · cmNoznumber · cmnumber · cmNoplacementsPlacement[]Placement[]NoEvery unit in this vehicle.
item_idstringstringNoYour item definition id (for a project job: the item id, item_…).
instanceintegerintegerNo1-based unit number within that item definition (unique across the whole plan).
labelstringstringNoItem label.
xnumber · cmnumber · cmNoMin-corner position along the length.
ynumber · cmnumber · cmNoMin-corner height above the floor.
znumber · cmnumber · cmNoMin-corner position across the width.
lengthnumber · cmnumber · cmNoSize along x as placed.
widthnumber · cmnumber · cmNoSize along z as placed.
heightnumber · cmnumber · cmNoSize along y as placed.
rotatedbooleanbooleanNoPlaced in a different orientation than defined.
orientationstringstringNoWhich defined side lies along x, z and y:
lwh= as defined,wlh= turned 90° around the vertical axis,lhw,hwl,whl,hlw= tipped onto a side.stepintegerintegerNo1-based loading step within the vehicle (load in ascending order).
weightnumber · kgnumber · kgNoUnit weight.
axle_loadsRequires accessAxleLoad[]AxleLoad[]NoLoad per axle (vehicles with axle data only).
namestringstringNoAxle 1,Axle 2… in the order ofaxle_positions.positionnumber · cmnumber · cmNoAxle position from the front of the cargo area.
loadnumber · kgnumber · kgNoCargo load on the axle.
maxnumber · kgnumber · kgNoConfigured maximum (0 = none).
okbooleanbooleanNoload≤max(alwaystruewithout a maximum).unplacedUnplacedItem[]UnplacedItem[]NoUnits that could not be placed, with the reason.
item_idstringstringNoYour item definition id.
instanceintegerintegerNo1-based unit number.
labelstringstringNoItem label.
reasonstringstringNoWhy it could not be placed.
warningsWarning[]Warning[]NoRemarks about the plan.
codestringstringNoMachine code.
messagestringstringNoEnglish explanation.
pdf_urlstringstringNoBrowser link that renders the plan as a PDF.
expires_atstringstringNoWhen this result is deleted (RFC 3339).
202AcceptedJob accepted (queued or running).
NameTypeRequiredDescriptionidstringrequiredstringYesJob id (job_…).
objectstringrequiredstringYesAlways
job.jobstatusstringrequiredstringYesqueued→running→succeeded|failed|canceled.queuedrunningsucceededfailedcanceledreferencestringstringNoYour reference from the request.
sourcestringstringNoWhere the job was created.
apiplaygroundproject_idstringstringNoThe project (prj_…) a POST /v1/projects/{id}/pack job saves its plan into. Absent on other jobs.
created_atstringrequiredstringYesRFC 3339 timestamp.
started_atstring | nullstring | nullNoWhen computing started (RFC 3339) or
null.finished_atstring | nullstring | nullNoWhen the job ended (RFC 3339) or
null.progressJobProgressJobProgressNoLive progress while queued/running.
stagestringstringNoCurrent stage, such as
queued,running,finalizingordone. Informational: branch onJob.status.vehicles_doneintegerintegerNoVehicles packed so far.
placed_itemsintegerintegerNoItem units placed so far.
summaryJobSummaryJobSummaryNoCounts and timings.
items_requestedintegerintegerNoTotal item units (sum of quantities).
items_placedintegerintegerNoUnits placed.
items_unplacedintegerintegerNoUnits that could not be placed.
vehicles_usedintegerintegerNoVehicles that carry at least one item.
total_weightnumber · kgnumber · kgNoWeight loaded.
volume_utilizationnumbernumberNoAverage volume utilization of the used vehicles, 0–1.
queue_msintegerintegerNoTime spent waiting for a compute slot (not billed).
compute_msintegerintegerNoCompute time (billed).
costJobCostJobCostNoCredits charged (final once the job ended) and the reservation held while it ran.
creditsnumber · creditsnumber · creditsNoCredits charged (0 until the job ends). Failed jobs are not charged, except time_limit_exceeded, which is charged like a canceled job.
reserved_creditsnumber · creditsnumber · creditsNoCredits held while the job was queued/running (the worst-case price). Released when it ends.
rate_card_versionintegerintegerNoRate card the job is priced with.
breakdownCostBreakdownCostBreakdownNoItemized price.
basenumber · creditsnumber · creditsNoPer-job fee.
vehiclesnumber · creditsnumber · creditsNoPer loaded vehicle (not charged for canceled or time_limit_exceeded jobs).
computenumber · creditsnumber · creditsNoPer compute-second, pro-rated per millisecond.
large_loadnumber · creditsnumber · creditsNoSurcharge per started 100 items above the large-load threshold.
errorJobError | nullJobError | nullNoWhy the job failed or was canceled;
nullotherwise.codestringstringNoMachine code (see Errors).
messagestringstringNoEnglish explanation.
warningsWarning[]Warning[]NoNon-blocking remarks about the request (also repeated in the result).
codestringstringNoMachine code.
messagestringstringNoEnglish explanation.
result_urlstringstringNoGET this URL for the full result once
statusissucceeded.pdf_urlstringstringNoA browser link that renders the load plan as a PDF (3D views + loading steps). Valid until expires_at. Empty after expiry.
expires_atstringstringNoWhen the request/result bodies and the PDF link are deleted (RFC 3339). Job metadata and charges are kept.
resultResultResultNoThe full result, inlined only when requested (?include=result) or when POST /v1/pack?wait= finished in time.
job_idstringstringNoThe job.
vehiclesResultVehicle[]ResultVehicle[]NoLoaded vehicles in loading order (empty vehicles are left out).
indexintegerintegerNo0-based position in the plan.
vehicle_idstringstringNoYour vehicle definition id (for a project job: the slot id, pv_…).
copyintegerintegerNo1-based copy number of that definition (quantity > 1, or added in auto mode).
auto_addedbooleanbooleanNoAdded by
packing_modeautobeyond thequantityyou listed.namestringstringNoVehicle name.
typestringstringNoVehicle type.
lengthnumber · cmnumber · cmNoCargo-space length.
widthnumber · cmnumber · cmNoCargo-space width.
heightnumber · cmnumber · cmNoCargo-space height.
max_weightnumber · kgnumber · kgNoPayload limit.
items_placedintegerintegerNoUnits in this vehicle.
total_weightnumber · kgnumber · kgNoWeight in this vehicle.
volume_utilizationnumbernumberNoUsed volume / cargo-space volume, 0–1.
weight_utilizationnumbernumberNototal_weight / max_weight, 0–1 (may exceed 1 with allow_overweight).
center_of_gravityPointPointNoCentre of gravity of the load (cm).
xnumber · cmnumber · cmNoynumber · cmnumber · cmNoznumber · cmnumber · cmNoplacementsPlacement[]Placement[]NoEvery unit in this vehicle.
item_idstringstringNoYour item definition id (for a project job: the item id, item_…).
instanceintegerintegerNo1-based unit number within that item definition (unique across the whole plan).
labelstringstringNoItem label.
xnumber · cmnumber · cmNoMin-corner position along the length.
ynumber · cmnumber · cmNoMin-corner height above the floor.
znumber · cmnumber · cmNoMin-corner position across the width.
lengthnumber · cmnumber · cmNoSize along x as placed.
widthnumber · cmnumber · cmNoSize along z as placed.
heightnumber · cmnumber · cmNoSize along y as placed.
rotatedbooleanbooleanNoPlaced in a different orientation than defined.
orientationstringstringNoWhich defined side lies along x, z and y:
lwh= as defined,wlh= turned 90° around the vertical axis,lhw,hwl,whl,hlw= tipped onto a side.stepintegerintegerNo1-based loading step within the vehicle (load in ascending order).
weightnumber · kgnumber · kgNoUnit weight.
axle_loadsRequires accessAxleLoad[]AxleLoad[]NoLoad per axle (vehicles with axle data only).
namestringstringNoAxle 1,Axle 2… in the order ofaxle_positions.positionnumber · cmnumber · cmNoAxle position from the front of the cargo area.
loadnumber · kgnumber · kgNoCargo load on the axle.
maxnumber · kgnumber · kgNoConfigured maximum (0 = none).
okbooleanbooleanNoload≤max(alwaystruewithout a maximum).unplacedUnplacedItem[]UnplacedItem[]NoUnits that could not be placed, with the reason.
item_idstringstringNoYour item definition id.
instanceintegerintegerNo1-based unit number.
labelstringstringNoItem label.
reasonstringstringNoWhy it could not be placed.
warningsWarning[]Warning[]NoRemarks about the plan.
codestringstringNoMachine code.
messagestringstringNoEnglish explanation.
pdf_urlstringstringNoBrowser link that renders the plan as a PDF.
expires_atstringstringNoWhen this result is deleted (RFC 3339).
400Bad request
invalid_jsonidempotency_key_invalidinvalid_jsonThe body is not valid JSON or a field has the wrong type.idempotency_key_invalidThe Idempotency-Key header is longer than 128 characters.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
401Unauthorized
unauthorizedkey_revokedkey_expiredunauthorizedMissing, malformed or unknown API key.key_revokedThe key was revoked.key_expiredThe key passed its expiry date.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
402Payment required
insufficient_creditsinsufficient_creditsAvailable credits do not cover the smallest possible run of this job.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
403Forbidden
ip_not_allowedsubscription_inactiveaccount_inactivescope_missingip_not_allowedThe calling IP is not on the key's allowlist.subscription_inactiveThe organization has no active subscription that includes the API.account_inactiveThe organization is suspended, or has no owner whose account is active.scope_missingThe key lacks a scope this endpoint needs.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
404Not found
project_not_foundproject_not_foundNo project with this id in your organization.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
409Conflict
project_busyproject_busyThe project is being packed right now (in the app or by another job).
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
413Payload too large
payload_too_largepayload_too_largeThe request body exceeds 10 MB.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
422Unprocessable entity
validation_failedvalidation_failedThe request is well-formed JSON but describes an invalid job. details[] lists every problem.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
429Too many requests
too_many_jobsrate_limitedtoo_many_jobsThe organization already has the maximum number of queued + running jobs.rate_limitedToo many requests in the current minute, hour or day (per key or per organization), or more than 60 failed authentications per minute from your IP address.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
500Internal server error
internal_errorinternal_errorSomething failed on our side.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.
503Service unavailable
api_disabledapi_disabledThe API is temporarily disabled (maintenance) or switched off for the organization.
All error codesNameTypeRequiredDescriptionerrorErrorBodyrequiredErrorBodyYescodestringrequiredstringYesMachine code (snake_case). Branch on this, never on
message.messagestringrequiredstringYesEnglish explanation.
request_idstringrequiredstringYesSame as the X-Request-Id header. Quote it when contacting support.
detailsErrorDetail[]ErrorDetail[]NoPer-field problems (
validation_failed).pathstringstringNoJSON path of the offending field, e.g. items[3].length.
codestringstringNorequired,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.messagestringstringNoEnglish explanation.