İşleri listele
Organizasyonunuzun işleri, en yeniden eskiye, sayfa sayfa.
Kimlik doğrulama
Sorgu parametreleri
limitintegerSayfa boyutu.
201–100cursorstringÖnceki sayfanın next_cursor değeri.
statusstringYalnızca bu durumdaki işler.
queuedrunningsucceededfailedcanceledÖrnek istek
curl -X GET "https://runner.cargoduo.com/v1/jobs?limit=2&status=succeeded" \
-H "Authorization: Bearer $CARGODUO_API_KEY"const res = await fetch("https://runner.cargoduo.com/v1/jobs?limit=2&status=succeeded", {
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",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}"},
params={
"limit": 2,
"status": "succeeded",
},
)
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?limit=2&status=succeeded", 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?limit=2&status=succeeded"))
.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?limit=2&status=succeeded");
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?limit=2&status=succeeded');
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?limit=2&status=succeeded")
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.bodyÖrnek yanıt
{
"data": [
{
"id": "job_4bK9mT2xQe7LpW1zRc8VdN3f",
"object": "job",
"status": "succeeded",
"reference": "order-1042",
"source": "api",
"created_at": "2026-10-19T09:12:03Z",
"started_at": "2026-10-19T09:12:03Z",
"finished_at": "2026-10-19T09:12:07Z",
"progress": {
"stage": "done",
"vehicles_done": 1,
"placed_items": 58
},
"summary": {
"items_requested": 58,
"items_placed": 58,
"items_unplaced": 0,
"vehicles_used": 1,
"total_weight": 8580,
"volume_utilization": 0.3116,
"queue_ms": 12,
"compute_ms": 4210
},
"cost": {
"credits": 0.28105,
"reserved_credits": 1.11,
"rate_card_version": 1,
"breakdown": {
"base": 0.06,
"vehicles": 0.2,
"compute": 0.02105,
"large_load": 0
}
},
"error": null,
"warnings": [],
"result_url": "https://runner.cargoduo.com/v1/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result",
"pdf_url": "https://app.cargoduo.com/r/Xq7Lm2Vt9KbR4cN8wZp1Hs6Yd3Fg5Jk0Ta2Ue7Wn4Ci",
"expires_at": "2026-11-02T09:12:03Z"
},
{
"id": "job_7hN2wQ5rTb9xKc3LmP8sVa1d",
"object": "job",
"status": "succeeded",
"reference": "order-1039",
"source": "api",
"created_at": "2026-10-18T07:12:03Z",
"started_at": "2026-10-18T07:12:03Z",
"finished_at": "2026-10-18T07:12:05Z",
"progress": {
"stage": "done",
"vehicles_done": 1,
"placed_items": 24
},
"summary": {
"items_requested": 24,
"items_placed": 24,
"items_unplaced": 0,
"vehicles_used": 1,
"total_weight": 6240,
"volume_utilization": 0.2213,
"queue_ms": 9,
"compute_ms": 2870
},
"cost": {
"credits": 0.27435,
"reserved_credits": 1.11,
"rate_card_version": 1,
"breakdown": {
"base": 0.06,
"vehicles": 0.2,
"compute": 0.01435,
"large_load": 0
}
},
"error": null,
"warnings": [],
"result_url": "https://runner.cargoduo.com/v1/jobs/job_7hN2wQ5rTb9xKc3LmP8sVa1d/result",
"pdf_url": "https://app.cargoduo.com/r/Xq7Lm2Vt9KbR4cN8wZp1Hs6Yd3Fg5Jk0Ta2Ue7Wn4Ci",
"expires_at": "2026-11-01T07:12:03Z"
}
],
"next_cursor": "job_7hN2wQ5rTb9xKc3LmP8sVa1d"
}Yanıtlar
200OKBir sayfa iş.
AdTürZorunluAçıklamadataJob[]Job[]HayıridstringzorunlustringEvetİş ID'si (job_…).
objectstringzorunlustringEvetHer zaman
job.jobstatusstringzorunlustringEvetqueued→running→succeeded|failed|canceled.queuedrunningsucceededfailedcanceledreferencestringstringHayırİstekte gönderdiğiniz referans.
sourcestringstringHayırİşin oluşturulduğu yer.
apiplaygroundproject_idstringstringHayırPOST /v1/projects/{id}/pack işinin planını kaydettiği proje (prj_…). Diğer işlerde bulunmaz.
created_atstringzorunlustringEvetRFC 3339 zaman damgası.
started_atstring | nullstring | nullHayırHesaplamanın başladığı zaman (RFC 3339) ya da
null.finished_atstring | nullstring | nullHayırİşin bittiği zaman (RFC 3339) ya da
null.progressJobProgressJobProgressHayırİş sıradayken ya da çalışırken anlık ilerleme.
stagestringstringHayırGüncel aşama; örneğin
queued,running,finalizingya dadone. Yalnızca bilgi amaçlıdır: mantığınızıJob.statusalanına göre kurun.vehicles_doneintegerintegerHayırŞu ana kadar tamamlanan araç sayısı.
placed_itemsintegerintegerHayırŞu ana kadar yerleştirilen öğe adedi.
summaryJobSummaryJobSummaryHayırSayılar ve süreler.
items_requestedintegerintegerHayırToplam öğe adedi (quantity değerlerinin toplamı).
items_placedintegerintegerHayırYerleştirilen adet.
items_unplacedintegerintegerHayırYerleştirilemeyen adet.
vehicles_usedintegerintegerHayırEn az bir öğe taşıyan araçlar.
total_weightnumber · kgnumber · kgHayırYüklenen ağırlık.
volume_utilizationnumbernumberHayırKullanılan araçların ortalama hacim kullanım oranı, 0–1.
queue_msintegerintegerHayırHesaplama kapasitesi için kuyrukta geçen süre (ücretlendirilmez).
compute_msintegerintegerHayırHesaplama süresi (ücretlendirilir).
costJobCostJobCostHayırDüşülen krediler (iş bitince kesinleşir) ve iş çalışırken tutulan rezervasyon.
creditsnumber · creditsnumber · creditsHayırDüşülen krediler (iş bitene kadar 0). Başarısız işler ücretlendirilmez; tek istisna time_limit_exceeded: iptal edilen bir iş gibi ücretlendirilir.
reserved_creditsnumber · creditsnumber · creditsHayırİş sıradayken/çalışırken rezerve edilen krediler (en kötü durumdaki fiyat). İş bitince serbest bırakılır.
rate_card_versionintegerintegerHayırİşin fiyatlandırıldığı fiyat tarifesi.
breakdownCostBreakdownCostBreakdownHayırKalem kalem fiyat.
basenumber · creditsnumber · creditsHayırİş ücreti.
vehiclesnumber · creditsnumber · creditsHayırYüklenen araç başına (iptal edilen ya da time_limit_exceeded ile biten işlerde alınmaz).
computenumber · creditsnumber · creditsHayırHesaplama saniyesi başına; milisaniye bazında orantılı.
large_loadnumber · creditsnumber · creditsHayırBüyük yük eşiğinin üzerindeki her başlayan 100 öğe için ek ücret.
errorJobError | nullJobError | nullHayırİşin neden başarısız olduğu ya da iptal edildiği; aksi halde
null.codestringstringHayırMakine tarafından okunabilir kod (bkz. Hatalar).
messagestringstringHayırİngilizce açıklama.
warningsWarning[]Warning[]Hayırİstekle ilgili engelleyici olmayan uyarılar (sonuçta da yinelenir).
codestringstringHayırMakine tarafından okunabilir kod.
messagestringstringHayırİngilizce açıklama.
result_urlstringstringHayırstatusdeğerisucceededolduğunda tam sonuç için bu URL'ye GET isteği gönderin.pdf_urlstringstringHayırYükleme planını PDF olarak oluşturan tarayıcı bağlantısı (3B görünümler + yükleme adımları). expires_at zamanına kadar geçerlidir. Süresi dolunca boştur.
expires_atstringstringHayırİstek/sonuç gövdelerinin ve PDF bağlantısının silineceği zaman (RFC 3339). İşin meta verileri ve ücretleri saklanır.
resultResultResultHayırTam sonuç; yalnızca istendiğinde (?include=result) ya da POST /v1/pack?wait= zamanında bittiğinde yanıtın içinde gelir.
job_idstringstringHayırİş.
vehiclesResultVehicle[]ResultVehicle[]HayırYükleme sırasına göre yüklenen araçlar (boş araçlar dahil edilmez).
indexintegerintegerHayırPlandaki sıra, 0'dan başlar.
vehicle_idstringstringHayırAraç tanımınızın ID'si (proje işlerinde: slot ID'si, pv_…).
copyintegerintegerHayırO tanımın kopya numarası, 1'den başlar (quantity > 1 ya da auto modunda eklenmiş).
auto_addedbooleanbooleanHayırpacking_modeautoolduğu için belirttiğinizquantitydeğerine ek olarak eklendi.namestringstringHayırAraç adı.
typestringstringHayırAraç türü.
lengthnumber · cmnumber · cmHayırYük alanı uzunluğu.
widthnumber · cmnumber · cmHayırYük alanı genişliği.
heightnumber · cmnumber · cmHayırYük alanı yüksekliği.
max_weightnumber · kgnumber · kgHayırTaşıma kapasitesi.
items_placedintegerintegerHayırBu araçtaki adet.
total_weightnumber · kgnumber · kgHayırBu araçtaki ağırlık.
volume_utilizationnumbernumberHayırKullanılan hacim / yük alanı hacmi, 0–1.
weight_utilizationnumbernumberHayırtotal_weight / max_weight, 0–1 (allow_overweight ile 1'i aşabilir).
center_of_gravityPointPointHayırYükün ağırlık merkezi (cm).
xnumber · cmnumber · cmHayırynumber · cmnumber · cmHayırznumber · cmnumber · cmHayırplacementsPlacement[]Placement[]HayırBu araçtaki tüm adetler.
item_idstringstringHayırÖğe tanımınızın ID'si (proje işlerinde: öğe ID'si, item_…).
instanceintegerintegerHayırO öğe tanımı içindeki adet numarası, 1'den başlar (tüm plan genelinde benzersiz).
labelstringstringHayırÖğe etiketi.
xnumber · cmnumber · cmHayırMinimum köşenin uzunluk boyunca konumu.
ynumber · cmnumber · cmHayırMinimum köşenin zeminden yüksekliği.
znumber · cmnumber · cmHayırMinimum köşenin genişlik boyunca konumu.
lengthnumber · cmnumber · cmHayırYerleştirildiği hâliyle x ekseni boyunca boyut.
widthnumber · cmnumber · cmHayırYerleştirildiği hâliyle z ekseni boyunca boyut.
heightnumber · cmnumber · cmHayırYerleştirildiği hâliyle y ekseni boyunca boyut.
rotatedbooleanbooleanHayırTanımlandığından farklı bir yönelimle yerleştirildi.
orientationstringstringHayırTanımlı kenarlardan hangisinin x, z ve y boyunca uzandığı:
lwh= tanımlandığı gibi,wlh= dikey eksen etrafında 90° döndürülmüş,lhw,hwl,whl,hlw= yan yatırılmış.stepintegerintegerHayırAraç içindeki yükleme adımı, 1'den başlar (artan sırayla yükleyin).
weightnumber · kgnumber · kgHayırAdet ağırlığı.
axle_loadsErişim gerekirAxleLoad[]AxleLoad[]HayırAks başına yük (yalnızca aks verisi olan araçlarda).
namestringstringHayıraxle_positionssırasıylaAxle 1,Axle 2…positionnumber · cmnumber · cmHayırYük alanının önünden ölçülen aks konumu.
loadnumber · kgnumber · kgHayırAks üzerindeki yük.
maxnumber · kgnumber · kgHayırTanımlı üst sınır (0 = yok).
okbooleanbooleanHayırload≤max(üst sınır yoksa her zamantrue).unplacedUnplacedItem[]UnplacedItem[]HayırYerleştirilemeyen adetler ve nedenleri.
item_idstringstringHayırÖğe tanımınızın ID'si.
instanceintegerintegerHayırAdet numarası, 1'den başlar.
labelstringstringHayırÖğe etiketi.
reasonstringstringHayırNeden yerleştirilemediği.
warningsWarning[]Warning[]HayırPlanla ilgili uyarılar.
codestringstringHayırMakine tarafından okunabilir kod.
messagestringstringHayırİngilizce açıklama.
pdf_urlstringstringHayırPlanı PDF olarak oluşturan tarayıcı bağlantısı.
expires_atstringstringHayırBu sonucun silineceği zaman (RFC 3339).
next_cursorstringstringHayırSonraki sayfa için ?cursor= olarak gönderin; son sayfada boştur.
401Unauthorized
unauthorizedkey_revokedkey_expiredunauthorizedAPI anahtarı eksik, hatalı biçimde ya da tanınmıyor.key_revokedAnahtar iptal edildi.key_expiredAnahtarın geçerlilik süresi doldu.
Tüm hata kodlarıAdTürZorunluAçıklamaerrorErrorBodyzorunluErrorBodyEvetcodestringzorunlustringEvetMakine tarafından okunabilir kod (snake_case). Hata işleme mantığınızı asla
messagealanına göre değil, bu koda göre kurun.messagestringzorunlustringEvetİngilizce açıklama.
request_idstringzorunlustringEvetX-Request-Id header'ıyla aynı. Destek ekibine başvururken bu değeri iletin.
detailsErrorDetail[]ErrorDetail[]HayırAlan bazında sorunlar (
validation_failed).pathstringstringHayırHatalı alanın JSON yolu, ör. items[3].length.
codestringstringHayırOlası kodlar:
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.messagestringstringHayırİngilizce açıklama.
403Forbidden
ip_not_allowedsubscription_inactiveaccount_inactivescope_missingip_not_allowedİsteği gönderen IP, anahtarın izin listesinde değil.subscription_inactiveOrganizasyonun API'yi içeren etkin bir aboneliği yok.account_inactiveOrganizasyon askıya alınmış ya da hesabı etkin olan bir organizasyon sahibi yok.scope_missingAnahtarda bu endpoint'in gerektirdiği bir yetki eksik.
Tüm hata kodlarıAdTürZorunluAçıklamaerrorErrorBodyzorunluErrorBodyEvetcodestringzorunlustringEvetMakine tarafından okunabilir kod (snake_case). Hata işleme mantığınızı asla
messagealanına göre değil, bu koda göre kurun.messagestringzorunlustringEvetİngilizce açıklama.
request_idstringzorunlustringEvetX-Request-Id header'ıyla aynı. Destek ekibine başvururken bu değeri iletin.
detailsErrorDetail[]ErrorDetail[]HayırAlan bazında sorunlar (
validation_failed).pathstringstringHayırHatalı alanın JSON yolu, ör. items[3].length.
codestringstringHayırOlası kodlar:
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.messagestringstringHayırİngilizce açıklama.
422Unprocessable entity
validation_failedvalidation_failedİstek geçerli bir JSON ama geçersiz bir iş tanımlıyor. Tüm sorunlar details[] içinde listelenir.
Tüm hata kodlarıAdTürZorunluAçıklamaerrorErrorBodyzorunluErrorBodyEvetcodestringzorunlustringEvetMakine tarafından okunabilir kod (snake_case). Hata işleme mantığınızı asla
messagealanına göre değil, bu koda göre kurun.messagestringzorunlustringEvetİngilizce açıklama.
request_idstringzorunlustringEvetX-Request-Id header'ıyla aynı. Destek ekibine başvururken bu değeri iletin.
detailsErrorDetail[]ErrorDetail[]HayırAlan bazında sorunlar (
validation_failed).pathstringstringHayırHatalı alanın JSON yolu, ör. items[3].length.
codestringstringHayırOlası kodlar:
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.messagestringstringHayırİngilizce açıklama.
429Too many requests
rate_limitedrate_limitedGeçerli dakika, saat ya da gün içinde çok fazla istek gönderildi (anahtar ya da organizasyon başına) veya IP adresinizden gelen başarısız kimlik doğrulama denemeleri dakikada 60 sınırını aştı.
Tüm hata kodlarıAdTürZorunluAçıklamaerrorErrorBodyzorunluErrorBodyEvetcodestringzorunlustringEvetMakine tarafından okunabilir kod (snake_case). Hata işleme mantığınızı asla
messagealanına göre değil, bu koda göre kurun.messagestringzorunlustringEvetİngilizce açıklama.
request_idstringzorunlustringEvetX-Request-Id header'ıyla aynı. Destek ekibine başvururken bu değeri iletin.
detailsErrorDetail[]ErrorDetail[]HayırAlan bazında sorunlar (
validation_failed).pathstringstringHayırHatalı alanın JSON yolu, ör. items[3].length.
codestringstringHayırOlası kodlar:
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.messagestringstringHayırİngilizce açıklama.
500Internal server error
internal_errorinternal_errorBizim tarafımızda bir hata oluştu.
Tüm hata kodlarıAdTürZorunluAçıklamaerrorErrorBodyzorunluErrorBodyEvetcodestringzorunlustringEvetMakine tarafından okunabilir kod (snake_case). Hata işleme mantığınızı asla
messagealanına göre değil, bu koda göre kurun.messagestringzorunlustringEvetİngilizce açıklama.
request_idstringzorunlustringEvetX-Request-Id header'ıyla aynı. Destek ekibine başvururken bu değeri iletin.
detailsErrorDetail[]ErrorDetail[]HayırAlan bazında sorunlar (
validation_failed).pathstringstringHayırHatalı alanın JSON yolu, ör. items[3].length.
codestringstringHayırOlası kodlar:
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.messagestringstringHayırİngilizce açıklama.
503Service unavailable
api_disabledapi_disabledAPI geçici olarak devre dışı (bakım) ya da organizasyon için kapatılmış.
Tüm hata kodlarıAdTürZorunluAçıklamaerrorErrorBodyzorunluErrorBodyEvetcodestringzorunlustringEvetMakine tarafından okunabilir kod (snake_case). Hata işleme mantığınızı asla
messagealanına göre değil, bu koda göre kurun.messagestringzorunlustringEvetİngilizce açıklama.
request_idstringzorunlustringEvetX-Request-Id header'ıyla aynı. Destek ekibine başvururken bu değeri iletin.
detailsErrorDetail[]ErrorDetail[]HayırAlan bazında sorunlar (
validation_failed).pathstringstringHayırHatalı alanın JSON yolu, ör. items[3].length.
codestringstringHayırOlası kodlar:
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.messagestringstringHayırİngilizce açıklama.